人上了年纪身体越来越差,脑子反映越来越慢。为了日后开发方便,好记性不如赖笔头,记录一下 Vim常用命令 以便日后查询。
Vi常用的2种模式:输入模式,命令模式。常用的vi命令一般都在命令模式下。
光标移动
| 命令 |
说明 |
| esc |
退出输入模式 |
| h, j, k, l |
左,下,上,右 移动光标 |
| w |
向右移动一个word [word最后一个字母之后] |
| e |
向右移动一个word [word最后一个字母上] |
| W |
向右移动一系列word,定位在下个word [空白为分隔] |
| E |
向右移动一系列word, 定位在当前系列最后一个字母 [空白为分隔] |
| b |
向左移动一个word [定位在word第一个字母] |
| B |
向左移动一系列word [空白为分隔] |
| Ctrl + f |
下一页 |
| Ctrl + b |
上一页 |
| Ctrl + u |
上半页 |
| Ctrl + d |
后半页 |
| gg |
第一行 |
| G |
最后一行 |
| ^ |
行首 |
| $ |
行尾 |
***编辑,插入 [切换至 "输入模式" ] ***
| 命令 |
说明 |
| o |
当前行下插入一行 |
| O |
光标行上插入一行 |
| i |
光标前插入 |
| I |
光标所在行首插入 |
| a |
光标后插入 |
| A |
光票所在行尾插入 |
| cw |
删除光标所在位置 至 下一个独立字符(符号,标点) |
| c$ |
删除光标位置 至 行尾 |
| c^ |
删除光标位置 至 行首 |
| x |
删除光标位置 字符 不进入 输入模式
|
| X |
删除光标前一个位置 字符 不进入 输入模式
|
| J |
合并光标下一行,至本行 |
| s |
删除光标当前字符 |
| S |
删除光标所在行 与 dd 功能相同 |
| dd |
删除光标所在行 |
| cw/cW |
删除当前单词 从光标开始 的部分并 '进入' 插入模式, |
| dw/dW |
删除当前单词 从光标开始 的部分但 '不进入' 插入模式 |
| cb/cB |
删除当前单词 从光标所在位置 至 单词开始 的部分并 '进入' 插入模式 |
| db/dB |
删除当前单词 从光标所在位置 至 单词开始 的部分但 '不进入' 插入模式 |
cW、cB、dW、dB 是以空白字符(空格、Tab)分隔字符串的 |
比如: “str1-str2 str3-str4”, 对 cW,cB,dW,dB 命令来说是 两个 单词, 对 cw、cb、dw、db 命令来说则是 四个 单词。 |
| D |
删除光标位置 至 行尾 |
| 数字dd |
向下删除 "数字"(n) 行 |
| r + 输入 |
命令模式下 替换光标字符 |
| u |
撤销上步操作 |
| Ctrl + r |
恢复上步操作 |
选择,复制,粘贴
| 命令 |
说明 |
| yy |
拷贝当前行 |
| y^ |
复制光标位置 至 行首 |
| y$ |
复制光标位置 至 行尾 |
| yiw |
复制 当前单词 不包括 周围空白 |
| yaw |
复制 当前单词 包括 周围空白 |
| p |
粘贴 yy 拷贝的行 |
| v |
进入 字符 选择模式,配合h, j, k, l |
| V |
进入 行 选择模式,配合h, j, k, l |
搜索,替换
| 命令 |
说明 |
| /搜索内容 |
向下搜索 |
| ?搜索内容 |
向上搜索 |
| n |
向搜索方向 寻找下一个 |
| N |
向搜索 反方向 寻找下一个 |
| :s/a/b |
搜索当前行第一个1并用2代替,search |
| :s/a/b/g |
搜索当前行所有的1并用2代替,global |
| :%s/1/2/g |
在整个文档中将1替换为2,全部 |
| :/\n |
查找换行符 |
| :/\r |
查找回车符 |
保存,退出
| 命令 |
说明 |
| :w |
保存 |
| :w! |
强制保存 |
| :q |
退出 |
| :q! |
强制退出 |
| :wq |
保存并退出 |
| :wq! |
强制保存并退出 |
| ZZ |
保存并退出 |
| Ctrl +z |
保存并关闭VI窗口,但不退出编辑 |
| fg |
命令行下输入fg,或 fg数字 打开刚刚编辑的文件 |
行号,其他
| 命令 |
说明 |
| :set nu |
显示行号 |
| :set nonu |
不显示行号 |
| :set hl |
搜索高亮 |
| :set noh |
去掉搜索高亮 |
| :args |
显示正在编辑的文件 |
| :next |
切换到下一个文件 |
| :prev |
切换到上一个文件 |
| :split |
水平分隔窗口 |
| :qsplit |
垂直分隔窗口 |
| :first |
定位到一个文件 |
| :last |
定位到最后一个文件 |
| vim +n fileName |
打开文件,光标定位到行 n |
网友评论