Vim编辑器
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文本编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。
Vim是从 vi 发展出来的一个文本编辑器,具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
1.命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
复制粘贴删除命令
d 删除字符,单个d本身没有任何涵义,但是它可以跟其他命令组合,完成一些快速操作。
x 删除当前字符(del键同此操作,X删除光标前一字符)
dd 删除当前行
dw 从光标开始删除整个单词(delete word)
db 从光标往前删除到单词开头
d$ 删除光标后面至行尾
d^ 删除光标前面至行首
ndd n 删除光标所在行往后n行(包括光标行)
yy 拷贝光标所在行
nyy n 拷贝光标所在行起往后n行(包括光标行)
p 粘贴yy所复制内容到光标下一行
u 撤销上一步操作,可连续撤销
gg&*yG 复制所有行
全局移动
# 注意:命令模式下,Backspance相当于←,Delete是删除光标字符
h 向左移动 ←(Backspace同此)
j 向下移动 ↓
k 向上移动 ↑
l 向右移动 → (注意是L)
gg 移动到首行
G 移动到末行
Ctrl+f 向下翻页,即PageDown翻页
Ctrl+b 向上翻页,即PageUp翻页
行内移动
w 或者 W 移动到下一个单词(word)
b 或者 B 移动到上一个单词
e 移动下一个单词结尾
^ 移动到当前行第一个非空字符
0 移动到行首(数字0)
$ 移动到行尾
n<space> 按下数字后再按空格键,向后移动n个字符
f{char} 光标移动到后面最近一个char字符(char为单个字符)
F{char} 光标移动到前面最近一个char字符
搜索替换
/word 在光标之后搜索word字符串
?word 在光标之前搜索word字符串
n 跳到上一个搜索结果(字符n)
N 跳到下一个搜索结果
:1,$s/word1/word2/g 从首行到末行搜索word1,并替换成为word2
:1,$s/word1/word2/gc 从首行到末行搜索word1,并替换成为word2,替换前需确认
:n1,n2s/word1/word2/g 从n1行到n2行搜索word1,并替换成为word2
进入插入模式
# 要想编写文本内容,还必须在插入模式下进行操作,以下命令由命令模式进入到插入模式
i 在当前光标前插入
o 在当前光标下面新建空白行插入
a 在光标后面插入字符(append)
I 在行首插入, i^ => I
A 在行尾插入,a$ => A
O 在光标上面新建空白行插入
s 删除当前光标字符,进入插入模式
r 进入单次字符替换模式(不提示,只替换光标字符一次)
R 进入字符替换模式(一直替换光标字符)
2.插入模式
插入模式下只只专注于输入文字信息。如需移动光标可退出插入模式到命令模式或使用箭头的方向按键。
以下是一些插入模式下的常用命令:
复制删除
Ctrl+h 删除光标前一个字符,相当于Backspace按键
Ctrl+w 删除光标前一个单词(如果光标在单词中间,删除光标前的单词字符)
Ctrl+u 删除光标前至行首字符
Ctrl+y 复制光标上一行的同列字符
Ctrl+e 复制光标下一行的同列字符
调整缩进
Ctrl+t 增加缩进
Ctrl+d 减少缩进
3.底线模式
随时按下esc可以退出底线命令模式回到命令模式
写入退出
:w 写入
:w! 强制写入
:q 退出
:q! 强制退出(修改后但不想保存)
:wq 写入退出
:wq! 强制写入退出
:w [filename] 将编辑的数据保存另一个文件(默认使用当前路径)
:n1 n2 w [filename] 将n1至n2行的内容保存到另一个文件
:! command 暂时离开vi到终端执行command的显示结果
vim环境变更
:set nu 显示行号
:set nonu 取消显示行号
:n 跳到第n行
4.可视模式
可视模式(VISUAL):主要用于选中一块编辑区域,然后在上面执行一些操作,比如删除、替换、注释、改变大小写等。可视模式下可使用命令模式下的移动光标命令去进行移动。
激活方法
# 按Esc键或Ctr+c键退出可视模式
v 激活可视字符(VISUAL)模式,用于逐个字符选择文本
V 激活可视行(VISUAL LINE)模式,用于逐行选择文本
Ctrl+v 激活可视块(VISUAL BLOCK)模式,用于块方式选择文本
批量注释
Ctrl+v进入可视块模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式,输入注释符号如//或#,输出完毕后,按两下Esc键,Vim会自动将你选中的所有行首加上注释,保存退出完成注释
取消注释
Ctrl+v进入可视块模式,然后选中每行你要删除的行首的注释符号(注意//要选中两个),选好之后按d即可删除注释,Esc保存退出。
代码对比
vimdiff <file> <file>
vim -d <file> <file>
Ctrl+W Ctrl+W # 切换左右窗口
参考:
[1] https://juejin.im/post/5d40349ee51d4561b76c73fa
[2] https://blog.csdn.net/ii1245712564/article/details/46960387