Linux之vim系列

Linux里一切皆文件,不管是硬件如cpu、内存、硬盘io等还是软件服务应用程序都是以文件夹的形式保存在发行版系统中,Linux全称GNU/Linux,意为GNU软件组织的所有开源软件和Linux内核结合的惊世之作,Linux本为内核kernel。---
既然都是文件,那配置服务时就是在修改它的配置文件参数,那就要涉及到编辑器修改录入它,第三方较好的文本编辑器有subline text2/3,notepad++等,然而Linux本身就集成了一款优秀的编辑软件,那就是vim,现在来一睹她的庐山真面目:
如果最小化安装的系统没有vim,用这条命令安装下即可

yum install -y vim-enhanced
Linux之vim系列
文章图片
image.png 它里面有三种模式:命令模式、编辑模式、末?模式。
命令模式: 控制光标移动, 可对?本进?复制、粘贴、删除等?作。
使?vim filename 编辑?个?件时,?进?该?件就是命令模式了。
在这个模式下,可以进?光标移动、复制、删除、粘贴操作。
编辑模式: 正常的?本写?。
从命令模式进?编辑模式,只需你按?个键即可(i, I, a, A, o, O, r, R)。
当进?编辑模式时,会在屏幕的最下??出现“INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上?的 ESC 键即可。
末?模式: 保存或退出?档,以及设置编辑环境
在命令模式下,输? ":" 或者 "/" 即可进?末?模式。
在该模式下,可以进?的操作有,显示?号、搜索、替换、保存、退出
vim 编辑器配置?件整体流程如下:
1.默认打开?件处于命令模式
2.需要从命令模式切换?编辑模式
3.编辑模式修改配置?件, 然后返回命令?模式.
4.最后通过命令模式进?末?模式,保存和退出操作.
注意:在vim中,?法直接从编辑模式切换到末?模式。
命令?模式:(默认打开?件进?的是命令?模式)
//命令光标跳转
G 跳转光标?末端
gg 跳转光标?顶端
Ngg 跳转光标?当前?件内的22?
$ 将当前光标跳转?光标所在?的末端(尾部)
^ 将当前光标跳转?光标所在?的头部 —> 数字0 可实现类似效果
//?件内容较多
ctrl+f 往下翻?(??较多)
ctrl+b 往上翻?
//复制
yy复制当前光标所在的?
5yy复制当前光标以及光标向下4?
//粘贴
p(?写) 粘贴?当前光标下??
P(?写) 粘贴?当前光标上??
//删除
dd 删除当前光标所在的?
4dd 删除当前光标所在的?以及往下的3?
dG 删除当前光标以后的所有?
D 删除当前光标及光标以后的内容
x 删除当前光标标记往后的字符
X 删除当前光标标记往前的字符
//剪贴
先删除dd(number dd),后粘贴p
//撤销
u 撤销上?次的操作(类似windows下的ctrl+z)
//替换
r 替换当前光标标记的单个字符
R 进?REPLACE模式, 连续替换,ESC结束
VIM编辑模式
i 进?编辑模式,光标不做任何操作
I 进?编辑模式,并且光标会跳转?本?的头部
a 进?编辑模式,将当前光标往后?位
A 进?编辑模式,将光标移动?本?的尾部
o 进?编辑模式,并在当前光标下添加??空?内容
O 进?编辑模式,并在当前光标上添加??空?内容
末?模式(必须退回到命令?模式)
末?模式主要?于搜索,保存, 退出?件, 还可以让?户执?外部的Linux命令或跳转到所编写?档的特定?数。
:w 保存当前状态
:w! 强制保存当前状态
:q 退出当前?档(?档必须保存才能退出)
:q! 强制退出?档不会修改当前内容
:wq 先保存,在退出
:wq! 强制保存并退出
:x 先保存,在退出
ZZ 保存退出, shfit+zz
:number 跳转?对应的?号
末?模式(查找和替换)
查找 /string 需要搜索的内容(查找)
n 按搜索到的内容依次往下进?查找
N 按搜索到的内容依次往上进?查找
替换
:1,5s#sbin#test#g 替换1-5?中包含sbin的内容为test
:%s#sbin#test#g 替换整个?本?件中包含sbin的替换为test
:%s#sbin#test#gc 替换内容时时提示是否需要替换
另存
:w /root/test 将?件所有内容另存为/root/test
读?
:r /etc/hosts 读?/etc/hosts?件?当前光标下?
:5r /etc/hosts 指定/etc/hosts?件当前?件的哪?下?
VIM环境变量
环境变量临时?效
:set nu 显示?号
:set ic 忽略??写, 在搜索的时候有?
:set ai ?动缩进
:set list 显示制表符(空?、tab键)
:set no[nu|ic|ai…] 取消临时设定的变量
环境变量永久?效
~/.vimrc 个?环境变量(优先级?) /etc/vimrc 全局环境变量
vim ~/.vimrc
set nu
set ic
//如果个?vim环境没有配置, 则使?全局vim环境变量配置。
//如果个?vim环境和全局环境变量产?冲突, 优先使?个?vim环境变量。
【Linux之vim系列】VIM扩展知识
1.如何同时编辑多个?件
vim -o file1 file2 ?平分割
vim -O file1 file2 垂直分割
//ctrl+ww ?件间切换
2.相同?件之间差异对?
diff ?件对?(?的不多)
vimdiff 以vim?式打开两个?件对?,标记不同的内容
3.如果VIM?正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
//删除同?件名的.swp?件即可解决
.filename.swp rm -f .filename.swp
谢谢观赏,限于水平,不足之处还请多多指正,感激不尽~

    推荐阅读