1.1写在前言

  在文章开始的时候,提下Vim的四个模式:命令模式,可视模式,编辑模式,正常模式。文章基本采自我平常所作的记录,在此整理编辑下,做个标记。

2.1处理文件命令(命令行模式)

  2.1.1在命令模式下打开文件如:open  aa.py  :e aa.py

  2.1.2将当前文件另存为: saveas  ~/test.py  或  w  ~/test.py

  2.1.3强制保存文件(在用户权限不足时)如:w !sudo tee %  

  2.1.4 (正常模式下)  ZZ 保存文件推出   :x 仅在有改动文件需要保存

时,才有保存动作

  2.1.5:在打开的各文件当中切换:  :bp   :bn

2.2查找文本(正常模式下)

  2.2.1: ?向光标所在行的上方找

  2.2.2 向光标所在行的下方找   <小技巧:在搜索完成后,输入

n,会在输入的字符搜索块上来回跳动>

  2.2.3:数字0:跳到当前行的行首

  2.2.4 : $  跳到当前行的末尾

  2.2.5:  ^ 跳动光标所在行首非空格的位置

  2.2.6g_      跳到光标所在行末非空格的位置

  2.2.7:向上匹配单词:光标移到要匹配的单词上,输

即可看到被选中的搜索结果 ,输入字符n,可在各搜索的单词间跳动

  2.2.8:向下匹配单词:光标移到要匹配的单词上,输

