簡體   English   中英

我什么時候應該使用 <leader> 在vim中映射?

[英]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>"

允許您使用空格鍵作為領導者。

之后,讓我們仔細看看mapnmap

  • map map創建一個存在於3種模式中的映射:Normal,Visual和Operator-pending模式。

  • nmap創建僅在正常模式下存在的映射。

(有關更多詳細信息,請參見:h map以及其他可能的命令,例如vmapimap等。)

現在介紹您的兩個映射:

  • 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>映射”,我想說這取決於您的工作流程,我不確定您能否給出一個好的答案(也就是說,哪個不是純粹是主觀的)。 只需嘗試找到最適合您需求的內容即可。

獎金也為你將來的映射考慮使用noremapnnoremapvnoremap等等......這禁用遞歸映射,可以為你節省很多的麻煩。

紅利2對於與vim相關的問題,您可能會對vim stackechange網站感興趣,該網站反應非常活躍 (在我撰寫此答案時,有95%的問題都有答案)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM