2011-11-02 11 views
8

Una cosa mi interessa. Se si dovesse desidera mappare una mappatura specifica per alcuni di buffer, si può andare in entrambi i casi
a) farlo conMapping locale del buffer in Vim: <buffer> vs. <localleader>

nnoremap <buffer> d dd 

b) o con

nnoremap <localleader>d dd 

che sarà efficace, perché LocalLeader è specifico per quel buffer, rendere tale mappatura specifica anche per quel buffer.

In un certo senso, sembra che due modi sovrapposti facciano una stessa cosa. C'è una ragione per usare un modo invece dell'altro? È forse un modo preferibile all'altro per qualche motivo?

risposta

10

Per quanto posso dire, maplocalleader è condiviso tra i buffer. Ciò significa che la tua seconda mappa non sarebbe specifica per un buffer.

Davvero, se si sta definendo una mappa che è specifico per un buffer (ad esempio, la mappa si riferisce solo a un tipo di file specifico) Credo convenzione è quello di utilizzare sia <buffer> e <localleader>. Se stai definendo una mappa che non è specifica di un buffer, dovresti semplicemente usare <leader>.

+1

Ah, capisco. Quindi, non è specifico del buffer, ma la sua intenzione è quella di essere utilizzata per i mapping che SONO specifici del buffer. Ho riletto l'aiuto ora, e non potevano dirlo in modo più confuso. O ho sbagliato di nuovo? – Rook

+1

Sì, lo capisci come faccio io. Il 'maplocalleader' è a malapena documentato, ma dopo un po 'di test questo sembra essere il comportamento corretto. –