即可看到被选中的搜索结果,输入字符n,可在各搜索的单词间跳动

  2.2.9:符号匹配: 可匹配 ( [ {  操作方式: 把光标移到一侧的符合上

输入% 即可跳跃到另一侧的符号上

  2.2.10:字符匹配(当前光标所在行):比如fa  即跳

到当前行光标后面以a字符开头处。3fa 跳动当前行第三个字符a处。Fa功能

相反,是往前跳动

  2.2.11 光标移动 到下一个单词的首部

  2.2.12 光标移到下一个单词的尾部

  2.2.13b    光标移到上一个单词 的首部

  2.2.14nG  光标移到第n行      G      gg

  2.2.15  向后移动一个句子,注意句子是以 .  区分

   }向后移动一个段落     (  或 正好相反

  2.2.16 移动到屏幕中间

  2.2.17 H向上移动到屏幕首部,L向下移动到 屏幕末尾

  2.2.18Ctrl-i    Ctrl-o(字母o)  光标在前后两次位置来回跳跃

2.3文本处理(正常模式):

  2.3.1u 取消上次操作

  2.3.2 yy   拷贝光标所在当前行    nyy:从光标往下n行拷贝

  2.3.3 粘帖一次   np 粘帖n

  2.3.4:  . 重复上一条命令      n.    重复上一条命令n

  2.3.5ye  拷贝一个单词 

  2.3.6: 删除当前光标所在行的所有内容,知道遇到指定字符:如dta

  2.3.7J将光标所在当前行及下一行合并

  2.3.8D删除当前光标位置到行末的所有内容     

  2.3.9 Ctrl-r 重做上一个命令  

  2.23.10ddp 交换当前光标所在行与下一行的位置

  2.3.11%s /foo/bar/g   将每行的foo替换成bar   或者可以这样写:m,n s/foo/bar/g    将从mn行的foo替换成bar

  2.3.12:     s/foo/bar/g    将光标所在当前行的foo替换成bar

  2.3.13:删除光标所在行 dd      【命令行模式下 : 2,$d  删除第二行之后的

所有内容    dw  删除当前光标后面的一个单词   daw  删除单词,包括单词间

的空格   cw:删除一个单词并进入插入模式,cc:删除一行并进入插入模式。

  2.3.14 替换当前光标位置的字符

  2.3.15R 替换当前光标字符,并继续向后替换

  2.3.16 I(大写字母 i) 从光标所在当前行开始插入

  2.3.17A 从光标所在当前行末尾开始插入

 2.3.18  c-p(c-n)    在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的文件中进行匹配.

 2.3.19:  c-x-l            在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的文档中进行匹配.

 2.3.20:  c-x-f            在编辑模式中, 这个命令表示补齐文件名. 如输入:  /usr/local/tom 后再输入此命令则它会自动匹配出: /usr/local/tomcat/

 2.3.21:  abbr             即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个 字符串. 比如在编写java文件的常常输入 System.out.println, 这个时候为了减少敲字. 就可以写成这个样子:         :abbr sprt System.out.println     以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System.out.println

 2.3.22:   :%s= *$==        也可以这么写(命令模式: :%s/ *$//g  将所有行尾多余的空格删除,注意在*号前有一空格

 2.3.23:   :g/^\s*$/d        将所有不包含字符(空格也不包含)的空行删除.

 2.3.24:     >                   输入此命令则光标所在行向右移动一个 tab.

 2.3.25:     5>>                  输入此命令则光标后 5 行向右移动一个 tab.

 2.3.26:   :12,24>              此命令将12行到14行的数据都向右移动一个 tab.

 2.3.27:   :12,24>>             此命令将12行到14行的数据都向右移动两个 tab.  定义Tab大小的方法如下:

    :set shiftwidth=4    设置自动缩进 4 个空格, 当然要设自动缩进先.
    :set sts=4           即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.
    :set tabstop=4       实际的 tab 即为 4 个空格, 而不是缺省的 8 个.

    :set expandtab       在输入 tab 后, vim 用恰当的空格来填充这个 tab.


 2.3.28:guu  – 把一行的文字变成全小写。或是【Vu】

 2.3.29:gUU – 把一行的文件变成全大写。或是【VU】

 2.3.30:ga –  查看光标处字符的ascii码

 2.3.31:g8 – 查看光标处字符的utf-8编码

 2.3.32:gf  – 打开光标处所指的文件 (这个命令在打到#include头文件时挺好用的,当然,仅限于有路径的)

   2.4语法检查(正常模式下操作)

  2.4.1:命令 模式中手动开启语法检查的方法: set splll    开启语法检查       set nospell 关闭语法检查

  2.4.2]s   跳到光标位置之后检测的语法错误,注意 是右中括号

  2.4.3[s   跳到光标位置的上一处检测到的语法错误

  2.4.4 z=     光标移到语法错误的标记上,此命令给出修改的建议

  2.4.5zg  将识别到的错误标记标为正确  zw zg功能相反

   2.5可视模式(重在结合之前提到的命令,正常模式下操作)

  2.5.1 v 基于字符的选择并进入可视模式

  2.5.2 V基于行选择并进入可视模式

  2.5.3 Ctrl-v  基于段落选择并进入可视模式

  2.5.4 vip  选中一个段落并进入可视模式编辑

  2.5.5vi括号  光标应先停留在括号内部,选中括号内的所有内容。如  vi{

    若括号内部具有嵌套关系(前提:光标停在最内一层内容上)   举例如

    v2i{  选中2层括号里的内容  

     vi{   只会选中最内一层括号内的内容  

  2.5.6:简单举例: v2wy  选择光标位置与之后的共2个单词,进行复制

  2.6宏操作步骤(正常模式下操作)

  2.6.1:录制宏与命名: qa   a为宏的名字

  2.6.2: 结束宏的录制:  q

  2.6.3:   调用宏:    n@a    n为调用次数   a为宏的名字


2.7分屏:(命令模式)   

2.7.1:竖屏 sv  filename  打开一个文件,以横向分割布局模式  

2.7.2:横屏  vs filename 打开一个文件,以纵向分割布局模式   

2.7.3:关闭窗口的相关命令: qall   wall   wqall  xall  close  quit   

2.7.4: 窗口切换 切换相关命令:  Ctrl +  (i,j,l,k)

2.7.5:  Ctrl-W +       扩大窗口   Ctrl-W -       缩小窗口

2.8补充

2.8.1:   命令模式下         :Te    Tab页浏览 ,切换页面的方式(正常模式):  gt到下 一页,gT 返回到前一页  {i}gt  切到第i页   

2.8.2: tabs  查看现在打开的窗口和Tab的情况   

2.8.3:括号段落内的缩进(正常模式):  光标移到括号一侧上,键入 =%   

2.8.4:编辑文件内执行shell命令(命令模式):如   !命令      

2.8.5: 多行组合复制(命令模式):如  15,20 co 13  将15到20行的内容 复制到13行下   

2.8.6:关键字补全     Ctrl +p     查看当前位置: ctrl +g   

2.8.7:设置文本格式(命令模式): :set ff=unix   设置文本文件的格式 为Unix,去掉windows系统文件中的 ^M