我将以下文字作为一个简单的案例:
...
abc xxx 123 456
wer xxx 345 678676
...
我需要将文本块xxx移动到另一个位置:
...
abc 123 xxx 456
wer 345 xxx 678676
...
我认为我使用可视模式来阻止一列文本,将该块移动到另一个位置的其他命令是什么?
答案 0 :(得分:42)
您应该使用逐块可视模式( Ctrl + v )。 然后 d 删除块, p 或 P 以粘贴块。
答案 1 :(得分:15)
尝试link。
标记文字(视觉模式)
视觉命令
剪切和粘贴
答案 2 :(得分:9)
我在学习VIM之初学到的几个有用的命令之一就是 :1,3 mo 5 这意味着将文本第1行到第3行移到第5行。
答案 3 :(得分:5)
答案 4 :(得分:0)
使用外部命令“awk”。
%!awk '{print $1,$3,$2,$4}' test.txt
使用纯vim
:%s,\v(\w+) (\w+) (\w+) (\w+),\1 \3 \2 \4,g
使用全局命令的另一个vim解决方案
:g/./normal wdwwP