2012-11-28 24 views
5

我在Vim的知道这些命令:如何在当前行之后加入上面的行?

记者:加入以下行当前行之后
-J:加入行后当前行

但我如何加入线上方后电流线?

+8

'kddpkJ' .......? –

+2

保存按键“ddkPJ”。如果你做了很多换行,可以考虑制作[这个技巧中的映射](http://vim.wikia.com/wiki/VimTip646#Mappings_to_move_lines)。 –

回答

2

有很多方法可以做到这一点。其中之一是...删除上面的行并将其附加到下面一行的末尾:

k move up one line 
^ move to the first printable character 
y$ yank to the end of the line 
"_d get rid of the now useless line by deleting it into the black hole register 
$ move to the end of the line 
p put the deleted text 
+1

首先交换行然后'J'oin他们会更容易([@WilliamPursell建议](http://stackoverflow.com/questions/13609736/how-do-i-join-the-line-above -after电流线#comment18659642_13609736))。 – bitmask

+0

是的,我知道。我去了一个“litteral”的方法。实际上,我也会和William Pursell的方法一起。 – romainl

+0

请注意,'J'确实处理与逐字连接不同的空格。也就是说,如果有人想要'J'产生的结果,'k^d $ k $ p'会做一些不同的事情! – bitmask

1

您还可以使用ex命令

:m-2|j 
  • m-2有移动的效果当前行至当前位置上方2行;这将切换当前行的位置和上面的行。
  • j加入当前行和上面的行,在两者之间插入一个空格。如果你不想要这个空间,请使用j!
  • |分离2 ex命令

该前命令是写的短方式下面

:move .-2 
:join 
相关问题