vim高级用法
1.vim基本用法
首先回顾一下vim的基本用法,vim file
直接编辑文件内容,vim
也可以直接使用,编辑完内容后,:wq
退出保存会显示下图,缺少文件名字,那么补上名字::wq westos
即可。
vim打开文件后有三种模式:
(1)命令模式(浏览模式):此模式下只能对文件内容浏览,对vim的工作方式进行设定,不能修改文件内容
(2)插入模式(编辑模式):对文件内容进行修改的模式
(3)退出模式:结束vim程序使用到的指令
使用命令vimtutor
可以打开vim手册,查看用法。
2.vim基本配置
设定分为三种:临时设定(只对此次打开的文件有用)、系统级永久设定(任何用户打开的任何文件都有用)、用户级永久设定(该用户打开的任何文件都有用)
(只有在命令模式下才能更改设定)
(1)临时设定:先打开一个文件,在命令模式下,输入:set nu
表示显示行号、:set nonu
表示取消行号、:set mouse=a
表示鼠标可用、:set cursorline
表示显示光标所在行的行线。
做实验如下图,:set nu
会显示黄色的行号,注意白色的数字不是行号,是文件本身的内容。
做实验如下图,:set cursorline
会显示光标所在行的行线。
(2)系统级永久设定:
输入vim /etc/vimrc
,如图打开文件后,在最后一行编辑set nu
,退出保存即可生效。此时任何用户用vim打开任何文件都可以显示行号。
(3)用户级永久设定:
输入vim ~/.vimrc
,如图打开文件后是空的,编辑set cursorline
,退出保存即可生效。此时该用户用vim打开任何文件都可以显示行线。
3.vim的搜索
在 vim的命令模式下,可以使用/关键字
搜索关键字,如图,高亮显示关键字;:noh
取消高亮显示。n
可以向下匹配关键字,N
可以向上匹配关键字
4.vim字符管理
在命令模式下
(1)复制 y
yl
复制一个字母,y3l
复制三个字母,yw
复制一个单词,y2w
复制两个单词,yy
复制一行,y4y
复制四行。
(2)删除 d
或x
dl
删除一个字母,d3l
删除三个字母,dw
删除一个单词,d2w
删除两个单词,dd
删除一行,d4d
删除四行。
(3)剪切 c
cl
剪切一个字母,c3l
剪切三个字母,cw
剪切一个单词,c2w
剪切两个单词,cc
剪切一行,c4c
剪切四行。
注意:剪切操作完毕后会进入到插入模式, 如果要粘贴需要按esc退出插入模式再按p
(4)粘贴 p
:在命令模式下p表示粘贴
(5)恢复 u
:假如误删了,可以恢复为上个命令前的内容
(6)撤销 ctrl r
:假如恢复的有问题,可以撤销为上一步
(注意:以上指令都是向下操作的,如d4d
,表示从当前光标位置开始向下删除四行。)
5.vim可视化与批量添加字符
vim打开文件后ctrl v
进入可视化模式,如图,光标可以上下移动,选中想要批量操作的45-63行。
按大写I
进入插入模式,插入要写入的字符,比如这里我们想在数字后面批量添加一个点,ESC
退出插入模式,如图批量添加完成。
6.vim批量修改字符
如果我们想把“hello”全部替换为“love”,一个一个改显然很慢,vim提供了批量修改的功能。
(1)在命令模式下,:%s/hello/love/g
表示把全文中“hello”替换为“love”,所有列都生效。(%表示全文,s代表替换,g表示所有列)如果没有最后的g,某行出现好几遍“hello”时,就只能替换第一个“hello”了。
举一反三::%s/hello//g
表示把全文中的“hello”删除
(2):1,5s/hello/love/g
表示在第一到第五行中的“hello”替换为“love”,所有列都生效。
(3):/lp/,/halt/s/hello/love/g
表示把“lp”这个字符到“halt”这个字符中的“hello”替换为“love”,所有列都生效。但是我个人不推荐用这个方法,假如一个文件中多次出现“lp”,系统无法判定从哪个“lp”开始,容易错乱。
7.vim的分屏功能
当一个文件内容很多时,我们想同时看见第一行和最后一行的内容时,可以考虑vim的同步分屏功能。
(1)先打开文件,再ctrl w
后按s,上下分屏。如图
(2)先打开文件,再ctrl w
后按v,左右分屏。如图
(3)ctrl w
后按上/下/左/右,表示光标移动
(4)ctrl w
后按c,取消分屏
如果想同时打开两个不同的文件,即不同步分屏。在已打开一个文件后,:sp 另一文件名称
打开分屏。如图同时打开,上面是文件haha,下面是文件hehe。
8.vim中快速光标定位
(1)gg
光标移动到文件第一行行首
(2)G
光标移动到最后一行
(3):数字
光标移动到指定行,如图移动到第66行。
9.vim插入模式进入方式
命令模式下按不同字母,进入不同的插入模式。
(1)i
,光标所在位置插入
(2)I
,光标所在行的行首插入
(3)A
,光标所在行的行尾插入
(4)a
,光标所在字符的下一个字符插入
(5)o
,光标所在行的下一行插入
(6)O
,光标所在行的上一行插入
(7)s
,删除光标所在字符插入
(8)S
,删除光标所在行插入
10.vim退出模式
(1)wq
,保存退出
(2)wq!
,强行保存退出(当打开的文件是只读模式时,修改完后,需要用wq!
强制退出保存,但前提是文件是自己的或者root用户可用)
(3)q
,没有修改退出
(4)q!
,强制退出不保存
11.三种帮助命令
(1)whatis 命令名称
:查看命令的基本用途
注意:当执行whatis命令出现 “nothing appropriate” 时大多数情况是因为系统的帮助数据库未更新,此时需要在root用户下执行mandb
。
(2)命令名称 --help
:查看命令的基本用法。其中[ ]
表示内容可加可不加,...
表示内容个数任意,< >
表示必须在命令执行时加入的元素。
(3)man 命令名称
:命令用法的详细解释。同一个命令通常代表多种意思,不唯一,所以man -k 命令名称
,查看该命令有多少级别,每个级别的含义不同。
级别 | 含义 |
---|---|
1 | 命令 |
2 | 系统调用 |
3 | 函数库调用 |
4 | 特殊文件(设备文件等) |
5 | 文件 |
6 | 游戏 |
7 | 特殊的包 |
8 | 系统管理命令 |
9 | 内核信息规则 |
如图,查看passwd命令的不同级别用法。
进入man后,q
可以退出,/关键字
可以搜索关键字,G
可以快速移动到man的最后,g
可以快速移动到man的最前。
(注意:man只能查看系统自带的命令,自己创建的文件无法用man查看)