: 不知能否完成这个操作:
:
: 1-10行长短不一,11-20行也是,现在想把11-20行整体搬移到1-10行
: 的后面,行与行对应。1-10行最长有20字符,11-20行就从第30字符处开始
Dieken@newsmth答复:
:set ve=all 设置所有模式下都能VirtualEdit,这样,光标就能走到没字的地方。
11gg
^q9j$ 把11至20行全部选中,C-q似乎在打开MS兼容时才有用,一般是C-v。
d 剪切
1gg30| 跳到第一行第三十列
p
:set ve="" 恢复默认值。
不得不说,太厉害了 - 包括D网友和Vim。
其实本意是要构造表格的,这样粘贴后中间空白的地方是用空格填充的,如果能用Tab来分隔那就更好,转成表格时比较简单些。不知道直接是否有办法,但现在前一列与后一列之间有许多空格,起码有10个,这个条件就很强,可以用替换达到目的:
:%s/\s\{10,}/\t/g 全面替换空格(最少10个才算)为Tab制表符。
又,D网友还推荐学习VimTips,这个可以下载来看全文,也有RSS可以用,随时看到新的。