2016-06-16 38 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