四种模式
模式间的切换
normal模式下按 v 进入Visual模式,按 v, Esc, y, d 退出回到normal模式。
normal模式下按 : 进入Command模式,按 Esc 退出回到normal模式。
normal模式下按 i, I, a, A, o, O 进入Insert模式,按 Esc 退出回到normal模式。
任意其它模式下按 Esc 进入normal模式。
常用快捷键
Insert模式
Visual模式
可以移动光标,选中区域进行操作:
光标选中区域后按 y 复制,移动到目标位置后再按 p 粘贴
光标选中区域后按 x 删除
normal模式
y^ 从行首到光标所在位置之前的字符复制(不包含光标)
y$ 从光标所在位置到行尾的字符复制(包含光标)
yy 复制光标所在行的字符
nyy 复制光标所在行向下的n行字符(包括本行)
x 删除光标所在位置的单个字符
d^ 从行首到光标所在位置之前的字符删除(包含光标到行尾的字符保留)
d$ 从光标所在位置(包含)到行尾的字符删除(行首到光标前的字符保留)
dd 删除光标所在行一整行的字符(即该行消失)
u 撤销前一步的操作
CTRL + u 反撤销
CTRL + v 可视块操作(常用于行的批量操作,例如一次性删除连续多行的开头注释符号“//”,可normal模式下按 CTRL + v ,光标一直向下选中每一行的开头“//”,再按 x 即可一次性完成删除)
翻页
CTRL + u 向前翻半页
CTRL + d 向后翻半页
CTRL + b 向前翻一页
CTRL + f 向后翻一页
移动光标
- 将光标移动到上一行第一个字符
+ 将光标移动到下一行的第一个字符
Shift + ^ 将光标移动到本行的行首(在Command模式下,直接输入数字0,效果也是直接到行首)
Shift + $ 将光标移动到本行的行尾
} 移动到下一个Block(Bock就是以空行分割的区域)
{ 移动到上一个Block
w 移动到下一个word
G的用法
G 是用来将光标移动到某一行的快捷键。
nG 将光标移动到第n行的第一个字符处
ngg 跟 nG 功能相同
d + nG 删掉光标所在行向下一直到第n行的字符(包括本行与第n行)
d + ngg 跟 d + nG 功能相同
y + nG 复制光标所在行向下一直到第n行的字符(包括本行与第n行)
y + ngg 跟 y + nG 功能相同
dGG 从光标所在位置一直删到文件最后一行(包括光标和最后一行)
Command模式
normal模式下按冒号进入Command模式,之后可以输入以下命令:
w 保存文件
q! 强制退出
wq 保存并退出
wq! 保存并强制退出
e foo.txt 打开foo.txt文件
saveas ~/foo.txt 另存为~/foo.txt文件
split 切分窗口, vsplit
set n 设置行号
$ 的效果和 GG 的一样,光标直接跳到最后一行开头
n 的效果也和 nG 一样,光标直接跳到第n行开头
搜索
:/keyword 向下搜索,如果到底了,vim会自动从头开始
:?keyword 向上搜索,如果到头了,vim会自动从底部开始
搜索之后,按
n 到下一处搜索匹配的位置
N 到上一处搜索匹配的位置
针对光标停留处的特定单词,可以使用快捷键进行向上和向下的搜索,而且是vim的全词搜索:
Shift + 8 即*键,直接对光标停留处的单词进行向下搜索
Shift + 3 即#键,直接对光标停留处的单词进行向上搜索
:nohl 取消搜索词高亮显示,用快捷键搜索的高亮也用此命令取消
其它技巧
文件保存后(连按两次 Esc ),vim会自动做静态语法检测。
:x 也是保存并退出。
挂起与唤回
当时用vim编程时,时常需要切换回控制台运行测试代码,比较麻烦。这时可以使用 CTRL + z 将vim调至后台挂起,界面自动跳回控制台,会有文字提示vim被挂起(进程编号即对应的运行中的vim),当控制台操作完成后(例如编译运行看结果),再按 fg 即可唤起之前被挂起的vim至前台,继续编辑。
在vim界面,保存文件后,也可直接按 F5 快速切换回控制台,再按回车可直接编译运行程序(不必再自己操作编译过程)。
vimtutor
个性化vim配置
详见github ma6174主页,上面整合了众多优秀的vim插件,可根据自己的需求进行个性化配置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。