文章目录
vim的三种模式
vim下有三种模式,分别是:
- 命令模式
刚进入vim时的模式,此状态下敲击键盘会被vim识别为命令,而非输入字符。比如此时按下i,并不会输入一个字符,i被当作了一个命令。
2.插入模式
当在命令模式下键入一个【i】或者【a】等字符时(后文会详细介绍),就进入插入模式,此时可对文本进行编辑。 - 退出模式
在命令模式下按下【 :q】(后文会详细介绍)等就进入了退出模式。
图示:
=注意:=
插入模式下不可直接进入退出模式,在插入模式下按键【esc】切换至命令模式时,才可再进入退出模式。
命令模式 (一)
vim工作方式的调整
在vim命令模式下,可输入命令来调整当前vim的工作方式,如是否显示行号等。
命令:
:set 待调整参数
举例:
:set nu #文本显示行号
:set nonu #取消显示行号
:set mouse=a #显示鼠标
:set cursorline #每一行显示行线
:nohl #取消高亮显示
图示:
=注意:=
在vim程序里设置的工作方式是临时的,vim关闭重启时又会回归至初始默认设置,要想设置永久工作方式,应在 /etc/vimrc 中编辑相应的命令。但编辑时不用加【:】,命令内容不变。
字符的管理
字符的删除 (d)
命令:
dl # 删除一个字符
d6l #删除6个字母
dw #删除1个单词
d3w #删除3个单词
dd #删除1行
d3d #删除3行
图示:
字符的复制 (y)
yl #复制一个字母
y3l #复制3个字母
yw #复制1个单词
y3w #复制3个单词
yy #复制1行
y3y #复制3行
图示:
字符的粘贴与撤销(p和u)
p #粘贴
u #撤销(撤销上一步操作)
ctrl + r #恢复撤销
字符的剪切 (c)
cl #剪切1个字母
c3l #剪切3个字母
cw #剪切1个单词
c3w #剪切3个单词
cc #剪切1行
c3c #剪切3行
=注意:
按键【c】时会进入插入模式,在插入模式里,按键【p】代表输入p这一字符,因此若想粘贴时,需要按键【esc】退出插入模式,进入命令模式,再按键【p】粘贴。
图示:
当键入【c4c】时,进入insert模式
字符的搜索
/keyword #搜索关键字
n #向下匹配
N #向上匹配
图示:
字符的替换
:%s/要替换的字符/替换成的字符/g # %s 表示所有行 g 表示所有列
:%s/ : /@/g #替换全文的 : 为 @
:10,15s/ sbin /westos /g #替换1到5行的sbin为westos
:/adm/,/halt/s/ sbin/westos/g #替换adm和halt之间所有行的sbin为westos ,包括adm和halt所在行
:10,13s/ \/ /##/g #替换10到13行的所有 \ 为 ##,其中/为转义字符。表示此时的 / 没有特殊含义,仅仅代表 /。
图示:
当替换对象中有特殊字符时,使用#来作为分隔符
=注意:=
- 若不加g 则只会替换所指示行的第一个指定字符,不会替换整行
- 在linux中可以用 “ ”来代表引用,即引号内的内容为一个对象。如 touch “fi le”
vim可视化管理
ctrl +v 进入可视化模式,在这个模式下可以选择区域操作
批量添加字符:
- ctrl +v (同时按) 进入可视化模式,选中要操作的区域
- 按键大写的【I】
- 键入需要添加的字符
- 按键【esc】
图示:
vim分屏功能
ctrl + w s #上下分屏
ctrl + w v #左右分屏
ctrl + w c #关闭光标所在屏幕
ctrl + w 上下左右 #光标移动至指定屏幕
:sp file2 # 同时编辑两个文件
图示:
ctrl + w s #上下分屏
ctrl + w v 左右分屏
:sp file2 同时编辑两个文件
vim光标的移动
gg #光标移动到文件的第一行
G #光标移动到文件最后一行
: 数字 #光标移动到指定行
数字G #光标移动到指定行
图示:
当键入【:3】时候,光标移动至第三行
插入模式 (二)
i #光标所在位置插入
a #光标所在字符的下一个字符插入
s # 删除光标所在字符并插入
o #光标所在行下一行插入
I #光标所在行行首插入
A #光标所在行的行尾插入
S #删除光标所在行并插入
O #光标所在行的上一行插入`
图示:
退出模式(三)
当输入c4c时,进入插入模式
:q #退出,在文件内容没有被改变时使用
:wq #退出并保存
:q! #强制退出不保存,在改变文件内容但不想保存时使用
:wq! # 对于只读文件更改后,退出保存时使用
图示:
=注意:=
使用 :wq! 的前提有两个,一个是文件设置了只读,一个是你是文件的所有者或root用户。
比如我新建了一个用户abc,并不是文件所有者,那么我打开vim更改文件后,即使使用【:wq!】也没办法进行强制写入保存,vim会提示【Can’t open file for writing】。