2016-06-16 35 views
0

我在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> 

但现在鼠标不再将光标放置在单击的位置。我如何保持标准的鼠标功能,并添加到它而不是取代它?

回答

1

看来它不可能修改LeftMouse,但是您可以使用LeftRelease实现它的效果。所以我的映射做我想要的

nmap <LeftRelease> mp:let g:oc=g:nc<cr>:let g:nc=getpos('.')<cr>:call setpos("'o", g:oc)<cr> 

和标准函数是不变的。

1

您可以使用:set mouse=a来使用视觉选择模式。 (这不是你想要的,但它是一个技巧)。 然后,点击文字,你会看到它正在被选中。然后,你可以释放它。

:map gv ma 

映射将设置的最后一个最近选择文本作为标记。

其他方式:

相反的:set mouse=a,您可以按v,然后选择一个字母或一个单词,这取决于您的方便,然后ma对标记为标志a。 它一个简短的映射将

:map vly ma 
+0

谢谢,但我想达到的效果,标志着命令/功能范围,使用的东西,我已经在做 - 点击鼠标重新定位光标。我终于在这个映射上解决了问题:'nnoremap :调用setpos(“'o”,getpos(“'p”)) mp'。我没有理解使用nnoremap,没有它的映射只会产生无休止的重复点击。 – user985675

+0

现在,您已经找到了解决方案,不是吗? – SibiCoder