vim是Linux下的的一个功能强大的文本编辑器,从著名的文本编辑器vi衍生而来,在原有的基础上上增加了一些特性进去,支持语法、关键字高亮、缩进等。
命令模式的一些常用快捷键
快捷键 | 作用 |
---|---|
h |
左 |
j |
下 |
k |
上 |
l |
右 |
gg |
跳转首行 |
[number] gg |
跳转到number行 |
G |
跳转尾行 |
yy |
复制当前行 |
[number] yy |
复制number行 |
p |
粘贴 |
P |
粘贴到光标上面 |
dd |
快速删除当前行 |
[number] dd |
删除number指定行 |
d g |
清空 |
D |
删除光标及光标之后的内容 |
u |
撤销更改 |
x |
删除当前光标后的一位 |
X |
删除当前光标前的一位 |
ctrl +f |
下翻页 |
ctrl +l |
上翻页 |
$ |
行尾 |
^ |
行首 |
r |
替换光标字符 |
R |
一直替换光标位置同样的内容,直到按下ESC |
编辑模式
快捷键 | 作用 |
---|---|
i |
直接进进编辑模式 |
I |
在本行的头部进入编辑模式 |
a |
在当前光标后一位进入光标模式 |
A |
从当前行的行尾插入并进入编辑模式 |
o |
从光标当前行的行尾插入新行并进入编辑模式 |
O |
在当前光标行行首插入新行并进入编辑模式 |
末行模式(:)
命令 | 行为 |
---|---|
r [PATH] |
导入PATH指定文件的内容 |
num r [PATH] |
将PATH指定文件的内容导入到num行 |
w |
写入文件 |
w |
强制写入 |
w [PATH] |
写入PATH指定的路径文件(另存为...) |
num1,num2 w [PATH] |
指定行另存为 |
q |
退出VIM |
q! |
强制退出但不保存 |
wq |
写入并退出 |
wq! |
强制写入并退出 |
x |
先保存,再退出 |
X |
加密文档 |
shift +zz |
保存并退出 |
[number ] |
跳转到number行 |
/[str] |
搜索str指定的内容,n按搜索内容一次向后查找,N向前 |
num1 ,num2 s#str1 #str2 # |
替换num区间内的str1为str2,只替换行里第一个出现的str1 |
num1 ,num2 s#str1 #str2 #g |
替换num区间内的所有str1为str2 |
%s#str1 #str2 #g |
替换全局内的所有str1为str2 |
%s#str1 #str2 #gc |
全局替换,交互式 |
nohl |
禁止高亮 |
设置VIM的环境变量
命令模式,临时生效
变量 | 作用 |
---|---|
set nu |
开行号 |
set nonu |
关行号 |
set ic |
忽略大小写 |
set noic |
检查大小写 |
set list |
显示制表符(^,$^I等) |
set nolist |
不显示制表符 |
set ai |
开自动缩进 |
set noai |
关闭自动缩进 |
可将变量存入配置文件,/etc/vimrc
影响全局(未存在个人配置时,默认),用户目录的.vimrc
文件内的变量仅对当前用户生效!如果存在,会影响默认全局变量对当前用户的默认配置!因为用户目录下的这个自定义的配置比全局配置优先级较高。
试图模式(V模式、可视块模式)
可搭配命令模式的快捷键执行块操作
快捷键 | 行为 |
---|---|
ctrl +v |
选中区间行或区块,up``down``left``right 或h\j\k\l 移动光标区域 |
shift +i |
进编辑模式插入指定内容,按ESC 键就替换了选中的内容 |
shift +v |
按行选择内容,选择区间行,可执行复制y 删除d 等 |
其它特性
1.同时打开多个文件
vim -o file1 file2 #水平式,同时打开两个文件
vim -o file1 file2 #垂直式,同时打开两个文件
ctrl
+ww
可在窗口间切换
2.对比文件,比diff
命令更直观
vimdiff file1 file2 #以vim方式打开比对,高亮显示不同之处
注: 总结日常学习的常用命令,本文参考了徐亮伟导师的资料后整理而来,此处可移至他的博客;VIM完整的命令及用法请自行参考手册.