相关疑难解决方法(0)

当我做"git diff"时,如何获得并排差异?

当我输入"git diff"时,我想看到一个并排的差异,就像"diff -y"一样,或者喜欢在像"kdiff3"这样的交互式差异工具中显示差异.如何才能做到这一点?

git git-diff code-visualization

140
推荐指数
11
解决办法
8万
查看次数

如何在统一的差异文件中可视化每个字符的差异?

说我得到了一个补丁git format-patch.该文件基本上是一个带有一些元数据的统一差异.如果我在Vim中打开文件,我可以看到哪些行已被修改,但我看不到更改行中的哪些字符不同.有没有人知道(在Vim或其他一些在Ubuntu上运行的免费软件)可视化每个角色的差异?

可视化每个字符差异的计数器示例是在执行时vimdiff a b.

更新时间:2010年12月12日星期五22:36:23

diffpatch对您使用单个文件的情况很有帮助.

2016年6月16日星期六17:56:10更新

在git 2.9中查看diff-highlight.这个脚本正是我最初寻求的.

git vim diff patch

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

使用'diff'(或其他任何东西)来获取文本文件之间的字符级差异

我想使用'diff'来获得字符差异和字符差异.例如,考虑:

档案1

abcde
abc
abcccd
Run Code Online (Sandbox Code Playgroud)

档案2

abcde
ab
abccc
Run Code Online (Sandbox Code Playgroud)

使用diff -u我得到:

@@ -1,3 +1,3 @@
 abcde
-abc
-abcccd
\ No newline at end of file
+ab
+abccc
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

但是,它只向我显示这些行的变化.我希望看到的是:

@@ -1,3 +1,3 @@
 abcde
-ab<ins>c</ins>
-abccc<ins>d</ins>
\ No newline at end of file
+ab
+abccc
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

你得到我的漂移.

现在,我知道我可以使用其他引擎来标记/检查特定线路上的差异.但我宁愿使用一种可以完成所有工作的工具.

diff command-line text

81
推荐指数
11
解决办法
4万
查看次数

Ctrl + C和Ctrl + [?有什么区别?

Ctrl+ CCtrl+有[什么区别?这些文件包含以下内容:

<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode.  Finish
                abbreviation.           
                Note: If your <Esc> key is hard to hit on your keyboard, train
                yourself to use CTRL-[.
CTRL-C          Quit insert mode, go back to Normal mode.  Do not check for
                abbreviations.  Does not trigger the |InsertLeave| autocommand
                event.
CTRL-C                  Interrupt current (search) command.  Use CTRL-Break on
                        MS-DOS |dos-CTRL-Break|.
                        In Normal mode, any pending command is aborted.

似乎对命令的作用存在一些分歧. …

vim key

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

git diff --&gt; 显示行中更改的部分

如果我执行,git diff我会看到整行呈红色。

有没有办法突出显示该行的变化?

我经常遇到只更改一行的差异。

突出显示线路的变化git diff对我来说会更方便。

git-diff-整行-红色

git 版本 2.32.0

这应该适用于命令行(无 GUI)。

git git-diff

29
推荐指数
2
解决办法
5813
查看次数

为什么不"映射!<Cq>:q <CR>"在vim中工作?

:map! <C-q> :q <CR>在命令行模式下输入,然后返回正常模式,然后按ctrl-q,但vim不退出.为什么?

vim

9
推荐指数
2
解决办法
5131
查看次数

在插入模式下遍历vim文件名完成的目录(Ctrl-X Ctrl-F)

我正在尝试使用vim的compl-filenamefeature(Ctrl-XCtrl-F)来完成INSERT模式中的路径,但是我无法弄清楚如何在没有(暂时)结束完成模式的情况下遍历目录:

假设我想完成这条道路/etc/sysconfig/network-scripts/ifup.

我希望能够做到这样的事情:

/eCtrl-XCtrl-F
/etc/
/etc/sysCtrl-F
/etc/sysconfig/
/etc/sysconfig/netCtrl-F
/etc/sysconfig/netconsoleCtrl-N
/etc/sysconfig/networkCtrl-N
/etc/sysconfig/network-scripts/
/etc/sysconfig/network-scripts/ifupCtrl-Y
/etc/sysconfig/network-scripts/ifup

问题是,一旦我在路径匹配(如/etc/)之后开始键入*,它就会结束文件名完成.我希望它保持文件名完成,所以我仍然可以使用Ctrl-F,Ctrl-N等等.因为它结束完成,我必须Ctrl-XCtrl-F再次键入以重新启动它,并在此期间有用的完成弹出菜单消失.

我可以设置一个选项来改变它吗?

*通过'输入'这里,我指的是字符'isfname'- 当然,输入其他字符(如空格或标点符号)不应该继续文件名完成.

vim keyboard-shortcuts autocomplete

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