Vim作为Linux系统自带的文本编辑器,掌握如何使用是很有必要的。
Vim模式
- Normal 模式:进入Vim后的一般模式。
- Insert 模式:按下
i键后进入插入模式,可以修改文档。 - Visual 模式:按下
v键后进入选择模式,可以选择文档内容。
Vim打开和切换文件
- 终端
vim file1 file2 ...可以打开多个文件。 :ls显示打开的文件,可以使用:bn在文件间切换( n也可以换成:ls里给出的文件序号 )。- 打开vim后,可以用
:e fileName来打开文件或者新建文件。 - 在终端
vim -o file1 file2 ...可以打开多个文件(横向分隔屏幕)。 - 终端
vim -O file1 file2 ...可以打开多个文件(纵向分隔屏幕)。 Ctrl+w+w在窗口间切换光标,第二个w也可以用h、j、k、l来光标代表移动方向。
Vim退出
:q:退出。:q!:强制退出,放弃所有修改。:wq:保存修改并退出。
常用快捷键
- 方向键\(\leftarrow\downarrow \uparrow \rightarrow\)也可以用
h、j、k、l。 0到行首,$到行尾。gg到文档首行,G到文档结尾。Ctrl+f下一页,Ctrl+b上一页。Ctrl+u往上半页,Ctrl+d往下半页。w或e光标往后跳一个单词,b光标往前跳一个单词。:98跳转到第98行。q:显示命令行历史记录窗口。!bash_Command不退出vim暂时返回终端界面执行该命令。H将光标移动到屏幕首行,M将光标移动到屏幕中间行,L将光标移动到屏幕最后一行。
Vim分屏
:sp或者:split横向分隔屏幕,后面可以加文件名。:vs或者:vsplit纵向分隔屏幕,后面可以加文件名。:only只保留光标所在分屏,关闭其他分屏。- 在nerdtree插件中,选中文件后按
s纵向分隔屏幕,按i水平分隔屏幕。
复制粘贴
-
在Visual模式下选择文档内容后按
y键,复制被选择内容。 -
按
p键粘贴,注意粘贴从紧跟光标后的那个字符之后才开始。abc \(\big|\) d “COPIED_TEXT” efghk… ( \(\big|\) 是光标)
- 选择内容后按
d删除或者剪贴。 yy复制当前行,dd删除(剪贴)当前行。
查找和替换
查找
- 在Normal模式下,按
/进入查找模式,输入/word后回车,高亮显示所有文档word,按n跳到下一个word,按N跳到上一个。 - 若输入
/word\c代表大小写不敏感查找,\C代表大小写敏感。 - 输入
:noh取消高亮。 - 按下
*高亮查找光标位置处的单词,但若查找word,helloword中的word不会被高亮。 - 按下
g*高亮查找光标位置处的单词,若查找word,helloword中的word也会被高亮。 - 在Normal模式下按
q+/显示查找历史记录窗口。
替换
:s/word/excel:替换当前行所有word为excel。:s/word/excel/g:替换当前行第一个word为excel,/g代表只替换每行第一个。:%s/word/excel:替换全文所有word为excel。:%s/word/excel/gc:其中/c代表需要确认,并提示:replace with excel (y/n/a/q/l/^E/^Y)?,其中a表示替换所有,q表示退出查找模式,l表示替换当前位置并退出,^E与^Y是光标移动快捷键。:2,11s/word/excel:替换第2到11行的word为excel。:.,$s/word/excel:替换当前行到最后一行的word为excel,.代表当前行,$代表最后一行。:.,+2s/word/excel:替换当前行与接下来2行的word为excel。- 在Visual模式下选择后按
:, Vim自动补全为:'<,'>,然后手动补全:'<,'>s/word/excel,将选择区域的word替换为excel。 :s/word/excel/i:/i代表大小不敏感查找,等同于:s/word\c/excel,而/I代表大小写敏感查找。
代码折叠
代码折叠是Vim的高级功能,意思就是即便没掌握也不影响Vim的正常使用。
set foldenable: 打开代码折叠功能,可以写在根目录下的.vimrc文件里。set foldmethod=syntax: 设置折叠方式(foldmethod可缩写为fdm),常用的折叠方式有:syntax: 按 C \ C++ 语法折叠{};indent: 按缩进折叠,适用于 Python 。
set foldlevelstart=99: 打开文件时不自动折叠代码。zc&zo: 在Normal模式下将光标移动到代码的可折叠位置,按zc折叠代码(close),zo打开折叠的代码(open)。
小技巧 : 将nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>写入.vimrc文件,可将zc和zo映射为空格键。
拼写检查
对于英文单词的拼写,Vim 可以自动检查拼写 (Spell Checking)。
set spell: 打开拼写检查,可以写在根目录下的 .vimrc 文件里,不过更推荐在需要使用时在 Vim 中手动打开:set spell。- 在 .vimrc 文件里写入
inoremap <C-l> <c-g>u<Esc>[s1z=`]a<c-g>u来将Ctrl+l映射为快捷键,其中[s代表光标跳到上一个拼写错误处,1z=选择第一个推荐的正确拼写,`]a光标跳回原来位置。设置完就可以通过Ctrl+l快速改正单词。
