【Linux】15. 详解Vim快捷操作
目录
1. 命令模式
1.1 移动光标
1.2 跳转
1.3 批量注释和反注释
1.4 删除字母
1.5 删除整行或剪切
1.6 从光标所在行删除到文件末尾
1.7 复制
1.8 粘贴
1.9 替换
1.10 撤销与反撤销
1.11 设置/取消行数
1.12 搜索
1.13 如何将代码调整整齐
1.14 保存文件
1.15 退出Vim
2. 插入模式
3. 底行模式
4. Visual模式
- Vim包括命令模式,插入模式和底行模式,Vim进入时默认为命令模式
- 命令模式进入插入模式:输入"i"或者"a"或者"o"
- 命令模式进入底行模式:输入":"
- 插入模式返回命令模式:输入"Esc"
1. 命令模式
1.1 移动光标
1.2 跳转
(1)跳转到文件开头:gg
(2)跳转到文件末尾:G
(3)跳转到行首
① 0:光标会跳转到行首,即index=0处,即使0处为空
② ^ 或 Home 键:光标会跳转到当前文字出现的首位置,即会跳过空格
(4)跳转到行尾
① $ 或 End 键:光标跳转到行尾,若当前已换行(意思是一行显示不完),则跳转到换行的行尾
(5)跳转到指定行
① 数字gg:如跳转到16行,则执行 16gg 即可
② :数字:如跳转到16行,则执行 :16 即可
1.3 批量注释和反注释
(1)方法一:块选择模式
① 注释:Ctrl+v进入Visual模式,移动上下键选择需要注释的行,按 "I" (大写的i)进入插入模式,输入 "//" ,再按 Esc 即可
② 取消注释:Ctrl+v进入Visual模式,移动上下左右键选择需要取消注释的行,即要选中所有的 ''//" ,按下 "d" 即可
(2)方法二:命令
① 注释::起始行号,结束行号s#^#注释符#g,例如16-28需要注释的命令::16,28s#^#//#g
② 取消注释::起始行号,结束行号s#^注释符##g,例如16-28取消注释的命令::16,28s#^//##g
1.4 删除字母
(1)x:删除单个字母
(2)nx:删除n个字母,例如从光标位置连续删除10个字母,可以使用10x
1.5 删除整行或剪切
(1)dd:删除单行
(2)ndd:删除n行
(3):n1,n2d:删除n1-n2行
注意:这里的 dd 既是删除也是剪贴
1.6 从光标所在行删除到文件末尾
(1)dG:从光标所在行删除到文件末尾,d是删除行,G是文件尾,连起来就是删除到文件末尾
1.7 复制
(1)yy:复制单行
(2)nyy:复制n行
1.8 粘贴
(1)小写 p:粘贴到光标的下一行
(2)大写 P:粘贴到光标的上一行
1.9 替换
(1)小写 r:替换光标所在的字符
(2)大写 R:从光标所在处开始替换字符,按Esc结束
1.10 撤销与反撤销
(1)u:撤销
(2)Ctrl + r:反撤销
1.11 设置/取消行数
(1)set nu:显示行数
(2)set nonu:取消显示行数
1.12 搜索
(1)/:从光标所在处向下搜索
(2)?:从光标所在处向上搜索
例如:在命令模式直接输入/MyFunc,被搜索的MyFunc会高亮显示,n向下搜索,N向上搜索
取消高亮:输入 :noh
1.13 如何将代码调整整齐
(1)方法一:自动排版
在命令模式下输入 gg=G 即可
注意:确保Vim开启了适当的缩进设置,可以在.vimrc文件中添加以下设置(该文件通常在用户的home目录下)
set tabstop=4 //设置一个Tab键的宽度为4个空格set shiftwidth=4 //设置自动缩进的宽度为4个空格set expandtab //将Tab键转换为空格
(2)方法二:手动排版
在Visual模式下,选中要调整的代码,按下"="键后选中的代码会自动调整
1.14 保存文件
(1)命令模式输入:w,表示保存文件
1.15 退出Vim
(1):q:退出
(2):wq:保存并退出
(3):q!:不保存强制退出
2. 插入模式
(1)小写i:在光标所在的字符前插入
(2)大写I:在光标所在的行首插入
(3)小写o:在光标下插入新行
(4)大写O:在光标上插入新行
(5)小写a:在光标所在的字符后插入
(5)大写A:在光标所在的行尾插入
3. 底行模式
命令模式下输入":"进入底行模式
4. Visual模式
Visual模式用于选择文本块,然后执行各种命令去操作文本块
(1)普通可视模式
在命令模式下输入小写"v"可进入,再次按小写"v"可退出
可以通过移动光标选择任意字符形成一个矩形区域,可选择单个字符或跨行多个字符
(2)行可视模式
在命令模式下输入大写"V"可进入,再次按大写"V"可退出
以行为单位文本,选择是整行文本
(3)块可视模式
在命令模式下输入"Ctrl + v"可进入,再次输入"Ctrl + v"可退出
以块的形式选择文本,可以用来选择矩形区域的文本