目录
- vim是由vi发展而来的一个文本编辑器,具有代码补全、编译及错误跳转等功能;
- vim具有12种模式,掌握其中三种即可(命令模式command mode、插入模式insert mode、底行模式last line mode);
- six BASIC modes
- command mode(normal mode)、visual mode、select mode、insert mode、command-line mode、Ex mode;
- six ADDITIONAL modes
- operator-pending mode、replace mode、virtual replace mode、insert normal mode、insert visual mode、insert select mode;
一,命令模式(command mode)
启动vim后,便进入此模式,敲击键盘会被识别为命令,而非输入字符;控制光标的移动、字符/行的删除、复制替换等;
- i/a/o,切换到插入模式,以便输入字符;
- i,光标当前位置;
- a,光标当前位置的下一个位置;
- o,插入新的一行,即光标下一行位置;
- :,切换到底行模式,以便在底行输入命令;
光标定位
- h,j,k,l,左、下、上、右;
- w、b,e,以单词为单位,下一个/上一个字头(w、b),当前字尾(e);
- ^、$,锚点,行首、行尾;
- n+l,本行向后移动n个位置;
- shift+g/G,gg,文本末尾,文本开头;
- n+G,定位到指定行;
- ctrl+b,ctrl+f,向后/向前移动一页;
- ctrl+u,ctrl+d,向后/向前移动半页;
- ctrl+g,显示光标位置行号;
复制、剪切、粘贴
- n+yy,n+p,复制n行,粘贴n次;
- n+dd,n+p,剪切或删除n行,粘贴n次;
- n+yw,n+p,复制当前位置到n个单词或字尾位置到缓冲区,粘贴n次;
修改文本
- r,n+r,替换n个字符;
- shift+r/R,连续替换字符直到ESC为止;
- cw,c+n+w,更改当前位置到n个单词或字尾;
- shift+~,大小写切换;
- x,n+x,向右删除n个字符;
- X,n+X,向左删除n个字符;
撤销
- u,撤销;
- ctrl+r,撤销恢复;
二,插入模式(insert mode)
切换为此模式,即可输入字符,使用最为频繁的模式;
- ESC,退出此模式,并切换为命令模式;
- Enter,换行;
- Back Space,删除光标前一个字符;
- DEL,删除光标后一字符;
- Home/End,移动光标到行首/行尾;
- Page Up/Page Down,上下翻页;
- Insert,切换光标为输入/替换模式;
三,底行模式(last line mode)
在命令模式下按下:即可切换到此模式,可输入单个或多个字符命令;
- q,退出;
- w,保存;
- set nu,列出行号;
- set nonu,取消行号;
- num,num为数字,跳转到指定行首;
- /字符、?字符,查找自动字符,n向下查找,N向上查找;
- shift+#,将光标放置在待查找字位置,按此组合键可依次查找;
- %s/被替换字符/替换字符/g,批量化替换;
- !cmd,执行bash命令;
- vs file,多屏显示;
- ctrl+w(按两次),多屏切换;
- q,退出;
四,vim配置
- 系统公共vim配置文件/etc/.vimrc,对所有用户有效;
- 普通用户家目录下可创建私有的vim配置文件~/.vimrc,
常用配置选项
- syntax on,语法高亮;
- set nu,显示行号;
- set shiftwidth=4,缩进空格数为4;
附:配置插件:VimForCpp: 快速将vim打造成c++ IDE ;