Vim - 用可视模式交换列

Vim - swap columns with visual mode

我有一个像这样的降价table。 我想用 head2 交换 head3 列。

| head1 | head3 | head2 |
|-------|-------|-------|
| foo   | baa   | none  |
| some  | text  | here  |

我可以使用可视模式 (Ctrl-V) 轻松剪切该列,但如何粘贴该列 'column-wisely'?

还有,哪个操作比较简单:

  1. 剪切'head 3'并粘贴在'head2'
  2. 后面
  3. 剪切 'head 2' 并粘贴到 'head3'?
  4. 之前

当您使用 Ctrl+Vselect编辑和剪切某些内容时,Vim 也会将其粘贴为一列。您可以 Ctrl+V select 您想要交换的列并粘贴,您刚刚替换的列现在将在您的粘贴寄存器中。返回到您首先剪切的列并再次粘贴一次以移动替换的列。

步骤:

  • 使用 Ctrl+V select 整个 head3
  • x
  • 再次使用 Ctrl+V select 整个 head2
  • p 粘贴
  • 回到head3曾经
  • 的地方
  • p 粘贴

  1. 移动到第一个点 | : f+| 然后通过 l
  2. 移动到紧随其后的字符
  3. 开始选择列:Ctrl+v
  4. 移至文件末尾:G
  5. 移至第二个点,header3 之后的点:2f+|
  6. 剪切选择:d
  7. 移至行尾:$
  8. 最后粘贴:p

Also, which operating is easiert:

  1. cut 'head 3' and paste behind 'head2'
  2. cut 'head 2' and paste before 'head3'?

对我来说,两者的工作方式相同。