标签: vimdiff

vimdiff:跳转到行内的下一个差异?

vimdiff对于比较文件非常方便。但是,我经常在行长且行内差异相对较小的文件上使用它。

vimdiff 将正确突出一行内的差异(整行粉红色,不同字符红色)。在这些情况下,能够跳转到行内的下一个差异会很好。

您可以跳转到“下一个差异”( ]c),但这将跳转到下一个有差异的行。

有没有办法转到当前行内的下一个不同字符?

diff vim comparison vimdiff

47
推荐指数
2
解决办法
3万
查看次数

使 vimdiff 显示整个文件

如何让 vimdiff 显示被区分的文件的全部内容?我希望差异的颜色突出显示,但仍希望查看整个文件,即相同的部分。

vimdiff

47
推荐指数
3
解决办法
3万
查看次数

我如何只做 dp 或只做行,而不是 Vim diff 中的整个块?

我目前正在使用 MacVim (Snapshot 64)“Split Diff by...”菜单选项。

该文件是 Djangosettings.py从 1.3.1 版到 1.4 版的新文件。

截屏

我知道两个基本命令

  1. do 从另一侧“获得”(并替换)一个块。
  2. dp 将一个块“放置”(并替换)到另一侧。

但是这两个命令会写入整个块,在 MacVim 中是紫色的亮点。

如果您查看第 2 个块,您可以看到第 2 行和第 3 行只有 2 个不同的单词:mysiteand hobbes3。我只想替换每行而不是整个块。

那么有什么命令可以将 dododpper line替换为与整个块相反的命令,还是我必须手动输入它?

额外问题:我注意到一旦我手动编辑一个块,我就会失去紫色突出显示。如何在不重新打开文件的情况下再次“刷新”差异以包含亮点?

请尽量保留 Vim-general 的答案,而不是 MacVim-specific。

vim macvim vimdiff

31
推荐指数
1
解决办法
1万
查看次数

无法在 Windows 7 上运行 Vimdiff (7.4)

我最近在 Windows 7 机器上安装了 7.4 版本的 gVim。尝试从 Windows 资源管理器上的上下文相关菜单中区分两个文件,我不断收到错误消息:

E810:无法读取或写入临时文件
E97:无法创建差异

两个选中的文件在双窗格 gVim 视图中打开,编辑器似乎处于 diff 模式,但实际差异并未突出显示。

%TEMP%%TMP%环境变量会以一个有效的目录名。

在常规 gVim 会话中打开文件并:diffthis在命令提示符中键入时,我得到相同的响应。

这曾经在 Vim 7.3 中正常工作,但看起来在 v7.4 中发生了一些变化。

如何区分这两个文件?

windows-7 vim gvim vimdiff

30
推荐指数
1
解决办法
2万
查看次数

vim:区分两个文件中的两个部分,而不是整个文件?

我将一个系统从 Nagios 2 升级到 Nagios 3,现在我正在比较新旧配置文件的一些差异。

配置文件有重大更改,我不想对整个文件执行差异,因为 vimdiff 向我展示了太多不相关的差异,并且无法处理行首的#注释等。

我可以使用 vim 或类似 vimdiff 的功能对两个不同文件中的两个特定部分执行差异吗?

例如,我只想区分看起来像这样的行:

# Define a service to check the load on the local machine. 

define service{
    use                             local-service         ; Name of service template to use
    host_name                       localhost
    service_description             Blah Blah
    check_command                   Blah Blah
    }
Run Code Online (Sandbox Code Playgroud)

vim vimdiff

15
推荐指数
2
解决办法
1万
查看次数

一次性使用 Vimdiff 和 git

我使用 vimdiff 作为我的 git difftool。

假设我已经更改了十二个文件。问题是有时我会在运行git diff第四个或第五个文件时看到一些我想编辑/更改的内容。有时我需要在此之外再做一些改变。问题是我不能只是:qa回到黑客攻击,因为在 vimdiff 中弹出了六到七个不同的差异。:qa每次我想中止 git diff 时都不查看所有这些文件,这真的很乏味。

