2011-03-09 38 views
2

我想在光标下移动单词并将其移到左侧或右侧(“跳过”其他单词)。例如,如果我们有这句话:向左或向右移动当前单词(“跳过”其他单词)

快速狐狸跳过懒惰的棕色狗。

我想将光标置于“棕色”上,按下某个组合键并在“快速”和“狐狸”之间移动。这与上下移动线条([e或] e)类似,但要左右移动。

+0

好问题。然而,你应该知道的一件事情是,我们问的关于Vim的大多数问题实际上可以使用映射来解决,就像@Habi的答案一样。 – Rafid 2011-03-09 16:16:15

回答

4

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

下光标一个字

词移动到左:

nmap <F9> dawbPb 

两者都不对的话,接着标点符号很好地工作。如果要移动一个字与特殊字符,请使用以下映射:

右移:

nmap <F10> dawElpB 

左移:

nmap <F9> dawBPB 

[编辑]:解释说:

说明'dawElpB':'daw'删除光标下的单词,'E'将光标放在光标右侧的单词末尾,'l'将光标向右移动一个位置,'p'通过字和'B'将光标置于粘贴文字的开头。

说明'dawBPB':'daw'删除光标下的单词,'B'将光标放在光标左边的单词的开头,'P'超过单词,'B'将光标放在粘贴词的开头。

+0

谢谢,这很有道理。我应该想到我可以为这项工作采取的步骤。我仍然在学习如何利用这个新发现的力量:)。 – adparadox 2011-03-09 17:29:56

1
daw5bhp 

说明:

DAW:删除周围字(光标可以在任何地方里面的 “棕色”)

5B:回去5个字

马力:将光标移动到左侧然后粘贴一个空间

1

我有这些映射在我的.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> 

这waaay比@哈比的回答更复杂 - 我要去尝试 - 但它工作得很好。

,我发现它的Vim wiki.

1

确实是有对vim.wikia这个问题的解决方案。 但是,多年来我已经离开它,因为它改变了各种寄存器,如@/,这会影响突出显示的搜索模式(当设置了hlsearch时)。我正在使用this plugin

+0

谢谢,我还会看看这个插件! – adparadox 2011-03-09 17:36:17