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