当我遇到冲突时,我试图用git-mergetool它来解决它.我键入:
>git mergetool -t vimdiff
Run Code Online (Sandbox Code Playgroud)
它vimdiff以4向开放,而不是3向开放.我在vimdiff的分割窗口看起来像:
:ls
1 #a "Gemfile.lock" line 1
2 %a "Gemfile.lock.LOCAL.4828.lock" line 1
3 a "Gemfile.lock.BASE.4828.lock" line 0
4 a "Gemfile.lock.REMOTE.4828.lock" line 0
Run Code Online (Sandbox Code Playgroud)
这些是什么?我想要一个三向差异:目标文件,合并文件和工作文件.我该如何配置我的git或vimdiff?
我是unix的新手,需要一些帮助.我在两个不同的服务器上有两个目录.两个目录都包含相同的文件.现在我想检查两个目录中的所有文件是否同步.如果文件不同步,那么我只想显示这些文件的名称.当目录在同一台服务器上时,我能够做到这一点.当目录存在于两个不同的服务器上时,无法弄清楚如何执行此操作.
eg:
server1 /abc/home/sample1/
server2 /abc/home/sample2/
Run Code Online (Sandbox Code Playgroud)
这里我只希望文件名不同步时显示.
提前致谢
我对2个文件做了一个vimdiff.现在,如果我想要包装2个文件,那么我需要:set wrap分别对每个文件应用2次.
有没有什么方法可以set wrap同时应用于它们两个而不运行两次相同的命令?
我正在尝试使用vimdiff作为Git的diff工具,但由于某种原因,文件始终以只读模式打开.它对原始文件有意义,但对我修改过的文件没有意义(因为我尚未提交它们).
这是我目前的.gitconfig:
[diff]
tool = vimdiff
[merge]
tool = vimdiff
[difftool]
prompt = false
Run Code Online (Sandbox Code Playgroud)
知道是什么原因引起的吗?
我正在尝试使用vimdiff + dirdiff.vim在Vim中使用Git版本化多个文件.
对于Mercurial,可以使用mercurial extdiff扩展.
我在网上Vim的Git的差异整合上发现的唯一的办法就是在烧毛文件用Vimdiff,在描述这个职位.
有谁知道如何使用vimdiff + dirdiff + git?
可能重复:
在将文件保存到Vim之前,我能看到更改吗?
有没有办法在VIM中查看已保存版本的差异和同一文件的编辑版本?
这就是场景:我打开了一个文件,编辑了一些东西,由于一些工作,我离开了计算机.过了一段时间我回来了,我忘了我正在编辑的内容,我想看看最后保存的和同一文件的当前未保存版本之间的区别.有办法吗?
当然,我可以继续撤消直到最后一次更改并开始重做以返回到我未保存的版本.但我希望看到的是差异.
基本上,我想从1)到2) 我通常首先水平分割然后垂直分割,但是因为我想要这样做三向差异,通过运行启动vim更方便:
$ vimdiff file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
然后做一些事情来打开下面的分割窗口.
1)
+----+----+----+
¦ ¦ ¦ ¦
¦ f1 ¦ f2 ¦ f3 ¦
¦ ¦ ¦ ¦
+----+----+----+
2)
+----+----+----+
¦ ¦ ¦ ¦
¦ f1 ¦ f2 ¦ f3 ¦
+----+----+----+
¦ f4 ¦
+--------------+
Run Code Online (Sandbox Code Playgroud)
有谁知道这种方法?
我想用于:vimdiff file1 file2在VIM命令模式下区分这些文件,但是我收到了一条错误消息E492: Not an editor command: vimdiff.我忘了什么?怎么解决?
根据Vim手册,vimdiff命令应该可用
如果,在命令提示符下,我运行
vimdiff file1 file2
Run Code Online (Sandbox Code Playgroud)
我得到一个vim实例,它有两个并排打开的文件.我们假设文件中的文本看起来像这样(file1在左边,file2在右边):
?????????????????
?foo ?-------?
?bar ?bar ?
?grue ?-------?
?~ ?~ ?
?~ ?~ ?
?????????????????
Run Code Online (Sandbox Code Playgroud)
现在假设我的光标位于"foo"的"f"上,并且我希望将file1的第一行复制到file2的第一行.
一种方法是使用v $ y选择并移动(复制)该行,然后使用Ctrl + wl将光标移动到file2的第一行,然后键入p以粘贴复制的行.如果我这样做,然后我决定我真的不想这样做,我可以按你撤消我在file2中执行的粘贴命令.
另一种方法是使用diff put命令dp.但是,如果在执行此操作后我决定我不打算这样做,我无法通过按u来撤消它,因为我的光标仍在file1中,而u命令将撤消对file1的最新更改,而不是最多最近更改为file2.因此,我必须使用Ctrl + wl或Ctrl + ww将光标移动到file2的窗口,然后按u.
所以,我的问题是:在我使用上面的dp之后,有没有简单的方法让我撤消它而不必将光标移动到另一个文件的窗口?