vi是Linux下默认的编辑器,有两种工作模式:命令模式和文本输入模式
命令模式:输入的字符被解释为vi命令,文本模式切换至命令械:esc键
文本输入模式:输入的字符为可编辑的文本,命令模式切换至文本模式:i
1.打开文件的命令选项--7
序号 | vi使用的选项 | 说明 |
1 | vi filename | 打开或者新建一个文件,并将光标置于第一行的首部 |
2 | vi -r filename | 恢复上次vi打开时崩溃的文件(-要加上) |
3 | vi -R filename | 把指定的文件以只读方式放入编辑器中 |
4 | vi + filename | 打开文件,并将光标置于第n行的首部(+号要加,并且前后是空格) |
5 | vi +n filename | 打开文件,并将光标置于第n行的首部 |
6 | vi +/pattern filename | 打开文件,并将光标置于第一个与pattern匹配的位置 |
7 | vi -c command filename | 在对文件编辑前,先执行指定的命令 |
2.移动光标类命令--18--命令模式下
序号 | 按键或字符 | 说明 |
1 | h/Backspace键 | 光标左移一个字符 |
2 | l | 光标右移一个字符 |
3 | k/Ctrl+p | 光标上移一个字符 |
4 | j/Ctrl+n | 光标下移一个字符 |
5 | Enter键 | 下移一行 |
6 | w/W | 右移一个字到字首 |
7 | b/B | 左移一个字到字首 |
8 | e/E | 右移一个字到字尾 |
9 | nG | 移动到第n行首部 |
10 | n+ | 光标下移n行 |
11 | n- | 光标上移n行 |
12 | n$ | 基于当前所在行,再向后移动n行至行尾 |
13 | H | 移动至当前 屏幕的顶行 |
14 | M | 移动至当前屏幕的中间行 |
15 | L | 移动到当前屏幕的最底行 |
16 | 0 | 移动光标至当前行首(注意是数字0) |
17 | $ | 光标移至当前行尾 |
18 | :$ | 光标移动至文件最后一行的行首 |
3.屏幕翻滚类命令--命令模式
序号 | 按键或字符 | 说明 |
1 | ctrl+u | 基于当前屏幕,向文件首翻半屏 |
2 | ctrl+d | 基于当前屏幕,向文件尾翻半屏 |
3 | ctrl+b | 基于当前屏幕,向文件首翻一屏 |
4 | ctrl+f | 基于当前屏幕,向文件尾翻一屏 |
5 | nz+Enter | 将文件的第n行滚至屏幕顶部,如果不指定n,将当前行滚至顶部 |
4.插入与删除文本类命令--12--命令模式
序号 | 按键或字符 | 说明 |
1 | Esc键 | 返回命令行模式 |
2 | i | 在光标前输入文字/进入文本编辑模式 |
3 | a | 光标后输入文字 |
4 | o | 当前行之下,新开一行 |
5 | O | 当前行之上,新开一行 |
6 | r | 替换光标所在字符,输入r命令后,输入新字符即可 |
7 | x | 替换光标所在的字符 |
8 | dd | 删除光标所在的行,删除后的内容保存在剪贴板 |
9 | yy | 将光标所在行复制到剪贴板,前面加数字,可复制多行 |
10 | p | 将剪贴板内容复制到光标后 |
11 | P | 将剪贴板内容复制到光标前 |
12 | yw | 将光档所在的单词复制到剪贴板 |
5.搜索及替换类命令--8----命令行模式
序号 | 按键或字符 | 说明 |
1 | /abc | 在文件中向前查找字符串abc |
2 | ?abc | 在文件中向后查找字符串abc |
3 | n | 在同一方几重复上次的搜索命令 |
4 | N | 在相反方向重复上次的搜索命令 |
5 | :s/a1/a2/g | 将当前光标所在行中的所有a1均用a2替换 |
6 | :n1,n2s/a1/a2/g | 将文件文件第n1行至n2行中所有a1均用a2替换 |
7 | :g/a1/a2/g | 将文件中所有的a1均用a2替换 |
8 | :set nu | 给文件的每行加上行号 |
6.保存与退出类--8---命令行模式
序号 | 按键或字符 | 说明 |
1 | :wq | 保存并退出vi |
2 | :wq! | 不保存,强制退出 |
3 | :q | 不保存,退出 |
4 | :q! | 不保存,强制退出 |
5 | :w | 保存不退出 |
6 | :w! | 强制保存 |
7 | :w filename | 相当于另存为名为filename的文件 |
8 | x! | 保存文件并退出,更常用 |