vi是Linux下默认的编辑器,几乎所有的Linux/UNIX都捆绑了vi。也可以用vim编辑器
vi编辑器有两种工作模式:命令模式和文本输入模式。
- Linux下用vi打开文件的命令选项:
| 打开文件选项 | 说明 |
|---|---|
| vi filename | 打开或是新建一个文件,并将光标置于第一行的首部 |
| vi -r filename | 回复上次vi打开时崩溃的文件 |
| vi -R filename | 把指定的文件以只读的方式放入文本编辑器中 |
| vi + filename | 打开文件并将光标置于文件的最后一行的首部 |
| vi +n filename | 打开文件并将光标置于文件的最后n行的首部 |
| vi +/pattern filename | 打开文件并将光标置于文件第一个与pattern匹配的位置 |
| vi -c command filename | 在对文件进行编辑前,先执行指令的命令 |
- vi命令模式下的命令:
- 移动光标类命令:
| 按的键或输入的字符 | 说明 |
|---|---|
| h | 光标左移一个字符 |
| l | 光标右移一个字符 |
| backspace键 | 光标左移一个字符 |
| k或Ctrl + p | 光标上移一个字符 |
| j或Ctrl + n | 光标下移一个字符 |
| enter键 | 光标下移一个行 |
| w或W | 光标右移一个字到字首 |
| b或B | 光标左移一个字到字首 |
| e或E | 光标右移一个字到字尾 |
| nG | 光标移动到第几行首部 |
| n+ | 光标下移n行 |
| n- | 光标上移n行 |
| H | 光标移至到当前屏幕顶行 |
| M | 光标移至到当前屏幕中间行 |
| L | 光标移至到当前屏幕最底行 |
- 屏幕翻滚类命令:
| 按的键或输入的字符 | 说明 |
|---|---|
| Ctrl +u | 相当于当前屏幕,向文件首翻半屏 |
| Ctrl +d | 相当于当前屏幕,向文件尾翻半屏 |
| Ctrl +b | 相当于当前屏幕,向文件首翻一屏 |
| Ctrl +f | 相当于当前屏幕,向文件尾翻一屏 |
| nz+Enter | 将文件的第n行滚动至屏幕顶部,如果不指定n,将当前行滚动至屏幕顶部 |
3.插入与删除类命令:
| 按的键或输入的字符 | 说明 |
|---|---|
| Esc | 返回命令行模式 |
| i | 在光标前输入文字 |
| a | 在光标后输入文字 |
| o | 在当前行之下新开一行 |
| O | 在当前行之上新开一行 |
| r | 替换光标所在字符,输入r命令后,在键盘输入需要替换的新字符即可完成替换 |
| x | 删除光标所在字符 |
| dd | 删除光标所在行。删除后的内容自动保存到剪切板 |
| yy | 将光标所在行复制到剪切板,如果yy前加上数字,可复制多行 |
| p | 将剪切板的内容复制到光标后 |
| P | 将剪切板的内容复制到光标前 |
| yw | 将光标所在单词复制到剪切板 |
4.搜索及替换命令:
| 按的键或输入的字符 | 说明 |
|---|---|
| /abc | 在文件中向前查找字符串abc |
| ?abc | 在文件中向后查找字符串abc |
| n | 在同一方向重复上一次的搜索命令 |
| N | 在同相反方向重复上一次的搜索命令 |
| :s/a1/a2/g | 将当前光标所在行上的所有a1替换成a2 |
| :n1,n2/a1/a2/g | 将文件第n1行到第n2行上所有a1替换成a2 |
| :g/a1/a2/g | 将文件中的所有a1替换成a2 |
| :set nu | 给文件的每行加上行号 |
5.保存与退出类命令:
| 按的键或输入的字符 | 说明 |
|---|---|
| :wq | 保存并退出vi编辑器,“:wq!”表示不保存,强制退出 |
| :q | 不保存就退出vi编辑器,“:q!”表示不保存,强制退出 |
| :w | 表示保存,但不退出vi编辑器。“:w!”表示强制保存;“:w filename”表示将修改保存到filename文件中,即另存为 |
| x! | 保存文件,退出vi编辑器,更通用的一个vi命令 |