这是我的字符串:
"this is my sentence"
我想有这个输出:
"sentence my is this"
我想在一行(在缓冲区中)选择几个单词并逐字反转。
任何人都可以帮助我吗?
答案 0 :(得分:16)
答案 1 :(得分:1)
也许:
:s/\v(.*) (.*) (.*) (.*)/\4 \3 \2 \1/
当然,你可能需要在第一部分更具体地找到那个特定的句子。通常,您可以将匹配组称为\ number,\ 0是整个匹配。
答案 2 :(得分:1)
这是通过调用Ruby来实现的方法。选择要反转的行后,可以在命令模式下执行此操作以替换它:
!ruby -e 'puts ARGF.read.strip.split(/\b/).reverse.join'
答案 3 :(得分:1)
我自己找到了解决方案,感谢您的回答和大量尝试:)
这有效:
function! Test()
exe 'normal ' . 'gv"ay'
let r = join(reverse(split(getreg('a'))))
let @a = r
exe 'normal ' . 'gv"ap'
endfunction
没想到我能够编写这样的函数:)