将文本移动到其他拆分

时间:2014-02-02 16:22:19

标签: vim split

我经常在:vsplit中使用彼此相邻的文件。将一行或任何obj从一个窗口中的文件移动到另一个窗口是不理想的。我想知道是否有一个我失踪的运动。

我现在做的是:3dd[ctrl]wwP[ctrl]ww。大致是:

  • 删除一堆行(可以是从行到任何text-obj到视觉选择的任何行)
  • 将委托人移至其他窗口。
  • 粘贴
  • 将光标移回其他窗口。

vimdiff 模式下的Vim允许:diffput:diffpull在两个分割之间的差异中移动线条。对于任何两个分割中的任何两个文件,是否有类似的东西?

1 个答案:

答案 0 :(得分:1)

不,没有这样的通用命令。

:diffput:diffget是可能的,因为原点和目标是已知的:光标的位置对应于两个缓冲区中的特定范围,因此Vim“很容易”知道如何处理什么地方。

一个通用的“拿这个,把它放在那里然后回来”命令更难设计,因为对目标知之甚少,必须从命令的上下文,窗口布局甚至包含很多东西。您正在移动的文本的种类(线性,字符,块状)。一个重要的事情要做,例如“如何粘贴”:pP:put或者即使我们需要重新缩进。一个非常简单的实现看起来像这样:

:command! To :wincmd w|put|wincmd w

但显然不够聪明,不能真正通用。我担心你想要的东西需要相当多的思考和vimscript。