有什么方法可以快速禁用/启用颜色编码vimdiff
?问题是,我有彩色文本vim
并且文本是不可见的,因为文本颜色是红色,并且vimdiff
太试图将背景颜色设置为红色,使其难以阅读。
所以,我想暂时禁用颜色编码,以验证文本并稍后重新启用它。任何快速,简单的方法来做到这一点?
我正在尝试比较两个命令输出(无文件)
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
Run Code Online (Sandbox Code Playgroud)
我尝试玩重定向,管道,vim - -c
但我一定错过了一些东西。有人可以帮忙吗?
我试图找到一种方法来确定一个文本文件是否是另一个文件的子集。
例如:
foo
bar
Run Code Online (Sandbox Code Playgroud)
是一个子集
foo
bar
pluto
Run Code Online (Sandbox Code Playgroud)
尽管:
foo
pluto
Run Code Online (Sandbox Code Playgroud)
和
foo
bar
Run Code Online (Sandbox Code Playgroud)
不是彼此的子集...
有没有办法用命令来做到这一点?
此检查必须是交叉检查,并且必须返回:
file1 subset of file2 : True
file2 subset of file1 : True
otherwise : False
Run Code Online (Sandbox Code Playgroud) 有没有办法排除以下输出中相同的行?我做了一个 vim -d file1 file2 但它显示了差异以及差异前后的一些添加行。怎么排除呢?
在附加的示例中,两个文件中的 131、132、134、136 等是相同的,但仍然显示出来。
是否有一种方便的方法来识别文件中重复或接近重复的文本块?
我想用它来识别代码重复。看起来有具有此功能的专业程序,但我不打算参与其中。
我希望有一个类似于 diff 的工具可以做一种“文件内”差异。更好的是在单个文件中使用 vimdiff。
vimdiff 有一个恼人的习惯,就是将两条几乎完全不同的行显示为相同的部分不同的行,仅仅因为它们在开头或结尾共享一个共同的字符。
例如:
foo.txt
包含:The quick brown fox jumps over the lazy dog
。
bar.txt
包含:This is a completely different line
。
vimdiff foo.txt bar.txt
并排显示这两行Th
,除了开头之外的所有内容都突出显示。
有没有办法禁用此行为并仅将不同的行显示为不同的行?
Linux 中是否有稳定的工具(现有工具的选项/插件:vimdiff、diff 等)来按字符在两个文本文件之间进行区分?
我想看到我的两个文件之间最长的公共子序列突出显示。有一个经典的多项式时间算法,但标准工具似乎只能逐行工作。
说我有两个文件:a.txt
和b.txt
.
内容a.txt
:
hello world
Run Code Online (Sandbox Code Playgroud)
内容b.txt
:
hello world
something else
Run Code Online (Sandbox Code Playgroud)
当然我可以用它vimdiff
来检查它们的区别,我可以确保它a.txt
是 的一个子集b.txt
,这意味着它b.txt
必须包含 中存在的所有行a.txt
(就像上面的例子一样)。
我的问题是如何将存在b.txt
但不存在的行记录a.txt
到文件中?
我正在编写一个脚本来递归比较两个目录并vimdiff
在发现差异时运行:
#!/bin/bash
dir1=${1%/}
dir2=${2%/}
find "$dir1/" -type f -not -path "$dir1/.git/*" | while IFS= read line; do
file1="$line"
file2=${line/$dir1/$dir2}
isdiff=$(diff -q "$file1" "$file2")
if [ -n "$isdiff" ]; then
vimdiff "$file1" "$file2"
fi
done
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为 vim 会发出警告:“输入不是来自终端。” 我知道我需要提供这个-
论点,这有点棘手,但我或多或少地工作了:
#!/bin/bash
dir1=${1%/}
dir2=${2%/}
find "$dir1/" -type f -not -path "$dir1/.git/*" | while IFS= read line; do
file1="$line"
file2=${line/$dir1/$dir2}
isdiff=$(diff -q "$file1" "$file2")
if [ -n "$isdiff" ]; then
cat "$file1" | vim - -c ":vnew $file2 | windo …
Run Code Online (Sandbox Code Playgroud) 我试图养成使用sudoedit
, 而不是sudo vim
. 这有几个优点,其中之一是它使用我用户的~/.vimrc
.
是否有等价物,而不是使用sudo vimdiff
?
vimdiff
直接使用,而是可以垂直拆分打开两个文件,然后:diffthis
在两者中运行。但是,如果我用 . 打开一个文件sudoedit
,那么我必须直接打开第二个文件,而不是sudoedit
在/var/tmp
.vim -O file1 file2
. 然而,不出所料,sudoedit -O
失败了。