提到vim的快捷键,咱们不得不唠嗑一下vi.
恁要知道,vim是用vi发展而来的一种文本编辑器。而,vi有三种模式:
1. 命令模式: 用于输入命令
2. 插入模式: 用于插入文本
3. 可视最后行模式: 用于可视化的特殊命令模式
1.命令模式:
命令模式是启动vi后,首先进入的工作模式,并可转为文本编辑模式和可视模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,并且不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会拉响警告。
2.文本编辑模式:
文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,进入后,输入的任何字符都被vi当作文件内容显示在屏幕上。
按Esc键可从文本编辑模式返回到命令模式。
3.可视最后行模式:
在命令模式下,按“:”键(需要使用shift键辅助)进入可视最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令(如:wq)。
命令执行完毕后,vi自动回到命令模式或则退出vi。
vi常用命令(命令行模式下使用)
i | 从当前光标开始,进入编辑模式 |
a | 光标移动到当前字符后,进入编辑模式 |
s | 删除当前光标下的字符,进入编辑模模式 |
h | 向前移动一个字符 |
j | 向上移动一行 |
k | 向下移动一行 |
l | 向后移动一个字符 |
x | 删除光标所在字符 |
shift+g+g | 跳到文件的最末尾 |
gg | 跳到文件的最开始 |
dd | 删除光标所在行 |
dw | 删除当前光标后的所有连续字符 |
<n>dd | 2dd,表示从当前行开始算,往下删除2行 |
yy | 复制光标所在行 |
<n>yy | 2yy,表示从当前行开始算,往下复制2行 |
p | 拷贝粘贴板内容到当前光标后的下一行 |
r | 修改光标所在字符,r后街者要修正的字符 |
R | 进入替换状态,新增资料会覆盖原来资料,直到按下[ESC]回到指令状态下为止 |
s | 删除光标所在字符,并进入插入模式 |
S | 删除光标所在行, 并进入插入模式 |
v+<移动光标>+p | 从按下v开始移动光标,会高亮出选中的字符,按下p后复制选中的所有字符 |
/abc + 回车 | 在文本中搜索abc, 并使用n/N键进行向下/上的搜索 |
shift+* | 在文本中所有光标所在的字符,并可使用n/N键进行向下/上的搜索 |
:<n> + 回车 | :59 --- 跳入文本的第59行 |
:vsp abc.c + 回车 | 使用分屏打开第二个文件abc.c, 并可使用ctrl+6来进行两个窗口文件的切换 |
:%s/abc/123/g + 回车 | 把文本中所有abc都替换为123 |
:w + 回车 | 保存文本(当前用户必须对文本有写权限),不退出 |
:q + 回车 | 退出文本,如有修改则不能退出 |
:q! + 回车 | 强行退出文本,放弃任何修改 |
:wq + 回车 | 保存文本,退出 |