有什么方法可以将 vimdiff 设置为 git 的 difftool,以便所有差异都在同一个 vim 实例中打开,例如在单独的选项卡中?

diff vim git vimdiff

7
推荐指数
1
解决办法
3760
查看次数

Git 无法在 Cygwin 中启动 Vim

我让 Git 在我的工作笔记本电脑(Windows 7)上的 Powershell 环境中使用 Vim。当我提交或使用我的git vimdiff别名时,它会弹出 Vim 。

我在 Cygwin 下尝试了相同的设置(本质上是一个 Unix 人)但是当我输入git commitor 时git vimdiff,Vim 没有弹出;看起来,虽然,Git 正在等待 Vim,因为该操作永远不会完成,直到我Ctrl- C(之后需要一分钟左右的时间才能恢复)。我可以使用内联提交消息 ( git commit -m "I would rather type this in Vim")进行提交,并且可以使用vim和从终端启动 Vim/Vimdiff vimdiff。我在多个地方将我的编辑器设置为 Vim:

$ echo $EDITOR
vim
$ git config --get core.editor
vim
Run Code Online (Sandbox Code Playgroud)

(一开始我并没有在Git中明确设置,只是在环境变量中设置了,还是出现了同样的问题。)

看来我在 Cygwin 中运行 Windows Git。作为 Cygwin 的新手,当我第一次问这个问题时,我没有意识到这一点。我可以看到这可能会如何导致问题,但是在玩了之后我还没有能够解决它。

有没有人见过这个问题?知道如何修复它吗?

cygwin vim git vimdiff

6
推荐指数
1
解决办法
3701
查看次数

在 Vim 中调用 vimdiff 时更改配色方案

我正在使用VCSCommand插件。

我通过调用 Vim 内部的 VimDiff 实用程序:VCSVimDiff

我在我的vimrc

if &diff
    set t_Co=256
    set background=dark
    colorscheme peaksea
else
    colorscheme molokai
endif
Run Code Online (Sandbox Code Playgroud)

它在我vimdiff从控制台调用时有效,但在我使用 VCS 从 Vim 调用时无效。

这是插件问题还是vimrc缺少配置?

vim gvim vimdiff

5
推荐指数
2
解决办法
4824
查看次数

尝试设置 git diff 工具的各种方法都会导致“致命:无法执行 [...]:错误地址”

我使用的是 Linux Mint 17 64 位。刚刚清除git并重新安装apt。已删除~/.gitconfig。我在所谓的全新安装后所做的唯一配置是(在存储库内)

git config diff.tool vimdiff
Run Code Online (Sandbox Code Playgroud)

然后我跑

git difftool HEAD:switch-monitor.sh master:switch-monitor.sh
Run Code Online (Sandbox Code Playgroud)

并得到

fatal: cannot exec 'git-difftool--helper': Bad address
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)

因此,我删除了相关行.git/config并再次尝试该命令,果然内置的基本git diff工作正常。

我还尝试了本教程中的说明:http://technotales.wordpress.com/2009/05/17/git-diff-with-vimdiff/

这会导致略有不同但相似的错误。我将以下内容放入新的~/.gitconfig

[diff]
  external = git_diff_wrapper
[pager]
  diff =
Run Code Online (Sandbox Code Playgroud)

git_diff_wrapper并在 my 上放置一个可执行文件PATH,然后运行

git diff HEAD:switch-monitor.sh master:switch-monitor.sh 
Run Code Online (Sandbox Code Playgroud)

并得到

fatal: cannot exec 'git_diff_wrapper': Bad address
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)

不过好像和内容没什么关系git_diff_wrapper。我放置了

git config diff.tool …
Run Code Online (Sandbox Code Playgroud)

linux git vimdiff difftool

5
推荐指数
1
解决办法
3241
查看次数

标签 统计

vimdiff ×9

vim ×7

git ×3

diff ×2

gvim ×2

comparison ×1

cygwin ×1

difftool ×1

linux ×1

macvim ×1

windows-7 ×1