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,num2s#str1#str2# |
替换num区间内的str1为str2,只替换行里第一个出现的str1 |
num1,num2s#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的死宅。
本文属于作者日常收集整理而来,个人技术能力有限,如有错误还请指正!望共同进步!版权属于作者和博客园共同拥有,欢迎各种转载引用复制粘贴!但未经作者同意须保留此段声明,且在文章页面明显位置给出!如有侵权,请联系删帖,谢谢! 原文链接 如有问题,可发送邮件联系

浙公网安备 33010602011771号