当使用 vimdiff 复制更改时,热键 "dp"(diff put) 与 vim-fugitive 有映射冲突
The hotkey "dp"(diff put) has a mapping conflict with vim-fugitive, when copying changes with vimdiff
比较文件时,我喜欢使用 vimdiff
(或 vim -d
),我知道使用 vimdiff 复制更改的推荐方法是:
]c - advance to the next block with differences
[c - reverse search for the previous block with differences
do (diff obtain) - bring changes from the other file to the current file
dp (diff put) - send changes from the current file to the other file
我也知道
:diffget
等同于 do
:diffput
等同于 dp
所有这些命令都可以正常工作(包括:diffput
),但是当我输入dp
时,没有任何变化并且会产生错误声音。
我认为这是因为与 vim-fugitive 的热键映射冲突,后者有一个热键 dp
:
dp :Git! diff (p for patch; use :Gw to apply)
dp :Git add --intent-to-add (untracked files)
如何解决这个问题?谢谢。
您仍然可以通过:normal! dp
调用内置映射。
如果你多次需要这个,最好取消定义原来的缓冲区本地映射:
:nunmap <buffer> dp
然而,正如@Kent 评论的那样,逃亡者的 dp
映射仅在 预览 window 中有效(cp. :h fugitive-:Gstatus
) .由于您应该使用正常的 windows 进行比较和合并,因此不应有重叠。
我遇到了同样的问题。我的错误是 map p
也在 operator-pending 模式下映射 p。你可以尝试做一个ounmap p
。就我而言,它与 miniyank plugin
有关
比较文件时,我喜欢使用 vimdiff
(或 vim -d
),我知道使用 vimdiff 复制更改的推荐方法是:
]c - advance to the next block with differences
[c - reverse search for the previous block with differences
do (diff obtain) - bring changes from the other file to the current file
dp (diff put) - send changes from the current file to the other file
我也知道
:diffget
等同于do
:diffput
等同于dp
所有这些命令都可以正常工作(包括:diffput
),但是当我输入dp
时,没有任何变化并且会产生错误声音。
我认为这是因为与 vim-fugitive 的热键映射冲突,后者有一个热键 dp
:
dp :Git! diff (p for patch; use :Gw to apply)
dp :Git add --intent-to-add (untracked files)
如何解决这个问题?谢谢。
您仍然可以通过:normal! dp
调用内置映射。
如果你多次需要这个,最好取消定义原来的缓冲区本地映射:
:nunmap <buffer> dp
然而,正如@Kent 评论的那样,逃亡者的 dp
映射仅在 预览 window 中有效(cp. :h fugitive-:Gstatus
) .由于您应该使用正常的 windows 进行比较和合并,因此不应有重叠。
我遇到了同样的问题。我的错误是 map p
也在 operator-pending 模式下映射 p。你可以尝试做一个ounmap p
。就我而言,它与 miniyank plugin