1、光标的移动:这里说的光标移动是指在正常模式下光标的移动。最简单是方向键,它即使在插入模式下仍可使用,但不是最方便。h 在当前行向左移动一个字符,或者Backspace。j 移动到下一行,或者Enter。k 移动到上一行,或者- 号。l 在当前行向右移动一个字符,或者空格键Space。Ctrl +f 向前滚动一页,或者PageDown。Ctrl +b 向后滚动一页,或者PageUp。0(零) 移至行首(包含空白字符,如缩进的空格),或是Home 键。$ 移至行尾, 或End 键。^ 移到行首第一个非空白字符。G 移动到文档末尾,或者gg 移动到文档开头。w 移动到下一word的开头。b 移动到上一word的开头。e 移动到本word或者下个word的末尾。ge 移动到上个word的末尾。大写的W B E 和w b e 效果一样但会忽略像. - 等特殊字符。中文因为是连在一起的,所以如果没有空格或者数字、英文标点的话,将视为一个word。( 光标移至句首,句子是以. ? ! 标点来判断的。) 光标移至句尾{ 光标移至段落的开头,段落是以空白行来判断的。} 光标移至段落的结尾H 将光标移至屏幕顶第一个非空白字符。M 光标移至屏幕中间第一个非空白字符。L 光标移至屏幕底第一个非空白字符。这和PageDown,PageUp 不一样,内文内容并未动,只是光标在动而已。:n 将光标定位到第n行。n| 将光标移动到本行第n个字符。
2、模式编辑:vim常用的模式有:命令模式(command-mode),插入模式(insert-mode),可视模式(visual-mode),正常模式(normal-mode)。模式的转换:①其它模式==>命令模式按Esc键②正常模式==>插入模式按i 在光标前插入按I 在行首插入按a 在光标后插入按s 删除光标所在的字符再插入按A 在行末插入按o 在当前行之下新建行按O 在当前行之上新建行按S 删除光标所在行再插入③正常模式==>命令模式按: (shift 加分号)④正常模式==>可视模式按v 可视模式按V 可视块模式
3、打开和退出::e test.txt 打开test.txt文件进行编辑,文件不存在则创建。:w 保存文档,但不退出vim编辑器。[3]:q 不保存文档,退出vim编辑器。:wq 保存文档然后退出vim编辑器。按ZZ(注意Z是大写的,并且不是在命令模式)或者:x效果是一样的。:q! 放弃所有修改强制退出,按:q不能退出时就试试这个吧。
4、文件操作:Exp 浏览文件夹:Sex 分割窗口浏览文件夹:args 查看当前打开的所有文件:ls 显示缓冲区:cd 显示当前文件夹大小写转换guu 将当前行全部小写gUU 将当前行全部大写Vu 将选中的行(单行或多行)全部小写VU 将选中的行(当行或多行)全部大写g~~ 将当前行小写的转换成大写, 大写的转换成小写insert模式ctrl+n(p)自动补全ctrl+w 回删一个wordctrl+u 删除到行首(包括行首空白)ctrl+t 向右缩进ctrl+d 向左缩进ctrl+h 对应Backspace键ctrl+j 对应回车键ctrl+m 貌似也是回车键使用 Ctrl-O 就可以临时切换到 normal mode, 执行一个命令后自动返回 insert mode。"{a-z} yy 将复制的行存储在[a-z]指定的存储器中nG移动到第n行//重复上一次/<regexp>搜索
5、编辑(缩进,全文缩进)x 删除当前光标文字J将下一行接到当前行末尾rx将当前光标字符替换为x.重复前一个编辑操作命令, dd...会删除4行文字, J....可以连接4行文字d可以用来结合任何移动命令dw删除当前光标到下一个单词开始处的内容d%删除范围首尾字符之间的内容d)删除到下一个句子结束的位置d}删除当前段落的剩余内容du取消删除准备I在当前行开始插入A在当前行末尾开始插入o在当前行下新建一空行以供插入O会在当前上方新建一空行cc用空白行代替当前行内容c$删除当前位置到当前行结束内容c0删除当前位置到当前行开始内容==对当前行自动缩进gg=G 对全文进行自动缩进<<(>>) 对整行进行缩进
6、视图模式ctrl+q 块选择替换:s/regexp/replacement/g 替换当前行:%s/regrep/replacement/g全文替换, 如果一行有多个匹配只替换第一个:%s/regexp/replacement/gc全文替换, 并在每次替换之前进行提示:%s/str/\r/g 替换并换行养成每次编辑之后随时按esc退出插入模式进入命令模式的习惯能熟练使用各种组合命令是vi高手的一个标志
7、常用插件calendar:\cal 左边垂直位置打开日历\caL 下面水平位置打开日历:Calendar year month 根据制定的日期打开日历t回到今天q退出日历MRU 最近打开的文件:MRU 显示最近打开的文件列表NERDTree 在左边显示文件目录:NERDTree打开NERDTree插件o展开折叠选中文件夹t在tab页打开选中文件T在后台标签页打开!执行此文件p到上层目录P到根目录K到第一个节点J到最后一个节点u回到上层目录m显示文件系统菜单?帮助q退出
8、如何找到上次编辑的文件? Ctrl+O (按两次)
9、如何选择、复制或者查找光标所在的单词? 在VIM中用iw或者aw表示一个单词,两者稍有区别。选择光标所在的单词:viw (v进入visual模式,然后iw)复制光标所在的单词:yiw
10、如何去掉或者插入^M这样的字符? 在VIM的插入模式或者命令行中用输入^M这样的特殊字符,例如输入:%s///g实际显示是:%s/^M//g就可以去掉文件中所有的^M。同理,要在文件中输入^M只要按即可。这个问题往往发生在WINDOWS/DOS系统和UNIX系统之间交换文件时,因为这两类系统 对于文本的“换行”概念解释不同。所以,还有一个解决方法就是对这类文本进行 转换。vim内部就可以做这件事情。首先打开文本,然后set fileformat=unix再从新保存该文件复盖原文件就可以去除:^M了