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