文件管理之vim编辑器


1. 什么是vim
可以理解为Windows下面的文本编辑器,如:记事本,Word文档
它可以执行输出,删除,查找,替换,块操作等众多文本操作.而且用户可以根据自己的需求对其进行定制,这是其他编辑程序所没有的.



2. 为何用vim

(1)修改配置
(2)写脚本

3. vi和vim的区别
vi不显示高亮颜色语法
vim显示高亮颜色语法
默认vi是安装的,vim需要通过yum install -y vim 安装



4. vim编辑器的操作模式

(1)命令行模式:在编辑模式下按下ESC返回命令行模式
它是vim的默认模式,在这一模式中,所有的输入被解释成vim命令,可以执行修改,复制,移动,粘贴和删除.

(2)编辑/插入模式:可以往一个文件中输入正文,在这一模式下,输入的每一个字符都被vim编辑器解释为输入的正文.使用ESC键返回命令行模式.
a:进入插入模式并在光标之后进行添加.
i:进入插入模式并在光标之前插入.
o:进入插入模式并在光标所在行之下开启新的一行.

(3)末行/扩展模式:输入冒号
在这一模式下,可以使用一些高级编辑命令,如搜寻和替换字符串,存盘或者退出vim编辑器等,要进入最后一行模式,需要在命令行模式中输入冒号(:)


5. vim编辑器光标的移动
$: 光标移动到当前行的结尾
0: 光标移动到当前行的开始


6. 在命令行模式下删除与复制的操作

dd: 删除光标所在的那一行
ndd: n为数字,删除多行,包括光标所在的那一行.如:20dd 删除20行(包括光标所在行)
yy: 复制光标所在的那一行
nyy: n为数字,复制多行,包括光标所在的那一行.如:20yy 复制20行(包括光标所在行)


7. 粘贴命令

p(小写): 将已复制的数据在光标下一行粘贴(2p可以连续粘贴2次)
P(大写): 将已复制的数据在光标上一行粘贴(2P可以连续粘贴2次)


8.复原重做命令

U: 复原前一个操作
ctrl+r: 重做上一次操作


9. 末行模式常用命令

:w 将文件存入/写入磁盘
:q 退出不保存
:wq 保存并退出
:q! 强制退出不保存
:wq! 强制保存退出


10. 快速移动光标的命令

G: 将光标移动到这个文件的最后一行
gg: 移动到这个文件的第一行
ngg: n为数字,光标移动到这个文件的第n行,如:20gg
H: 光标移动到这个屏幕的最上方那一行的第一个字符
M: 光标移动到这个屏幕的中央那一行的第一个字符
L: 光标移动到这个屏幕的最下那一行的第一个字符


11. 可视块模式:ctrl+v

批量去注释
前提:注释的行需要整齐排列

1、在命令模式,按ctrl+v进入可视块模式
2、上下键选中#号
3、按下d

批量加注释
前提:注释的行需要整齐排列

1、先将光标移动到首行的开头位置
2、在命令模式,按ctrl+v
3、上下键选中第一列
4、shift+i,然后输入#
5、连续按两下ESC


12. 末行模式其他操作

(1)查找替换
%表示全部行 :% s#old#new#(把所有行的old替换成new,注意每行只替换第一个old)
1,10表示1到10行 :1,10 s#old#new#(把1到10行的old替换成new,同样每行只替换第一个old)
$表示最后一行 :5,$ s#old#new#(把5到最后一行的old替换new,也是每行只替换第一个old)
g表示全局 :% s#old#new#g(把所有行的所有old替换成new)

(2)读入/写入文件
:w a.txt 把全部内容写入a.txt
:1,3 w a.txt 把1到3行的内容写入a.txt
:r a.txt 把a.txt文件内容读入

(3)设置环境
临时设置:
:set nu 设置行号
:set ic 不区分大小写
:set ai 自动缩进
:set nonu 取消设置行号
:set noic 取消不区分大小写
:set list

永久设置:
vim /etc/vimrc
在下面添加
set ic
set nu
set ai


13. 同时编辑多个文件和文件内容对比

vim -o 文件1 文件2 水平分割
vim -O 文件1 文件2 垂直分割
使用ctrl + ww 可以来回切换

vimdiff 文件1 文件2 以vim的方式打开两个文件,并高亮显示不同的内容

ps: patch打补丁的方法(如图)
touch a.txt b.txt
[root@localhost ~]# echo 111 >> a.txt
[root@localhost ~]# echo 222 >> b.txt
[root@localhost ~]# diff -u a.txt b.txt > patch.diff
[root@localhost ~]# patch a.txt patch.diff
patching file a.txt
[root@localhost ~]# cat a.txt
222


14. vim 的执行过程

 

(1)模拟故障
编辑文件的时候断开连接,然后在重新连接服务器,再次编辑该文件
(2)故障报错
Found a swap file by the name ".vim.log.swp" Swap file ".vim.log.swp" already
exists
(3)解决方法
删除临时文件或者先恢复内容在删除,使用-r选项进行恢复.

原文地址:https://www.cnblogs.com/allenzhu128/p/13859301.html