[英]Why vim's <Leader> key not working when I want to use bufexplorer or vim-buffergator plugin?
[英]When should i use <leader> mapping in vim?
我是vim的新手。 我正在嘗試在vim中重新映射。
當我使用時:
map <leader>cp <Esc>:CtrlP<return>
nmap cp :CtrlP<return>
它做同樣的事情。
我知道<leader>
是什么。 但是我想知道普通映射和<leader>
映射之間的區別。
那么它們之間有什么區別呢? 什么時候應該使用<leader>
進行映射?
您說您知道<Leader>
是什么,但請確保我再說一遍: <Leader>
允許您定義可用於映射的鍵盤鍵的別名。 默認值為\\
但是您可以使用mapleader
更改此鍵。 例如:
let mapleader="\<Space>"
允許您使用空格鍵作為領導者。
之后,讓我們仔細看看map
和nmap
:
map
map創建一個存在於3種模式中的映射:Normal,Visual和Operator-pending模式。
nmap
創建僅在正常模式下存在的映射。
(有關更多詳細信息,請參見:h map
以及其他可能的命令,例如vmap
, imap
等。)
現在介紹您的兩個映射:
map <leader>cp <Esc>:CtrlP<return>
這意味着當您處於普通模式,可視模式或操作員暫掛模式時,如果按Lead + c + p ,由於<Esc>
和調用該函數以打開Ctrlp
nmap cp :CtrlP<return>
而此映射表示在正常模式下,按c + p將調用該函數以打開CtrlP。
所以當你說:
它做同樣的事情
我猜您在正常模式下嘗試按Leader + c + p以及c + p都打開了CtrlP。 這是預期的行為,因為您將兩個鍵組合都映射到了相同的動作,而且我懷疑您是在同一vim會話中這樣做的,沒有清理先前的映射。
如果用nmap cn :CtrlP<return>
替換第二個映射,您會看到c + p將不會打開CtrlP, Leader + c + p將打開CtrlP,而c + n將打開。
最后回答您的問題的標題“我何時應該在vim中使用<Leader>
映射”,我想說這取決於您的工作流程,我不確定您能否給出一個好的答案(也就是說,哪個不是純粹是主觀的)。 只需嘗試找到最適合您需求的內容即可。
獎金也為你將來的映射考慮使用noremap
, nnoremap
, vnoremap
等等......這禁用遞歸映射,可以為你節省很多的麻煩。
紅利2對於與vim相關的問題,您可能會對vim stackechange網站感興趣,該網站反應非常活躍 (在我撰寫此答案時,有95%的問題都有答案)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.