VIM介绍
1.什么是vim
其实和window的记事本或word文档很像,都是用来编辑文件的。
2.vi和vim有什么关系,什么区别?
其实本质上没有区别,vim是vi的增强版,vi没有语法检测,语法高亮,而vim有。
由于系统默认最小化安装,所以初始是没有vim的,需要使用yum install vim -y
3.如何使用vim?vim四种模式
1.默认打开文件是出于普通模式下
2.从普通模式切换到编辑模式需要使用 a、i、o 、A、I、O
3.编辑模式修改完毕后,要先使用ESC返回普通模式
4.在普通模式输入“:”或“/”进入命令模式,可实现文件的保存与退出
5.在vim中,无法直接从编辑模式切换到命令模式
vim的普通模式
命令光标跳转
G 光标跳转至文件末端
gg 光标跳转至文件顶端
ngg 光标跳转至当前文件的N行
$ 光标跳转至当前行的尾部
^ | 0 这两个操作都可以使光标跳转至当前光标所在行的首部
进行翻页时
ctrl+f 往下翻页(行比较多)
ctrl+b 往上翻页
复制和粘贴
yy 复制当前光标所在的行
5yy 复制当前光标以及向下的4行
p(小写)粘贴至当前光标的下一行
P(大写)粘贴至当前光标的上一行
删除、剪贴、撤销
dd 删除当前光标所在行
4dd 删除当前光标所在行以及往下的3行
dG 删除当前光标以及光标以后的内容
D 删除当前光标以及光标以后的内容
x(小写) 删除当前光标标记往后的字符
X(大写) 删除当前光标标记往前的字符
u 撤销上一次的操作
dd & p 剪贴,先删除,后粘贴
替换
r 替换当前光标标记的单个字符
vim编辑模式
从普通模式进入到编辑模式 i a o I A O
i 进入到编辑模式,光标不做任何操作
a 进入编辑模式,将当前光标往后一位
o 进入编辑模式,并在当前光标下添加一行空白内容
I 进入编辑模式,并将光标跳转至本行头部
A 进入编辑模式,将光标移动至本行的尾部
O 进入编辑模式,并在当前光标上添加一行空白内容
命令模式
文件保存和退出
:w 保存当前状态
:q 退出当前文档(文档必须保存再能退出)
:wq 保存,退出
:w! 强制保存当前状态
:q! 强制退出文档,不会修改当前内容
:wq! 强制保存并退出
:x 先保存,在退出
ZZ 保存退出,shift+zz
:number 跳转至对应的行号 :10 跳转至10行
文件内容查找
/string 需要搜索的内容(查找)
n 按搜索到的内容向下查找
N 按搜索到的内容向上查找
文件内容替换
1,5s#sbin#test#g 替换1-5行内容中sbin替换为test
%s#sbin#test#g 替换整个文本中sbin为test
3文件内容另存
/w /rooot/test.txt 将所有内容另存为root/test.txt 中
视图模式
从普通模式进入到视图模式,主要进行批量操作
ctrl+v 进入可视块模式,选中需要注释的行
1.插入:按shift+i 进入到编辑模式,输入#,技术按ESC键
2.删除:选中内容后,按d删除
3.替换:选中需要替换的内容,按下r键,然后输入替换的内容
shift+v 进入可视行模式,选中整行内容
1.复制:选中行内容后按y键可进行复制
2.删除:选中行内容后按d键删除
拓展知识
1.环境变量临时生效
:set nu 显示行号
:set ic 忽略大小写,在搜索的时候常用
:set list 显示制表符(空格、tab键)
:set ai 自动缩进
:set no(nu|ic|ai|...) 取消什么什么
2.环境变量永久生效,~/.vimc个人环境变量(优先级高) /etc/vimrc 全局环境变量
vim ~/.vimc #当下次打开自动显示行号并忽略大小写
set nu
set ic
如果个人vim环境没有配置, 则使用全局vim环境变量配置。
如果个人vim环境和全局环境变量产生冲突, 优先使用个人vim环境变量
3如何同时编辑多个文件
vim -o file1 file2 水平分割
vim -O file1 file2 垂直分割
ctrl+ww 文件间切换
4.相同文件之间差异对比,通常用于对比修改前后差异
diff 文件对比
vimdiff 以vim方式打开两个文件对比,高亮显示不同的内容
5.如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
假设打开filename文件被以外关闭,需要删除同文件名的.swp文件
rm -f .filename.sw