分页: 1 / 1

Vim 中如何交换单词位置?

发表于 : 2008-08-06 10:49
abnick
Vim是我喜欢的编辑器,高效,快捷。

有个问题,一直找不到好的解决方案:

在编辑中,常常会有要把后一个单词移到前面,就是交换一下两个单词的位置。在Emacs中,可以用

代码: 全选

M-t
很方便地交换单词位置。(Emacs中叫做Transpose). 不知在Vim中如何实现。 我现在只能用

代码: 全选

dwwP
,但这样在行尾就不适用了。请问各位大虾,有什么高招吗?

(或者有什么插件吗?)

发表于 : 2008-08-06 11:48
sarrow
你做一个map,放在vimrc中就可以了啊!

发表于 : 2008-08-06 11:56
abnick
sarrow 写了:你做一个map,放在vimrc中就可以了啊!
是map dwwP 吗?

代码: 全选

dwwP
需要把光标放在第一个单词的词首,而且这个单词在行尾时就不能用了。

有没有办法可以实现像在Emacs中, 按 Alt + t 直接交换两个单词呢?

Re: Vim 中如何交换单词位置?

发表于 : 2011-07-06 21:27
Fermat618
我写了个,你过来吧
viewtopic.php?f=68&t=337540

Re: Vim 中如何交换单词位置?

发表于 : 2011-07-06 21:36
lilydjwg
Fermat618 写了:我写了个,你过来吧
viewtopic.php?f=68&t=337540
这么老的帖子都被你找到了。。。

Re: Vim 中如何交换单词位置?

发表于 : 2011-08-25 15:41
nedzqbear
刚刚写了个交换的脚本,可以交换列。

111 222 col3 col4 col5

222 111 col3 col4 col5

详细见:http://www.vim.org/scripts/script.php?script_id=3708

:em11

Re: Vim 中如何交换单词位置?

发表于 : 2011-08-26 15:17
lilydjwg
nedzqbear 写了:刚刚写了个交换的脚本,可以交换列。

111 222 col3 col4 col5

222 111 col3 col4 col5

详细见:http://www.vim.org/scripts/script.php?script_id=3708

:em11
还没 transwrd.vim 好玩呢。而且 transwrd.vim 是支持 repeat.vim 的(使用 . 重复)。

Re: Vim 中如何交换单词位置?

发表于 : 2011-08-26 15:33
eexpress
dwwp or dwep

Re: Vim 中如何交换单词位置?

发表于 : 2011-08-31 22:13
Fermat618
nedzqbear 写了:刚刚写了个交换的脚本,可以交换列。

111 222 col3 col4 col5

222 111 col3 col4 col5

详细见:http://www.vim.org/scripts/script.php?script_id=3708

:em11
偶尔有这样的需要,我会用调用外部的awk来实现。如果是编辑表格,vimwiki里面有编辑表格的功能,比较好用。

Re: Vim 中如何交换单词位置?

发表于 : 2011-08-31 22:24
lilydjwg
Fermat618 写了:
nedzqbear 写了:刚刚写了个交换的脚本,可以交换列。

111 222 col3 col4 col5

222 111 col3 col4 col5

详细见:http://www.vim.org/scripts/script.php?script_id=3708

:em11
偶尔有这样的需要,我会用调用外部的awk来实现。如果是编辑表格,vimwiki里面有编辑表格的功能,比较好用。
这种功能貌似 ^Vd<move>p 就可以了

Re: Vim 中如何交换单词位置?

发表于 : 2011-09-01 9:54
Fermat618
lilydjwg 写了:
Fermat618 写了:
nedzqbear 写了:刚刚写了个交换的脚本,可以交换列。

111 222 col3 col4 col5

222 111 col3 col4 col5

详细见:http://www.vim.org/scripts/script.php?script_id=3708

:em11
偶尔有这样的需要,我会用调用外部的awk来实现。如果是编辑表格,vimwiki里面有编辑表格的功能,比较好用。
这种功能貌似 ^Vd<move>p 就可以了
这个的确可以。

都讨论那个插件去了,我得给我的那个插件打打广告了。Transpose words http://www.vim.org/scripts/script.php?script_id=3656 正好实现楼主想要的功能,不多不少,即模拟Emacs中的M-t交换单词.