我经常在:vsplit
中使用彼此相邻的文件。将一行或任何obj从一个窗口中的文件移动到另一个窗口是不理想的。我想知道是否有一个我失踪的运动。
我现在做的是:3dd[ctrl]wwP[ctrl]ww
。大致是:
vimdiff 模式下的Vim允许:diffput
和:diffpull
在两个分割之间的差异中移动线条。对于任何两个分割中的任何两个文件,是否有类似的东西?
答案 0 :(得分:1)
不,没有这样的通用命令。
:diffput
和:diffget
是可能的,因为原点和目标是已知的:光标的位置对应于两个缓冲区中的特定范围,因此Vim“很容易”知道如何处理什么地方。
一个通用的“拿这个,把它放在那里然后回来”命令更难设计,因为对目标知之甚少,必须从命令的上下文,窗口布局甚至包含很多东西。您正在移动的文本的种类(线性,字符,块状)。一个重要的事情要做,例如“如何粘贴”:p
,P
,:put
或者即使我们需要重新缩进。一个非常简单的实现看起来像这样:
:command! To :wincmd w|put|wincmd w
但显然不够聪明,不能真正通用。我担心你想要的东西需要相当多的思考和vimscript。