一、Vim的介绍
vim有三种模式:普通模式、编辑模式、命令模式
普通模式:通过操作光标移动来对文本进行复制、粘贴、删除、剪贴、翻页等操作
编辑模式:主要是对文本内容编辑和修改。
命令模式:主要是进行保存、退出操作,还可以进行文件内容另存、读入、查找、替换、显示行号等操作
二、Vim的使用
1、普通模式
# 1、光标移动
h # 向左移动一个字符 l # 向右移动一个字符 k # 向上移动一个字符 j # 向下移动一个字符 ''' 在前面加个数字,则表示移动多少个字符 5j 向下移动5个字符 ''' n+空格(n是数字) #表示光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n H #光标移动到当前屏幕最顶行 M #光标移动到当前屏幕中间那一行 L #光标移动到当前屏幕的最底行 G #光标移动至文本末端 nG #光标移动到文本的第n行 gg #光标移动至文本顶端 Ngg #光标移动至当前文件内的N行,如3gg表示移动到第3行 $ #光标移动至当前光标所在行的尾部 ^或者0 #光标移动至当前光标所在行的首部 n+回车 #光标向下移动n行 #2、翻页 ctrl+f #往下翻页(行比较多) ctrl+b #往上翻页 ctrl+d #往上翻半页 ctrl+u #往下翻半页 #3.复制与粘贴 yy #复制当前光标所在的行 5yy #复制当前光标以及光标向下4行(也就是包括当前光标行的5行) y1G #复制光标所在行到文本第一行的所有数据 yG #复制光标所在行到文本最后一行的所有数据 p(小写) #粘贴至当前光标下一行 P(大写) #粘贴至当前光标上一行 #4.删除、剪贴、撤销 dd #删除当前光标所在的行 4dd #删除当前光标所在的行以及往下的3行 d1G #删除当前光标所在行到第一行的所有内容 dG #删除当前光标以后的所有行 D #删除当前光标及光标以后的内容 x #删除当前光标标记往后的字符 X #删除当前光标标记往前的字符 nx/nX(n为数字) #向后/向前删除n个字符 dd & p #剪贴、先删除dd(number dd),后粘贴p u #撤销上一次的操作 #5.查找和替换 r #替换当前光标标记的单个字符 R #进入REPLACE模式, 连续替换,ESC结束
2、编辑模式
i #进入编辑模式,在当前光标字符前插入 a #进入编辑模式,将当前光标字符后插入 o #进入编辑模式,并在当前光标下添加一行空白内容 O #进入编辑模式,并在当前光标上添加一行空白内容 I #进入编辑模式,在光标的所在行的行首插入 A #进入编辑模式,在光标的所在行的行尾插入
3、命令模式
#1.文件保存与退出 :w 保存当前状态 :w! 强制保存当前状态 :q 退出当前文档(文档必须保存才能退出) :q! 强制退出文档不会修改当前内容 :wq 先保存,在退出 :wq! 强制保存并退出 :x 先保存,在退出 ZZ 保存退出, shfit+zz :number 跳转至对应的行号 :set nu 显示行号 :set nonu 不显示行号 #2.文件内容查找 /string #需要搜索的内容(查找) n #按搜索到的内容依次往下进行查找 N #按搜索到的内容依次往上进行查找 /字符(如/world) #向光标之后 寻找字符串为world的字符串,按“n"继续搜后一个 ?字符(如?world)#向光标之后 寻找字符串为world的字符串,按“n"继续搜前一个 :%s/string//gn #搜索string字符串,并返回结果个数以及行数 ''' 区分大小写的设置 # 这两条命令,只有vim没有重启,则一直生效,会影响其他命令结果 :set ic #不区分大小写 :set noic #区分大小写 # 这两条命令,执行才有有效,不影响其他命令执行 /Cmysql #区分大小写 /cmysql #不区分大小写 ''' #3.文件内容替换 :1,5s#root#test#g #用test替换1-5行中的root字符串 :1,5s#root#test# #将1-5行中第一个root字符串替换为test :%s#sbin#test#g #将整个文本文件中sbin字符串替换为test :%s#sbin#test#gc #替换内容时时提示是否需要替换 #4.文件内容另存 :w /root/test.txt #将vim打开的文件的所有内容另存为/root/test.txt文件中 #5.文件内容读入 :r /etc/hosts #将/etc/hosts文件内容读入到当前光标下面 :5r /etc/hosts #指定插入/etc/hosts文件至当前文件的第五行下面
4、视图模式(批量操作)
ctr+v: #进入视图模式,选中的是光标的位置 shift+v:#进入视图模式,选中当前光标的整一行内容 #1、批量添加注释 ctr+v,选中多行注释符的位置,再按r输入“#”进行批量添加
三、Vim的其他知识
1、环境变量配置
~/.vimrc:个人环境变量
/etc/vimrc:全局环境变量
注意:个人环境变量优先级高于全局,也就是优先使用个人环境配置
2、文件的高级操作
(1)同时编辑多个文件
vim -o file1 file2 #水平分割 vim -O file1 file2 #垂直分割
(2)相同文件之间差异对比
diff file1 file2 #文件对比 vimdiff file1 file2 #以vim方式打开两个文件对比,高亮显示不同的内容
(3)因非正常关闭Vim引起的异常
如:意外、强制退出终端、非正常退出(ctr+z)vim,再次打开该文件引起的错误,解决方法
删除同文件名的.swp文件即可
rm -f .filename.swap