vim
命令
撤销重做
| 按键 |
作用 |
| u |
undo (常用) |
| [Ctrl]+r |
redo (常用) |
| . |
不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)。注意,对移动无效。 |
移动
可长按,达到持续移动的效果。
| 小幅移动 |
|
| h |
左移一个字符 |
| j |
下移一行 |
| k |
上移一行 |
| l |
右移一个字符 |
除了vim风格的移动,上下左右也能用。
此外,还可以结合数字,达到一次移动多行的效果,如,10j,向下移动10行。
| 单词移动 |
|
| w |
移动到下一个单词头 |
| e |
移动到下一个单词尾 |
| b |
移动到上一个单词头 |
| ge |
移动到上一个单词尾 |
| 大幅上下移动 |
|
| [Ctrl] + [d] |
屏幕『向下』移动半页 |
| [Ctrl] + [u] |
屏幕『向上』移动半页 |
| [Ctrl] + [f] |
屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
| [Ctrl] + [b] |
屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
| 大福左右移动 |
|
| 0 或功能键[Home] |
这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
| $ 或功能键[End] |
移动到这一行的最后面字符处(常用) |
| 文件头尾跳转 |
|
| gg |
跳转文件第一行的第一个字符 |
| G |
跳转文件最后一行的第一个字符 |
| 指定移动距离 |
|
| nG |
n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
| n<Enter> |
n 为数字。光标向下移动 n 行(常用) |
| 屏幕内移动 |
|
| H |
光标移动到这个屏幕的最上方那一行的第一个字符 |
| M |
光标移动到这个屏幕的中央那一行的第一个字符 |
| L |
光标移动到这个屏幕的最下方那一行的第一个字符 |
| 其他 |
|
| + |
光标移动到非空格符的下一行 |
| - |
光标移动到非空格符的上一行 |
|
|
剪切、复制粘贴
| 剪切 |
|
| dd |
剪切游标所在的那一整行(常用),用 p/P 可以粘贴。 |
| ndd |
n 为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴。 |
| d1G |
剪切光标所在到第一行的所有数据 |
| dG |
剪切光标所在到最后一行的所有数据 |
| d$ |
剪切游标所在处,到该行的最后一个字符 |
| d0 |
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
| x, X |
在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
| nx |
n 为数字,连续向后剪切 n 个字符。举例来说,我要剪切10 个字符, 『10x』。 |
| 复制 |
|
| yw |
复制当前字符到下个单词头(不包含)的数据。 |
| ye |
复制当前字符到当前单词尾(包含)的数据。 |
| yy |
复制游标所在的那一行(常用) |
| nyy |
n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
| y1G |
复制游标所在行到第一行的所有数据 |
| yG |
复制游标所在行到最后一行的所有数据 |
| y0 |
复制光标所在的那个字符到该行行首的所有数据 |
| y$ |
复制光标所在的那个字符到该行行尾的所有数据 |
| 粘贴 |
|
| p, P |
粘贴到当前行下面/插入到当前行上面 |
搜索替换
| 搜索 |
|
| /[content] |
向光标之下寻找一个[context]的字符串。 |
| ?[content] |
向光标之上寻找一个[context]的字符串。 |
| n |
(在搜索中),下一个搜结果(如果是/?,则相反)。 |
| N |
(在搜索中),上一个搜结果(如果是/?,则相反)。 |
| 替换 |
|
| :n1,n2s/word1/word2/g |
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用) |
| :1,$s/word1/word2/g 或 :%s/word1/word2/g |
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用) |
| :1,$s/word1/word2/gc 或 :%s/word1/word2/gc |
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用) |
其他
| 文件操作 |
|
| :w |
写入磁盘 |
| :wq |
写入并退出 |
| :q |
退出,如果有修改,则提示错误,无法退出。 |
| :q! |
强制退出,抛弃修改的内容。 |
| :w [filename] |
写入到新文件 |
| :r [filename] |
将 『filename』 这个文件内容加到游标所在行后面 |
| :n1,n2 w [filename] |
将 n1 到 n2 的内容储存成 filename 这个档案。 |
| :! command |
暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! |
| 其他 |
|
| :set number |
临时显示行号;要永久设置,请在~/.vimrc中设置。 |
| :set nonu |
与 set nu 相反,为取消行号! |