vim使用命令总结
vim在linux中是必须使用的一个的神器,编辑文件的利器,掌握一些vim指令还是挺有必要的,vim的使用教程在网上一搜就一大把,但那都是别人写的,即使把它们下载下来放进电脑里还是会记不住,所以自己实践过一遍指令再作出一个属于自己的笔记才会更加深刻。我目前记录的就只有这些指令,后期继续更新……
定位到故障行:15行
vim test.py +15
打开文件直接定位到最底端:
vim test.py +
文件顶部:gg
文件末尾:G
移动到15行: 15gg、15G (:15 回车 也可以快速到达15行)
向上翻页
ctrl b (back)
向下翻页
ctrl f (forword)
移动到当前屏幕的顶部:H ( head)
移动到当前屏幕的中间:M (middle)
移动到当前屏幕的底部:L (low)
段首:{
段尾:}
行首:shift+6 ^
行尾:shift+4 $
括号匹配: %
标记
m+(a~z) 例如ma
回到标记
‘a
可视模式:v
可视行模式:V
可视块模式:ctrl v
删除全部内容
gg 文件顶部
V 可视行模式
G 文件末尾
d 删除
撤销
u
ctrl + r 恢复撤销
删除命令
dw 从光标位置删除到单词末尾
d0 从光标位置删除到一行的起始位置
d} 从光标位置删除到段落结尾
ndd 从光标位置向下连续删除n行
d代码行G 从光标所在行删除到指定代码行之间的所有代码
d’a 从光标所在行删除到标记a之间的所有代码
复制、粘帖
y 复制
yy 复制行 Y也是复制行
nyy 复制n行
p 粘帖 ( 小p是在行后粘帖,大P是在行前粘帖)
10p 粘帖10次
替换
r 从光标当前开始替换
R 替换模式
缩进
向右增加缩进>>
<< 向左减少缩进
. 重复上次命令
查找
/str
n 向下查找
N 向上查找
*向下查找
#向上查找
取消查找高亮
命令模式下,输入:nohlsearch 也可以:set nohlsearch; 当然,可以简写,noh或者set noh。
全局替换
:%s///g
:%s/hello/world/g 将全部的hello替换成world
可视区域替换
:s///g
确认替换
:%s///gc
利用可视块注释多行代码
ctrl v 进入可视块模式
j 向下选择要注释的行
I 输入大写I进入编辑模式,不能使用小写i
输入#号
esc 退出可视块模式
vim删除空行和注释
来源: http://jpuyy.com/2015/06/vim-delete-lines-using-regexp.html
删除空行
:g/^$/d
删除空行以及只有空格的行
:g/^\s*$/d
删除以 # 开头或 空格# 或 tab#开头的行
:g/^\s*#/d
对于 php.ini 配置文件,注释为 ; 开头
:g/^\s*;/d
使用正则表达式删除行
如果当前行包含 bbs ,则删除当前行
:/bbs/d
删除从第二行到包含 bbs 的区间行
:2,/bbs/d
删除从包含 bbs 的行到最后一行区间的行
:/bbs/,$d
删除所有包含 bbs 的行
:g/bbs/d
删除匹配 bbs 且前面只有一个字符的行
:g/.bbs/d
删除匹配 bbs 且以它开头的行
:g/^bbs/d
删除匹配 bbs 且以它结尾的行
:g/bbs$/d
.ini 的注释是以 ; 开始的,如果注释不在行开头,那么删除 ; 及以后的字符
:%s/;.+//g
删除 # 之后所有字符
%s/#.*//g
vim设置编码格式
先利用vim打开指定文件
:set ff 查看当前文本的模式类型,一般为dos,unix
:set ff=dos 设置为dos模式, 也可以用 sed -i ‘s/$/\r/‘
:set ff=unix 设置为unix模式,也可以用一下方式转换为unix模式:sed -i ‘s/.$//g’
:set fileencoding查看现在文本的编码
:set fenc=编码 转换当前文本的编码为指定的编码
:set enc=编码 以指定的编码显示文本,但不保存到文件中。
vim配置优化
sudo vim /etc/vimrc
set autoread
filetype plugin on
filetype on
set clipboard+=unnamed
set nobackup
set noswapfile
set syntax=on
set autoindent
set cindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set smarttab
set number
set ignorecase
set hlsearch
set incsearch
set selection=exclusive
set selectmode=mouse,key
set mouse=a
:inoremap ( ()
:inoremap )
:inoremap { {
:inoremap }
:inoremap “ “”
:inoremap ‘ ‘’
vim设置鼠标复制粘贴
启动鼠标定位功能:
set mouse=a
启用鼠标复制粘贴功能:
vim打开一个文件后,如需要复制文本,则在末行模式下输入
:set mouse-=a
即可使用鼠标右键复制粘贴功能
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 caijinbo的博客!