标签: vimdiff

函数参数没有评估

我正在尝试设置几张地图以快速完成合并冲突.这是我的代码:

func! DiffAccept(w)
  diffget a:w
  diffupdate
  normal ]c
endfunc

noremap dh :exec DiffAccept("//2")<CR>
noremap dl :exec DiffAccept("//3")<CR>
Run Code Online (Sandbox Code Playgroud)

每次我尝试使用它时,我得到"没有匹配的缓冲区:a:w".我显然使用这个变量是错误的,但是当我将行更改为"echo a:w"时,它会按预期运行.

vim vimdiff

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

Vimdiff改变了Dropbox的文件

我经常收到通知我的Vim我的文件已在其他地方更改,因为我使用Dropbox.

然后我需要按

L 
Run Code Online (Sandbox Code Playgroud)

因为这是我唯一能看到朋友改变文件的方法.这迫使我使用他的版本,然后试着记住我所做的改变.

然而,这个程序对我来说变得困难,因为编辑率已经增长.我想要

 vimdiff [file_with_my_edits] [file_with_my_friend's_edits] 
Run Code Online (Sandbox Code Playgroud)

某种程度上我的朋友的版本与我当前的文件有一些新的编辑.

vimdiff当版本库相同但当前文件不同而不丢失任何编辑时,如何将当前文件与朋友的文件一起使用

vim vimdiff

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

使用特定的状态行/行号配置 vimdiff 分割

我正在尝试设置git mergetool为使用vimdiff以下 split 生成(以及为每个 split 定制的配置):

  • 从以下缓冲区 $LOCAL、$BASE、$REMOTE 和 $MERGED 中拆分(水平) [完成]
  • 显示每个分割的行号 [ Todo ]
  • 显示这三个分割中的缓冲区变量的名称:$LOCAL、$BASE、$REMOTE。[去做]
  • $MERGED 拆分状态行应显示%t[$MERGED 拆分已完成]中的文件名

我在本地仓库中使用了这个 git 配置:

git config merge.tool vimdiff
git config mergetool.vimdiff.cmd 'vim +"set number" +"set statusline=%t" -d -c "wincmd J" -O $MERGED $BASE $REMOTE $LOCAL'
git config merge.conflictstyle diff3
git config mergetool.prompt false
Run Code Online (Sandbox Code Playgroud)
  • 在上面的配置中,应该为每个分割显示一个状态行子字符串,但我找不到构建正则表达式的正确方法来将状态行中的文件名减少到三个所需的缓冲区变量名称之一(即“BASE”) ”、“远程”或“本地”)。正则表达式不是必需的,但它似乎是一个有前途的选择。
  • 行号仅显示在一个拆分中,但我希望它们出现在所有四个拆分中。

经过大量谷歌搜索和多次实验后,我仍然无法强制vimdiff显示我想要的状态行/数字...我没有使用 vim-powerline 等状态行插件。如何配置 git 选项以按照vimdiff我需要的方式生成?

我添加了现有拆分的屏幕截图git mergetool …

git vim vimdiff mergetool git-merge

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

为什么VimDiff如此有限?

凭借Vim的所有高级编辑功能,我发现很难相信VimDiff无法从右/左复制!还有什么可以使用difftool?任何的想法?VimDiff有什么功能?

此外,我甚至没有看到一种方式转移到下一个/ prev差异!!

vim vimdiff

0
推荐指数
2
解决办法
3415
查看次数

如何使vimdiff检测行结束字符的差异(dos vs unix)

当比较具有相同内容但具有行结尾的两个文件时,vim diff不会检测到差异.有没有办法让vimdiff显示出差异.

vim vimdiff

0
推荐指数
1
解决办法
195
查看次数

标签 统计

vim ×5

vimdiff ×5

git ×1

git-merge ×1

mergetool ×1