Linux入门-2 VIM基础
启动与退出
vim只启动vimvim <filename>打开文件,如果不存在则新建
模式
- Normal:其他模式下按ESC可进入此模式
- Insert:Normal模式下输入i,I,a,A,o,O,r,R,输入命令时加前缀
i_ - Visual:Normal模式下输入":",输入命令时加前缀
i_
进入插入模式
| 命令 | 操作 |
|---|---|
| i | 在当前字符前插入 |
| I | 在当前行首插入 |
| a | 在当前字符后插入 |
| A | 在当前行末插入 |
| o | 在当前行下插入新行 |
| O | 在当前行上插入新行 |
命令
operator [number] motion
删除、复制、粘贴
| 命令 | 操作 |
|---|---|
| x | 向后删除一个字符(Delete) |
| X | 向前删除一个字符 |
| nx | 向后删除n个字符 |
| nX | 向前删除n个字符 |
| dd | 删除行 |
| ndd | 删除n行 |
| dG | 删除之后的所有行 |
| d1G | 删除之前的所有行 |
| yy | 复制当前行 |
| nyy | 复制n行 |
| yG | 复制之后的所有行 |
| y1G | 复制之前的所有行 |
| p | 粘贴到下一行 |
| P | 粘贴到上一行 |
| u | 撤销上一个操作 |
| U | 撤销当前行的改动 |
| Ctrl+r | 恢复改动(撤销撤销) |
光标控制
| 命令 | 操作 |
|---|---|
| 方向键或kjhl | 移动一个字符或一行 |
| w | 到下一个词的开头 |
| e | 到下一个词的结尾 |
| b | 到上一个词,可以加n |
| Home或0或Shift+6 | 到行首 |
| End或Shift+4 | 到行尾 |
| nG(n是数字) | 到该文本的第n行 |
| G | 到文本的最末行 |
| gg | 到该文本的首行 |
| H | 到当前屏幕的最顶行 |
| M | 到当前屏幕的中央那一行 |
| L | 到当前屏幕的最底行 |
| n回车(n是数字) | 向下移动n行 |
| n空格(n是数字) | 向右移动n个字符 |
| Ctrl+f或PageUp | 向前翻页 |
| Ctrl+b或PageDown | 向后翻页 |
| Ctrl+d | 屏幕向前移动半页 |
| Ctrl+u | 屏幕向后移动半页 |
| m[a-z | A-Z] |
| '[a-z | A-Z] |
查找与替换
| 命令 | 操作 |
|---|---|
| /word | 向后查找,按n继续搜后一个,Shift+n向前 |
| ?word | 向前查找,按n继续搜前一个,Shift+n向后 |
| % | 查找括号的配对 |
| r | 替换当前字符 |
| 😒/old/new/g | 替换old为new,g表示global |
| :n1,n2s/word1/word2/g | 将n1-n2行间的word1替换为word2,也可以用”#”代替”/” |
| :1,$s/word1/word2/g | 将第一行到最末行的word1替换为word2 |
| :%s/old/new/g | 全文替换 |
| :1,$s/word1/word2/gc | 在替换前需要用户确认 |
EX模式
| 命令 | 操作 |
|---|---|
| :w [filename] | 保存 |
| :q | 退出 |
| :q! | 强制退出,不保存 |
| :x | 保存并退出,==wq |
| :set number | 显式行号 |
| :set nonumber | 不显示行号 |
| :!系统命令 | 执行系统命令并显示结果 |
| :sh | 切换到命令行,使用ctrl+d返回vim |

浙公网安备 33010602011771号