在Linux中一切皆文件,Linux一般自带的编辑器是vi,vim相当于vi的一个增强版,支持颜色显示,相比于vi增加了一些功能。默认vim没有安装,需要通过yum install -y vim安装。
| -o file1 file2... | 同时编辑多个文件(上下排列) |
|---|---|
| -O file1 file2... | 同时编辑多个文件(左右排列) |
| -p file1 file2... | 同时编辑多个文件(每个文件一个标签) |
| 快捷命令 | 功能 |
|---|---|
| h,j,k,l | 对应左下上右键 |
| 数字0 | 光标移到行首 |
| $ | 光标移动到行尾 |
| x | 删除/剪切光标所在字符 |
| dd | 删除/剪切光标所在行 |
| ndd | 删除/剪切n行,包括光标所在行 |
| yy | 复制光标所在行 |
| nyy | 复制n行,包括光标所在行 |
| p | 将复制的内容粘贴到光标所在行的下一行 |
| P | 将复制的内容粘贴到光标所在行的上一行 |
| np/nP | 粘贴n次 |
| gg | 光标移动到文件首行 |
| G | 光标移动到文件尾行 |
| nG | 光标移动到第n行 |
| H | 光标移动到当前屏幕首行 |
| M | 光标移动到当前屏幕中间行 |
| L | 光标移动到当前屏幕尾行 |
| u | 撤销 |
| Ctrl+r | 撤销撤销 |
| Ctrl+v | 可视块,常用来批量添加/删除注释 |
| 命令 | 功能 |
|---|---|
| w | 保存 |
| q | 不保存退出 |
| wq | 保存并退出 |
| ! | 表示强制 |
| set nu | 显示行号 |
| set nonu | 取消行号 |
| set ic | 不区分大小写 |
| set ai | 自动缩进 |
| set list | 显示行结束符 |
| % s/regexp/new/ | 将所有行的第一个regexp替换为new字符串 |
| % s/regexp/new/g | 将所有行的所有regexp替换为new字符串 |
| % n s/regexp/new/g | 将第n行的所有regexp替换为new字符串 |
| % m,n s/regexp/new/g | 将m行至第n行的所有regexp替换为new字符串 |
| % n,$ s/regexp/new/g | 将第n行至尾行的所有regexp替换为new字符串 |
| n,m w /PATH/file_name | 将第n至m行写入/PATH/file_name这个文件 |
| r /PATH/file_name | 将/PATH/file_name文件内容写入光标下一行 |
| /字符串 | 查找字符串(高亮显示),按n(向下)/N(向上)移动光标 |
上述显示行号与行结束符等设置是临时设置,若要永久生效要写入配置文件:
| 作用域 | 文件路径 |
|---|---|
| 全局生效 | /etc/vimrc |
| 单用户生效 | ~/.vimrc(默认不存在,需手动创建) |

以vim的方式打开多个文件对比,高亮显示不同的区域。

diff file1 file2 # 比价file1和file2的不同,<表示左边文件的不同,>表示右边文件的不同
# 首先创建补丁文件
[chirou@duorou demo]$ diff -u f3.txt f4.txt > bak.patch
[chirou@duorou demo]$ cat bak.patch
--- f3.txt 2020-10-22 20:05:19.613940026 +0800
+++ f4.txt 2020-10-22 20:05:20.268935888 +0800
@@ -1,3 +1,3 @@
-this is f3.txt
+this is f4.txt
hahahaha
-
+hehehehe
在数学上来说,diff类似于对两个集合的差运算,patch类似于对两个集合的和运算。diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么这个过程相当于 |A –B| = C ,那么patch的过程就是B + C = A 或A - C = B(A + C = B或者B – C = A)。因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。这就是diff和patch的妙处。
原文:https://www.cnblogs.com/ChiRou/p/13865752.html