vim指令diffopt:Vimdiff比较文本时自定义差异上下文要显示的行数

Vim相关指令:

在 Vim窗口执行 set diffopt=filler,context:10set diffopt=filler,context:0 命令即可(其中10为上下文的行数,设置为0即仅显示差异文本,不显示任何相当的行。);

快捷封装函数:

vimdiff10() {
	#设置vim显示参数:调用vimdiff时显示差异文本处上下文的10行文本;
	#See Also:https://unix.stackexchange.com/questions/352199/vimdiff-vim-d-how-to-show-only-the-differences-and-fold-all-identical-line
	#See Also2:https://stackoverflow.com/questions/47471821/vimdiff-how-to-hide-all-same-lines-in-both-files-and-show-only-different-ones
	#仅显示差异文本,不显示任何上下文:vim -c "set diffopt=filler,context:0" -d
	vim -c "set diffopt=filler,context:10" -d "$@"
}

vimdiffline() {
	#设置vimdiff展示差异时要显示的上下文行数
	local lines=5  #默认展示5行上下文
	expr $1 + 0 &>/dev/null
	[ $? -eq 0 -o "$1" = "0" ] && lines="$1" && shift
	vim -c "set diffopt+=context:${lines}" -d "$@"
}

操作截图:


posted @ 2022-11-02 19:45  晴云孤魂  阅读(292)  评论(0编辑  收藏  举报