服务器配置维护兼记 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 的用法还可以参考文档©

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

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

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

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>