Vim 将当前单词向左或向右移动(“leapfrogging”其他单词)

Vim 将当前单词向左或向右移动(“leapfrogging”其他单词),vim,Vim,我想移动光标下的单词,然后将其向左或向右移动(“跳跃”其他单词)。例如,如果我们有这样一句话: 敏捷的狐狸跳过懒惰的棕色狗 我想把光标放在“棕色”上,按一些组合键,然后在“快速”和“福克斯”之间移动。这类似于上下移动行([e或]e),但单词要向左或向右移动 daw5bhp 说明: daw:删除单词周围的内容(光标可以位于“棕色”中的任何位置) 5b:返回5个单词 hp:将光标向左移动一个空格,然后粘贴将光标下的单词向右移动一个单词: nmap <F10> dawelpb nmap

我想移动光标下的单词,然后将其向左或向右移动(“跳跃”其他单词)。例如,如果我们有这样一句话:

敏捷的狐狸跳过懒惰的棕色狗

我想把光标放在“棕色”上,按一些组合键,然后在“快速”和“福克斯”之间移动。这类似于上下移动行([e或]e),但单词要向左或向右移动

daw5bhp
说明:

daw:删除单词周围的内容(光标可以位于“棕色”中的任何位置)

5b:返回5个单词


hp:将光标向左移动一个空格,然后粘贴

将光标下的单词向右移动一个单词:

nmap <F10> dawelpb
nmap-dawelpb

将光标下的单词向左移动一个单词:

nmap <F9> dawbPb
nmap-dawbPb
对于后跟标点符号的单词,这两种方法都不太适用。如果要移动具有该特殊字符的单词,请使用以下映射:

右移:

nmap <F10> dawElpB
nmap-dawElpB
向左移动:

nmap <F9> dawBPB
nmap-dawBPB
[编辑]:添加说明:

说明“dawElpB”:“daw”删除光标下的单词,“E”将光标放在单词右端的光标上,“l”将光标向右移动一个位置,“p”将光标移过单词,“B”将光标放在粘贴单词的开头


说明“dawBPB”:“daw”删除光标下的单词,“B”将光标放在单词的开头左移到光标,“p”将光标放在单词的开头,而“B”将光标放在粘贴的单词的开头。

我的.vimrc中有这些映射:

" pushes current line up & down
nnoremap <leader><Up> ddkP
nnoremap <leader><Down> ddp

" pushes word under the cursor to the left & to the right
nnoremap <leader><Left> "_yiw?\w\+\_W\+\%#<CR>:s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<CR><C-o><C-l>
nnoremap <leader><Right> "_yiw:s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<CR><C-o>/\w\+\_W\+<CR><C-l>
“向上和向下推送当前行
nnoremap-ddkP
nnoremap ddp
将光标下的单词向左和向右推
nnoremap“\u yiw?\w\\\\\\\\\\\\\\%\\\\:s/\(\%\\\\\w\\\\\)(\\\\\\\\\\\\\(\w\\+\)/\3\2\1/
nnoremap“\u-yiw:s/\(\%\w\+\)\(\u-w\+\)\(\w\+\)/\3\2\1/\w\+\u-w\+
这比@Habi的答案要复杂得多——我将尝试一下——但效果非常好


我在

上找到了这个问题的答案。 然而,这些年来,我已经离开了它,因为它改变了各种寄存器,如
@/
,这会影响突出显示的搜索模式(当设置
hlsearch
时)


现在,我正在使用。

问得好。然而,您应该知道的一点是,我们提出的关于Vim的大多数问题实际上都可以通过映射来解决,就像下面@Habi的答案一样。谢谢,这是有意义的。我应该考虑一下我可以为这项工作采取的步骤。我仍在学习如何利用这个新发现的功能:)。谢谢,我还要看看这个插件!