#vim分为三种模式:命令模式、插入模式和退出模式
##命令模式:在这个模式中,可以使用上下左右按键来移动光标、使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理文件内容。
###调整vim 的工作方式:在Vim程序中,用:set 调整参数
:set nu | 显示行号 |
:set nonu | 取消显示的行号 |
:set mouse=a | 启用鼠标进行编辑 |
:set cursorline | 显示行线 |
实验效果如下:
注意:以上操作在vim工作中是一次性的、暂时的设置,当
vim关闭后会还原原来的状态。如果需要永久保存,需要编辑vim配置文件/etc/vimrc。
###字符查找与替换
/word | 高亮显示名称为word的字符串,例如要在文件中查找sbin这个字符串,就输入/sbin即可 |
n | 向下匹配,代表重复前一个查找的操作。例如,刚刚执行的查找sbin这个字符串,按下n则会向下继续查找下一个名称为sbin的字符串 |
N | 向上匹配,例如,刚刚执行的查找sbin这个字符串,按下N 后,则会寻找上一个名称为sbin的这个字符串 |
:noh | 取消高亮显示 |
:%s/word1/word2/g | 寻找全文的word1这个字符串,并将该字符串替换为word2 。[%s]:所有行,[g]:所有列 |
:n1,n2s/word1/word2/g | n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2 |
:/word3/,/word4/s/word1/word2/g | word3和word4为文中的字符串,在word3与word4之间寻找word1这个字符串,并将该字符串替换为word2 |
:%s/word1/word2/gc | 在全文中寻找word1这个字符串,并将该字符串替换为word2,且在替换前显示提示字符给用户确认(confirm)是否需要替换 |
实验效果如下:
1>把全文的sbin替换为**********
:%s /sbin/**********/g
2>把文中第二行到第七行的sbin替换为#########
:2,7s/sbin/#########/g
:2,7s/sbin/#########/
g代表所有列,如果没有g,就只有每一行的第一个字符被替换,其他的都不会替换。
:/daemon/,/halt/s/sbin/#########/g
###字符管理
i | 进入插入模式 |
Esc | 退出插入模式 |
p | 粘贴 |
u | 撤销 |
Ctrl+r | 恢复撤销 |
dl | 删除一个字母 |
d3l | 删除三个字母 |
dw | 删除一个单词 |
d3w | 删除三个单词 |
dd | 删除一行 |
d3d | 删除三行 |
cl | 剪切一个字母 |
c3l | 剪切三个字母 |
cw | 剪切一个单词 |
c3w | 剪切三个单词 |
cc | 剪切一行 |
c3c | 剪切三行 |
yl | 复制一个字母 |
y3l | 复制三个字母 |
yw | 复制一个单词 |
y3w | 复制三个单词 |
yy | 复制一行 |
y3y | 复制三行 |
注意:在剪切之后会进入插入模式,如果需要粘贴需要按Esc退出,然后再按p进行粘贴。
###可视化模式
进入可视化模式:光标移动到需要编辑的起始位置,Ctrl+v(左下角会出现VISUAL BLOCK),上下左右移动选出区块。
d:删除
u:撤销
p:粘贴
批量添加字符:
Ctrl+v进入可视化
移动光标选中要添加字符所在的列
按大写I
加入字符
按Esc退出
实验效果如下:
###分屏功能
同步编辑
Ctrl+w s | 上下分屏 |
Ctrl+w v | 左右分屏 |
Ctrl+w c | 关闭光标所在屏幕 |
Ctrl+w 上下左右 | 光标移动到指定屏幕 |
实验效果如下:
不同步编辑
在命令模式输入【:sp filename】即可,会显示两个不同的文件进行编辑。
##插入模式
i | 光标所在位置插入 |
I | 光标所在行的行首插入 |
o | 光标所在行的下一行插入 |
O | 光标所在行的上一行插入 |
a | 光标所在字符的下一个字符插入 |
A | 光标所在行的行尾插入 |
s | 光标所在字符删除并插入 |
S | 光标所在行删除并插入 |
##退出模式
:q | 在文件内容没有被更改时使用,退出vim |
:wq | 保存后并退出 |
:q! | 若曾修改过文件,又不想保存,使用!为强制退出不保存 |
:wq! | 强制保存后退出 |