终端编辑神器, Vim 常用快捷操作
工作模式
当我们打开终端,开始对文件进行操作,会经常在正常模式、编辑模式和命令模式之间来回切换,这三种模式统称为工作模式
正常模式
正常模式就是我们用 vim 命令打开某个文件时所处的模式
编辑模式
编辑模式让我们可以开始对文本进行操作(比如修改、插入),在正常模式下按下以下字符可以进入编辑模式:
i: 在光标所在字符前开始输入;I: 在行首(第一个非空白字符)开始输入
a: 在光标所在字符后开始输入;A: 在行尾开始输入
o: 在光标所在行的下一行开始输入;O: 在光标所在行的上一行开始输入
s: 删除光标所在字符并进入插入模式;S: 删除光标所在行并进入插入模式;
命令模式
命令模式主要用于管理文件或设置 vim,比如保存文件、放弃修改或退出Vim等操作。在正常模式下输入:
号进入命令模式(编辑模式下需要先按 esc 退出到正常模式),下面是常用命令:
:w
保存文件
:q
退出vim
:x
保存并退出vim,等价于:wq
,也等价于 shift + zz
:!
强制操作 (通常用于权限不足时)
:e!
放弃修改
快捷键
打开文件
vim filename
打开文件。若文件已存在,则直接打开;若文件不存在,则新建文件(如果不写入内容就不会创建)
vim filename +n
打开文件并定位到第 n 行
vim filename +
打开文件并定位到文件结尾
光标定位
当我们打开一个文件,光标默认是在文件上次保存的地方,当文件内容较多时,修改内容很不方便。通过光标定位可以快速到达指定位置
gg
: 文件行首
GG
: 文件行尾
ngg
: 文件第 n 行的行首
^
: 当前行行首
$
: 当前行行尾
还可以使用k、j、h、l
代替上下左右键
复制粘贴
yy
: 复制光标所在行;nyy
复制光标开始的n行
dd
: 剪切光标所在行;ndd
剪切光标开始的n行
p
: 粘贴内容
操作回退
u
: 撤销上一步的操作
ctrl + r
:恢复撤销的操作
查找替换
查找替换需要在命令模式下操作
:?查找内容
:回车键开始查找,n向前翻,N向后翻
:%s查找内容/替换内容/[g]
: 查找并替换,g表示全局替换
:起始行,结束行s/查找内容/替换内容/[g]
: 查找并替换从起始行到结束行
vim配置
:set nu
开启行号显示
:set nonu
取消行号显示
当文件未保存而意外关闭时,下次编辑文件时会提示你是否恢复未保存内容
输入R
恢复未保存内容即可。但是下次再次编辑该文件时还会提示你,这是因为有个.swap
文件记录了这次意外操作,输入d
删除交换文件,下次就不回提醒了