1. vi/vim编辑器详细使用讲解
1.1 vi/vim编辑器的3种模式

1.2 vi/vim编辑器操作说明
| 参数/命令/模式 | 说明 |
| ###普通模式 | |
| :set nu | 显示行号 |
| :set nonu | 不显示行号 |
| /PATTERN | 从当前光标所在处向文件尾部查找(n与命令同向查找下一个,N则相反) |
| ?PATTERN | 从当前光标所在处向文件首部查找(n与命令同向查找下一个,N则相反) |
| ###光标移动操作 | |
| 0 或 ^ | 跳到光标所在行行首 |
| $ | 跳到光标所在行行尾 |
| gg | 跳转至文件开头 |
| G,或shift+g | 跳转至文件尾部 |
| ngg (n是所在行的数字) | 跳转到指定行 |
| ###搜索关键字 | |
| /keyword | 使用/搜索,默认向下搜索,按n继续搜索下一个,反向按N向上搜索 |
| ###替换字符串(/可使用其他符合如@,#) | 注意事项:如果有分组引用,则须转义小括号 () |
| :%s/A/B/g | 把文本中所有的A替换为B(%代表全局替换),/斜线为分隔符,可以用@或#代替 |
| :1,3s/A/B/g | 把第1-3行的A替换为B,没有%,就不是全局替换,仅仅将1-3行符合条件的替换 |
| :1,$s/A/B/g | 将第1行到结尾符合条件的内容进行替换 |
| ###删除 | |
| dd | 删除光标所在行单行 |
| ndd | 从光标处开始,往后删除n行,n是数字 |
| x | 小写x,往后删除字符 |
| X | 大写X,往前删除字符 |
| d1G | 删除当前行至第一行(往前) |
| dG | 删除当前行至最后一行(往后) |
| d0 | 删除当前光标文本至行首(单行) |
| d$ | 删除当前光标文本至行尾(单行) |
| ###剪切 | |
| dd ---> p | 使用dd删除(也是剪切),再使用p复制,默认复制到光标所在行的下一行 |
| ###撤销(回滚前一个执行的操作) | |
| u | 撤销删除或更改的操作,进行回滚 |
| Ctrl+r | 撤销之前的撤销 |
| ###复制 | |
| yy | 复制光标所在行 |
| nyy | 从光标所在行开始,往后复制n行,n是数字 |
| 5gg ---> 5yy | 跳到第5行,再往后复制5行 |
| 5gg ---> shift+g | 跳到第5行,再复制往后所有行 |
| ###粘贴 | |
| p |
小写p,粘贴到光标所在行的下一行(缓冲区存储的是整行); 粘贴到光标所在行的末尾(缓冲区存储的是一段内容) |
| 3p |
小写p,粘贴多次内容 |
| P |
大写P,粘贴到光标所在行的上一行(缓冲区存储的是整行); 粘贴到光标所在行的行首(缓冲区存储的是一段内容) |
| ###编辑模式操作 | |
| i | insert,进入插入模式,在光标所在处输入,进入编辑状态 |
| I | 大写I,在当前光标所在行行首输入,进入编辑状态 |
| a | append,在光标下一个字符插入,进入编辑状态 |
| A | 在当前光标所在行行尾追加输入内容,进入编辑状态 |
| o | 小写o,在光标下一行开插入(在当前光标所在行的下方打开一个新行) |
| O | 大写O,在光标上一行开插入(在当前光标所在行的上方打开一个新行) |
| C | 将光标到行尾内容进行删除,并进入编辑状态 |
| cc | 将整行内容进行删除并进入编辑状态 |
| Esc --键盘上Esc键 | 退出编辑模式 |
| ###关闭文件 | |
| :wq | 保存退出 |
| :x | 保存退出 |
| :q | 退出 |
| :q! | 强制退出,不保存更改 |
| :w /path | 将文件保存至其他路径 |
| ZZ | 大写2个ZZ,保存退出 |
| ###改变命令(了解,无需掌握) | |
| c | 修改(编辑模式--->输入模式) |
| ###可视化模式(了解) | |
| v | 按字符选定内容(经常结合d,c,y编辑命令) |
| V | 按行选定内容 |
| ###翻屏操作 | |
| Ctrl+f | 向文件尾部翻一屏 |
| Ctrl+b | 向文件首部翻一屏 |
| Ctrl+d | 向文件尾部翻半屏 |
| Ctrl+u | 向文件首部翻半屏 |