vim 的四种模式
- 正常模式(normal-mode)
- 插入模式(insert-mode)
- 命令模式(command-mode)
- 可视模式(visual-mode)
正常模式
用 vim 命令打开一个文件后,出来的那个界面就是正常模式的界面,在这个模式下你可以浏览文件的内容,也可以进行修改。然后不管处于什么界面中只要按 ESC
都会进入正常模式。处于该模式下的时候,输入不同的命令将产生不同的操作
移动
h:当前光标向左移动
j:当前光标向下移动
k:当前光标向上移动
l:当前光标向右移动
f{想要移动到的字符}:移动到当前行的该光标后第一个该字符
复制粘贴剪切
复制操作
yy:复制当前行
[n]yy:复制当前行开始的 n 行
y$:复制当前光标到该行尾的东西
粘贴操作
p:粘贴复制的内容
剪切操作
dd:剪切当前行
[n]dd:剪切当前行开始的 n 行
删除替换
删除操作
x:删除当前光标指向的字符
d$:删除当前光标到行尾的内容
[n]x:删除当前光标开始的 n 个字符
dd:删除当前行(剪切会删除复制)
dw:删除一个单词
J:删除光标所在行与上一行之间的空格
替换操作
r:替换当前光标的字符
用法 想要被替换的字符 r 新字符
撤销以及取消撤销
u:撤销上次的操作,如果有多次,就按多次 u
ctrl + r:取消撤销操作,如果有多次,就按多次
插入模式
在该模式下,我们可以像在记事本中一样随意的插入删除文本。
在正常模式下不同的命令以不同的方式进入插入模式
i:在光标之前插入
a:在光标之后插入
I:在光标的行首插入
A:在光标的行末插入
o:在光标所在行的上面插入
O:在光标所在行的下面插入
s:删除光标后的一个字符,然后进入插入模式
S:删除光标所在的行,然后进入插入模式
命令模式
查找和高级替换
/要查找的内容:如果有多个匹配则按
n
跳到下一匹配,查找的内容可以是正则表达式:s/old/new:用 new 替换当前行中第一次出现的 old
:s/old/new/g:用 new 替换当前行中所有的的 old
:n,m s/old/new/g:用 new 替换从 n 到 m 行里面的所有 old
:%s/old/new/g:用 new 替换当前文件里所有的 old
设置行号
:set nu:可以显示出行号,只对当前 vim 有效,如果想要每次 vim 后都有行号,可以通过修改 vim 的配置文件使得每次都生效相同的功能,我的配置文件路径
/etc/vim/vimrc
执行临时命令
:! + 要执行的命令
这个命令比较重要,很多时候我们有可能需要查看一些东西,但是又不愿意退出 vim 模式,这时候就可以用这个命令。
保存退出
:w:保存文件
:w!:若文本属性为只读时,强制保存
:q:退出 vim
:q!:不管编辑或未编辑都不保存退出
:wq:保存,退出
:wq!:强制保存退出
:e!:将文档还原成最原始状态
:x:同样也是保存退出,类似
:wq
可视模式
什么是可视模式?
可视模式简单来说就是选中一块编辑区域,然后在上面执行一些操作,比如删除,替换,改变大小写等。
选中方式
- v 进入字符可视化模式
- V 进入行可视化模式
- Ctrl+v 进入块可视化模式
选中光标到行尾的内容
v + f{光标的内容} + $
选中 " "
里面的内容
f + 首字母 + vi + “
再次选择上次选中的区域
(没有被删除的情况下)可以使用
gv
切换当前光标的端点
选中的区域是以两个端点(左上,右下)来标识的,有时候需要在两个端点之间切换,就可以使用该命令
o
其他操作
在选中的区域上也可以使用正常模式下的一些命令,以及一些其他命令
d:删除选中文本
c:修改选中文本
r:替换选中文本
I:在选中文本前插入
A:在选中文本后插入
gu:选中区域转为小写
gU:选中区域转为大写
g~:大小写互调
大体上 vim 中我所接触到的命令就如此了,后面接触到再继续补充
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于