服务器配置维护兼记 vim 显示和合并文档

今天写论文卡壳卡得烦躁。想起来我的装了 CentOS 7VPS 服务器好久没维护了,就将更新带来的配置文件变化梳理了一遍。顺便学习了一下如何使用 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 来切换到指令模式,然后再执行上述指令。

更多关于 vimdiff 的用法还可以参考文档©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/rpmnew-and-vim-diff-merge/>。转载请保留此信息及相应链接。

7 条关于 “服务器配置维护兼记 vim 显示和合并文档” 的评论

  1. 引用通告: 记服务器上一个 HOSTS 配置错误 | 水景一页

    • 梦梦怎么有空光临啊?这两天忙晕了,都没找到时间给你回复。

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)