VI常用M命令----30分钟掌握-----gogogo

一、移动光标

Vim使用h、j、k和l键来移动光标。按照正式的说法,这样可以保证双手不离开键盘区域,从而提高输入效率。这四个键在键盘上的位置为依次从左到右,对应的方向依次为向左、向下、向上和向右。网络上和关于Vim各种书籍、教程中都传授给Vim新手一套记忆方法,即h在左边,l在右边,j指向下边。这种方法十分巧妙,是无数Vimmer在学习和使用过程中总结出来的。但自己有另外一点体会:我们的右手食指在键盘上的初始位置是j键,一般而言,我们在阅读或者编辑文档时最常用的方向键就是向下,所以将j键设为向下键是最为合适的,将右边与其相邻的k键设置为向下键,也实现了同样的方便。当光标需要向左移动时,我们的右手食指也要向左移动,这两个方向是一致的。向右键的使用频率比向左键高一些,因此设置为无名指直接接触的l键。


二、如何退出Vim

退出Vim随编辑者的意愿不同而有两种不同的方式:

1.不保存而退出,即强制退出。:q! <Enter>

2.保存并退出。:wq <Enter>


三、删除类命令

1.删除光标所在位置的字符:x。将光标置于要删除的字符所在的位置,再按x键即可。

2.删除从光标所在位置到一个单字/单词末尾的所有字符:dw。注意:由于英文中每个单词之间有空格但汉语中汉字之间没有空格,而Vim中的命令对单字/单词的理解是以空格为界限的,所以对一行汉语执行此命令时,会将光标所在位置至光标所在行的所有字符删除,效果与d$命令一样。

3.删除从光标所在位置至光标所在行末的所有字符:d$。4.删除光标所在行的所有字符:dd。处于光标左边的本行字符也会被删除。


四、插入类命令

1.在光标所在位置之前插入:i。

2.在光标所在位置之后插入:a。

3.在光标所在行末尾插入:A。


五、打开类命令

1.在光标所在行的下方打开新的一行并进入插入模式:o。

2.在光标所在行的上方打开新的一行并进入插入模式:O。


六、更换类命令

1.改变从光标所在位置到光标所在单词/单字末尾的所有字符,并进入插入模式:cw。

2.改变从光标所在位置到光标所在行的所有字符,并进入插入模式:c$。


七、替换类命令

1.替换光标所在位置的字符:r。让光标处于将要被替换的字符所在的位置,按下r,并键入新的字符。

2.连续替换光标所在位置后的字符:R。


八、修正错误的命令之一

1.将光标所在行第一个old字符替换为new字符。:s /old/new

2.将光标所在行内所有old字符替换为new字符。:s /old/new/g

3.将两行之间的所有old字符替换为new字符,#指行号。:#,# s /old/new/g

4.将文件内所有old字符替换为new字符。:% s/old/new/g

5.将文件内所有old字符替换为new字符,并在替换时询问是否确认替换。:% s/old/new/gc


九、置入类命令

将最后一次删除的内容置入光标之后:p。


十、撤销类命令

1.撤销最后执行的命令:u。

2.撤销对整行的所有操作:U。

3.恢复撤销的命令:CTRL-R。


十一、定位及获取文件状态

1.显示光标所在行的位置及文件状态信息:CTRL-g。

2.直接跳转到指定的行:SHIFT-G。先键入行数,再按下SHIFT-G。


十二、查找配对括号

查找光标所在括号的配对括号:%。按下%后光标会自动跳转到配对的括号处,再按一次,跳回到原括号处。


十三、搜索类命令

1.在当前文件中顺序查找某字符串:/ 字符串。从文章的开头开始查找。

2.在当前文件中逆向查找某字符串:? 字符串。从文章的结尾开始查找。

3.顺序查找下一个:n。

4.逆向查找下一个:Shift-N。


十四、保存文件

1.将对文件的改动保存到文件中。:w FILENAME

2.保存文件的部分内容,#指行号。:#,# w FILENAME


十五、提取和合并文件

在当前文件光标所在处插入另外的文件内容。:r FILENAME


十六、在Vim内执行外部命令

:! command


十七、设置类命令

:set command


十八、命令与对象

Vim中的命令遵从一定的格式,下面以删除命令(d)为例进行说明。

[number] d object 或者 d [number] object

number指执行命令的次数,可选,缺省设置为1。d代表删除,是命令名。object指命令所要操作的对象。对d而言包括:w(从当前光标到单词/单字末尾,包括空格)、e(从当前光标到单词/单字末尾,不包括空格)和$(从当前光标到当前行末)。

粘贴:

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:
  1. vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
     
  2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
    • “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
    • +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
     
  3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

yy  複製游標所在行整行。或大寫一個 Y。
2yy 或 y2y  複製兩行。ㄟ,請舉一反三好不好!:-)
y^  複製至行首,或 y0。不含游標所在處字元。
y$  複製至行尾。含游標所在處字元。
yw  複製一個 word。
y2w 複製兩個字。
yG  複製至檔尾。
y1G 複製至檔首。
p   小寫 p 代表貼至游標後(下)。
P   大寫 P 代表貼至游標前(上)。

整行的複製,按 p 或 P 時是插入式的貼在下(上)一行。非整行的複製則是貼在游標所在處之後(前)。
"ayy  將本行文字複製到 a 緩衝區
a 可為 26 個英文字母中的一個,如果是小寫的話,原先的內容會被清掉,如果是大寫的話是 append 的作用,會把內容附加到原先內容之後。
" 是 Enter 鍵隔壁的那一個同上符號(ditto marks)。
"ap  將 a 緩衝區的內容貼上。
緩 衝區的術語在 vim 稱為 registers,vim 擴充了相當多的功能,有興趣深入的朋友請 :h registers。您用 d、c、s、x、y 等指令改變或刪除的內容都是放在 registers 中的。例如:您用 dd 刪除的一行,也是可以使用 p 來貼上的。只要是在緩衝區的內容都可以使用 p 來貼上,不是一定要 y 起來的內容才能用 p。因此您認為 p 是 paste 也可以,認為是 put 可能較正確。
5"ayy  複製五行內容至 a 緩衝區。
5"Ayy  再複製五行附在 a 內容之後,現在 a 中有十行內容了!

你可能感兴趣的:(VI常用M命令----30分钟掌握-----gogogo)