一、vi和vim的关系
vim是vi的升级版,可以高亮显示文本、实现自动缩进等,就像Window的notepad和notepad++的关系一样,推荐大家使用vim编辑器(有些最小化版本中可能需要自行安装)。
为了统一vi和vim(都用vim),可以执行别名操作:
当前用户临时生效:alias vi=vim
当前用户永久生效:echo “alias vi=vim”>>.bash_profile
所有用户永久生效:echo “alias vi=vim”>>/etc/profile
【注】/etc/profile、~/.bash_profile、/etc/bashrc、~/.bashrc的关系。
profile文件是当用户login时加载的配置文件:
某一用户配置文件:~/.bash_profile[source ~/.bashrc[source /etc/bashrc[/etc/profile.d]]]
所有用户配置文件:/etc/profile[/etc/profile.d]
说明:前面的文件会读取或加载方括号[]里面的文件
二、vim优化
举例:vim打开后可以显示行号
当前用户vim永久生效:echo “set nu”>>.vimrc
所有用户vim永久生效:echo “set nu”>>/etc/vimrc
具体优化脚本:
链接:https://pan.baidu.com/s/1YfeG23sVlcTCs2f2Uo5RTg 提取码:11js
参考资料:《老男孩Shell编程》P298~303
三、vim四种模式总结
(1)命令模式
描述:执行定位、复制、粘贴、删除、撤销、恢复等操作。
操作 |
描述 |
定位 |
ngg定位第n行 常用: (1)1gg定位到第1行,G定位到最后1行 (2)Home定位到行首,End定位到行尾 |
复制 |
nyy从上到下复制n行,包括光标所在行 常用:yy复制光标所在行 |
粘贴 |
p或者P (1)p在光标所在行下一行粘贴 (2)P在光标所在行上一行粘贴 |
删除 |
ndd从上到下删除n行,包括光标所在行 常用: (1)dd删除光标所在行 (2)d0删除光标位置到行首(不含光标) (3)d$或者D删除光标位置到行首(含光标) (4)d1gg删除光标行到文本首行 (5)dG删除光标行到文本尾行 |
撤销 |
u |
恢复 |
Ctrl+r |
参考资料:
①《老男孩命令》P148~149
②《老男孩Shell编程》P307~308
(2)编辑模式
描述:修改文件。
①命令模式→编辑模式,需要执行以下命令:
命令 |
描述 |
i |
在光标位置前面插入文本 |
I |
在行首插入文本 |
a |
在光标位置后面插入文本 |
A |
在行尾插入文本 |
o |
在光标所在行下一行插入文本 |
O |
在光标所在行上一行插入文本 |
②编辑模式→命令模式,需要Esc,然后输入冒号(:),接着执行以下命令
命令 |
描述 |
q |
没有修改文本,直接退出 |
wq |
写入并退出 |
q! |
修改文本后,要退出必须加!(强制退出) |
wq! |
对没有权限写的文件,强制写入,通常需要root权限。 |
参考资料:《老男孩命令》P150
(3)扩展命令模式
描述:可显示行号、执行替换操作、执行Shell命令等。
①命令模式→扩展命令模式,直接输入冒号(:),执行命令即可。
命令 |
描述 |
:set nu |
显示行号 |
:set nonu |
取消显示行号 |
:%s@aa@bb@g,Enter |
将文本中的aa全部替换为bb |
:!ifconfig eth0 |
不退出vim,并且执行命令 |
②扩展命令模式→命令模式,先输入冒号(:),再按两下Esc。
参考资料:《老男孩命令》P150
(4)可视模式
描述:通常用来批量操作文本。
①命令模式→可视模式,Ctrl+V。
②可视模式→命令模式,按两下Esc。
常见操作:在/etc/passwd文件中批量注释用户的步骤。
(1)备份文件/etc/passwd
(2)光标定位到需要注释的第一行
(3)执行Ctrl+V,进入可视模式
(4)用键盘下方向键选中需要注释的第一行到最后一行(鼠标选中文本无效)。
(5)I(大写字母i)
(6)输入#号
(7)连续按两下Esc
(8)保存退出