我想将光标移动到左侧或右侧(“跳过”其他单词)。例如,如果我们有这句话:
快速的狐狸跳过懒惰的棕色狗。
我想将光标设置为“棕色”,按某些组合键并在“快速”和“狐狸”之间移动。这类似于向上和向下移动线条([e或] e),但是对于向左或向右移动的单词。
答案 0 :(得分:4)
将光标下的一个字移到右边:
nmap <F10> dawelpb
将光标下的一个字移到左边:
nmap <F9> dawbPb
对于后跟标点符号的单词,两者都不能很好地工作。如果要移动包含该特殊字符的单词,请使用以下映射:
向右移动:
nmap <F10> dawElpB
向左移动:
nmap <F9> dawBPB
[编辑]:补充说明:
解释'dawElpB':'daw'删除光标下的单词,'E'将光标放在单词右边的光标末尾,'l'将光标向右移动一个位置,'p'过去单词和'B'将光标放在粘贴的单词的开头。
解释'dawBPB':'daw'删除光标下的单词,'B'将光标放在光标左侧的单词的开头,'P'过去单词,'B'将光标放在开头粘贴的词。
答案 1 :(得分:1)
daw5bhp
说明:
daw:在word周围删除(光标可以在“brown”里面的任何地方)
5b:回去5个字
hp:将光标移动到左侧一个空格然后粘贴
答案 2 :(得分: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>
它比@Habi的答案更复杂 - 我将尝试 - 但它的效果非常好。
上找到了它答案 3 :(得分:1)
关于vim.wikia的问题,确实有一个解决方案。
然而,多年来我一直在改变它,因为它改变了@/
等各种寄存器,这会影响突出显示的搜索模式(设置hlsearch
时)。
现在,我正在使用this plugin。