今天写论文卡壳卡得烦躁。想起来我的装了 CentOS 7 的 VPS 服务器好久没维护了,就将更新带来的配置文件变化梳理了一遍。顺便学习了一下如何使用 vim
来显示和合并文档内容。
参考 Tom Mitchell 的方法,使用
find / -print | egrep "rpmnew$|rpmsave$"
列出所有未合并的新配置,然后一个个手动修正,将更新添加到配置里。需要处理的文件居然有 19 个之多,幸好都不是很大型的变化。(顺便说一句,openSUSE 上有个指令 rpmconfigcheck
用来在更新系统之后显示需要修改的配置文件。)
参考 mindspill 上的介绍,使用 vim 来进行 diff 和 merge。熟悉了一下之后发现这种方法还是挺好用的。
vim -d [file.rpmnew] [file]
或者,
vimdiff [file.rpmnew] [file]
当然我练习的时候使用了 vim 的只读模式,
vim -R -d [file.rpmnew] [file]
为了加深记忆,摘录几个指令如下。
重新进行差异显示(两边的差异显示不准确的时候用),
:diff
更新差异显示(有较小的改动时用),
:diffupdate
切换视窗(这个没用过,我都是直接用鼠标点对应的窗口),
ctrl-w w
跳到下一个不同处,
]c
跳到前一个不同处,
[c
合并所有不同(将另一个视窗里的不同处合并到当前视窗中),
:diffget
或者简化版,
do
合并所有不同(将当前视窗中的不同处合并到另一个视窗,与上一指令方向相反),
:diffput
或者,
dp
合并单个或某几行的不同,这个与行数指令合并使用,如将当前视窗中的第 20 行替换为另一个视窗中的对应位置的内容,
:20diffget
或者简化版,
:20diffg
如果要同时替换 12-22 行(包括 12 和 22 行),则是,
:12,22diffg
这个是我用得比较顺手也比较安心的指令,每次处理一行。毕竟还不熟练嘛。因为我看不清楚哪个视窗才是当前的活跃视窗,所以我都是先点击要修改的那个文件的窗口的对应位置,然后再执行指令。特别是,如果需要在要修改的那个文件的最后添加另一文件的最后一行,就先点击当前文件的最后一行,然后按 i 来切换到编辑模式,然后回车到下一行,然后再 Ctrl-c 来切换到指令模式,然后再执行上述指令。
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/rpmnew-and-vim-diff-merge/>。转载请保留此信息及相应链接。
引用通告: 记服务器上一个 HOSTS 配置错误 | 水景一页
给博主点个赞
谢谢!
文章不错支持一下吧
谢谢,欢迎常来
曾曾好勤劳啊?
梦梦怎么有空光临啊?这两天忙晕了,都没找到时间给你回复。