我在archlinux的xterms中使用vim。想要为后续命令范围自动设置标记我写了这个映射vimscript:添加功能鼠标点击键映射
map <LeftMouse> mp:let g:oc=g:nc<cr>:let g:nc=getpos('.')<cr>:call setpos("'o", g:oc)<cr>:call cursor(g:nc[1], g:nc[2])<cr>
但现在鼠标不再将光标放置在单击的位置。我如何保持标准的鼠标功能,并添加到它而不是取代它?
我在archlinux的xterms中使用vim。想要为后续命令范围自动设置标记我写了这个映射vimscript:添加功能鼠标点击键映射
map <LeftMouse> mp:let g:oc=g:nc<cr>:let g:nc=getpos('.')<cr>:call setpos("'o", g:oc)<cr>:call cursor(g:nc[1], g:nc[2])<cr>
但现在鼠标不再将光标放置在单击的位置。我如何保持标准的鼠标功能,并添加到它而不是取代它?
看来它不可能修改LeftMouse,但是您可以使用LeftRelease实现它的效果。所以我的映射做我想要的
nmap <LeftRelease> mp:let g:oc=g:nc<cr>:let g:nc=getpos('.')<cr>:call setpos("'o", g:oc)<cr>
和标准函数是不变的。
您可以使用:set mouse=a
来使用视觉选择模式。 (这不是你想要的,但它是一个技巧)。 然后,点击文字,你会看到它正在被选中。然后,你可以释放它。
像
:map gv ma
映射将设置的最后一个最近选择文本作为标记。
其他方式:
相反的:set mouse=a
,您可以按v
,然后选择一个字母或一个单词,这取决于您的方便,然后ma
对标记为标志a
。 它一个简短的映射将
:map vly ma
谢谢,但我想达到的效果,标志着命令/功能范围,使用的东西,我已经在做 - 点击鼠标重新定位光标。我终于在这个映射上解决了问题:'nnoremap:调用setpos(“'o”,getpos(“'p”)) mp'。我没有理解使用nnoremap,没有它的映射只会产生无休止的重复点击。 –
user985675
现在,您已经找到了解决方案,不是吗? – SibiCoder