让vimdiff忽略Unicode等价类

问题描述 投票:0回答:2

我尝试比较通过同步同步的两个目录。我使用以下方法进行此操作:

vimdiff <(cd "~/Pictures/shared" && find . | sort) <(ssh argon "cd ~/pictures/shared && find . " | sort) 

一台计算机是最新的archlinux机器,本地计算机是MacBook Pro。略过差异,我很难找到真正的差异,因为大多数差异是Umlauts,它们以某种方式被解释为错误:

vimdiff

Hexdump显示的字符不同。在这里,它是德语ö(U + 00F6),而在其中是带组合透音度◌̈(U + 0308)的o。 vimdiff是否有能力将这些等同识别为相同?

unicode equivalent vimdiff
2个回答
0
投票

您可以编辑每个缓冲区,以将有问题的字符替换为两个相同的字符(例如,在这里我将它们替换为o)。修改其中一个缓冲区后,Vimdiff应该会自动更新。

要进行替换,您可以使用:%s/<ctrl+v>u00f6/o/g(并等效于另一个),在键入u00f6后,应在命令行中将其自动替换为unicode符号。


0
投票

[我找到了一种比较编码的方法,可以通过iconv -f utf-8 -t utf-8-mac将输出通过管道进行比较:

vimdiff <(cd ~/Pictures/shared && find . | sort) <(ssh argon "cd ~/pictures/shared && find . " | iconv -f utf-8 -t utf-8-mac | sort)

另请参见this question on iconv

© www.soinside.com 2019 - 2024. All rights reserved.