VIM编辑器的日常使用
vim
是著名的命令行编辑器vi
的升级版,在原有的基础上上增加了一些特性进去,支持语法、关键字高亮、缩进等。
VIM的几种模式
1.命令模式
在此模式下可以快速执行,文本的复制、粘贴、删除、替换等工作;默认打开文件是命令模式。
2.编辑模式
普通模式下按i
I
a
A
o
O
r
R
键可进入编辑模式,左下角显示INSERT
字样表示已进入编辑模式,此时可以像使用图形文本编辑器一样去使用vim
3.末行模式
主要用于保存文本或退出vim
编辑器
命令模式可以用:
[shift
+;
]直接进入末行模式,编辑模式进入需先按ESC
键退出编辑模式,然后输入:
才能进入末行模式。
4.视图模式(可视块模式)
可视化选中内容,然后可以执行命令模式的所有操作。有两种或可视模式,可是块模式和可视行模式。
可视块模式:
在命令模式进入可直接按ctrl
+v
,在编辑模式进入需要先按ESC
退出编辑模式然后再ctrl
+v
可视行模式:
在命令模式进入可直接按shift
+v
,在编辑模式进入需要先按ESC
退出编辑模式然后再shift
+v
命令模式的一些常用快捷键
快捷键 | 作用 |
---|---|
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+b |
上翻页 |
$ |
行尾 |
^ |
行首 |
r |
替换光标字符 |
R |
一直替换光标位置同样的内容,直到按下ESC |
编辑模式
快捷键 | 作用 |
---|---|
i |
直接进进编辑模式 |
I |
在本行的头部进入编辑模式 |
a |
在当前光标后一位进入光标模式 |
A |
从当前行的行尾插入并进入编辑模式 |
o |
从光标当前行的行尾插入新行并进入编辑模式 |
O |
在当前光标行行首插入新行并进入编辑模式 |
注: 若打开文件时指定vim
+[number]
filename
的话,则打开文件即可跳转到number
指定的行 。
末行模式(😃
命令 | 行为 |
---|---|
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方式打开比对,高亮显示不同之处
作者: 喝茶,吃瓜
出处: http://www.cnblogs.com/tea-melon/
关于作者:一个关注C/C++、Linux运维相关、IoT的死宅。
本文属于作者日常收集整理而来,个人技术能力有限,如有错误还请指正!望共同进步!版权属于作者和博客园共同拥有,欢迎各种转载引用复制粘贴!但未经作者同意须保留此段声明,且在文章页面明显位置给出!如有侵权,请联系删帖,谢谢! 原文链接 如有问题,可发送邮件联系