vim编辑器
vim有三种模式,命令模式,插入模式,末行模式,在一开始的时候默认进入的是命令模式
命令模式
命令模式:默认的模式,该模式下有很多的快捷键
文件内移动
-
n+Shift+g(或nG)快速定位到指定的行,先按你想要的跳转的行,然后按G,如:7G,跳转到第7行 -
Shift+g(或者G)跳转到尾行 -
0 跳转到该行首个字符 -
gg跳转到首行 -
:n 跳到指定行 n为指定的行号 -
Ctrl+G 报告光标位置 -
Ctrl+f 屏幕向前移动一页 -
Ctrl+b 屏幕向后移动一页 -
Ctrl+d 屏幕向前移动半页 -
Ctrl+u 屏幕向后移动半页 -
$ 跳转到该行最后一个字符 -
w 光标前移一字 -
b 光标倒退一字 -
+移动非空格的下一行 -
-移动非空格的上一行 -
H 移到当前屏幕最顶行 -
M 移到当前屏幕中央一行 -
L 移到当前屏幕最底行 -
G 移到文本最末行 -
n +回车(n表示数字)光标向下移动n行 -
j 光标向下移动一格 -
k 光标向上移动一格
行内移动
-
^ 移动到行首 -
$ 移动到行尾 -
w、b键,分别表示向后和向前移动一个单词 -
h 光标向左移动一格 -
l 光标向右移动一格
删除字母
-
x 删除单个字母 -
nx 删除多个字符 -
dw 删除一个字符(剪切)
删除整行
-
dd 删除整行 -
D 删除光标所在行到末尾行的内容 -
ndd 删除多行 -
:n1,n2d删除指定行 -
dG 从当前行删除到文件尾 -
想要删除该行末尾的回车,也就是两行合并为一行,使用Shift+j
剪切、复制、粘贴
-
dd 既是删除也是剪切,按p是粘贴至光标后,P是粘贴至光标前 -
yw 复制一个词 -
yy 复制单行 -
nyy 复制多行 -
p 粘贴,从当前行后面粘贴被复制的行 -
P 粘贴,从当前行前面粘贴被复制的行
撤销
-
u 撤销修改 -
Ctrl+r 反撤销 -
:u! 恢复到文档初始状态
替换
-
r 替换光标所在处的字母 -
R 进入替换模式,从光标所在处开始替换字符,按esc结束
-
查找,按下/键,然后输入所要查找的字符,按回车,如果找到光标会跳转到第一个搜索结果的位置,然后按n,继续向下查找,如果按Shift+n,会反向向上查找
插入模式
插入模式(输入模式):可以向文件中输入字符的模式。
在命令模式下,
-
按a 在光标所在位置后插入(追加) -
按i 在光标所在位置前插入(插入) -
按A 在光标所在行尾插入 -
按I 在光标所在行首插入 -
按o 在光标上插入新行 -
按O 在光标上插入新行
按Esc退出输入模式,进入命令模式
末行模式
末行模式:该模式下,在vim界面最下边可以输入命令,来执行各种操作,编辑完文件之后,想要保存修改或者不保存修改都需要进入末行模式来进行操作,从命令模式切到底末模式,按:(冒号)进入末行模式
文件编辑
-
:w 保存文件但不退出vi -
:w 文件名 将修改另外保存到新的文件中,不退出vi -
new 文件名 如果该文件存在则打开该文件,如果不存在,则新建(只有保存之后该文件才会创建成功) -
:w! 强制保存,不退出vi -
:wq 保存文件并退出vi -
:wq! 强制保存文件,并退出vi -
:q 不保存文件,退出vi -
:q! 不保存文件,强制退出vi -
:e! 放弃所有修改,从上次保存文件开始再编辑
参数设置
-
:set nu 显示行号 -
:set nonu 隐藏行号 -
:set list 显示特殊符号(Tab用^I表示,换行符用$显示) -
:set nolist 不显示特殊符号
查找
-
/查找内容 从光标处往下查找 -
?查找内容 从光标处往上查找 -
n 下一个 -
N 上一个
替换
-
:s/old/new 当前行的第一个old替换为new -
:s/old/new/g 替换当前行的所有old为new -
:1,10s/old/new 将1到10行的每一行的第一个old替换为new,如果使用1,$则是从第一行到最后一行 -
:1,10s/old/new/g 替换1到10行的所有old为new,如果使用1,$则是从第一行到最后一行 -
:%s/old/new/g 替换全文的所有old为new
#1到10行添加注释# (使用^是因为^在正则中表示行首)
:1,10s/^/#/g
#1到10行取消注释# (使用^是因为^在正则中表示行首)
:1,10s/^#//g
可以在vim中执行shell,而不退出vi
使用:!命令来实现
如
:!pwd 来显示当前目录路径名