2011-01-13 12 views
7

comprendo che VIM fa la differenza tra set e setl dal fatto che la prima imposta un'opzione per tutti i buffer mentre il secondo si imposta l'opzione pelliccia solo la corrente tampone . Questo è evidente se ho fatto un :set tw=80 in contrasto con un :setl tw=80.VIM: Differenza tra set e SETL in vista tipofile

Ora, quando eseguo uno :set ft=plsql, si opta solo sul buffer corrente anche se non ho eseguito uno setl. Questo, ovviamente, ha senso. Eppure, non riesco a vedere se questo è documentato da qualche parte. Quindi, la domanda probabilmente si riassume in: ci sono opzioni che di default operano sul buffer corrente mentre altre operano "ovunque" e dove è documentato?

risposta

11

Esistono effettivamente opzioni che operano sul buffer corrente (e in alcuni casi sulla finestra corrente). La documentazione è con la documentazione per l'opzione. Se si va in qualsiasi opzione :help option-list, avrà uno dei seguenti tre stringhe come la terza linea-ish:

global 
local to window 
local to buffer 

(o una combinazione di essi). Ad esempio, :help 'ft' dà:

    *'filetype'* *'ft'* 
'filetype' 'ft'  string (default: "") 
      local to buffer 
      {not in Vi} 
      {not available when compiled without the |+autocmd| 
      feature} 
    When this option is set, the FileType autocommand event is triggered. 
    All autocommands that match with the value of this option will be 
    executed. Thus the value of 'filetype' is used in place of the file 
    name. 

Quindi questa opzione è locale al buffer. Per ulteriori discussione, vedi:

:help option-summary 
0

Quando si legge un nuovo buffer in vim, o passare da un buffer all'altro, vim innesca l'equivalente di BufEnter, che rivaluta il tipo di file del file in quel buffer. Potresti sovrascrivere questo comportamento spazzando via la tua directory ftdetect in ~/.vim e sostituendola con un file contenente solo au BufRead,BufNewFile,BufEnter * set filetype=plsql, a quel punto tutti i file verrebbero letti come SQL. Se dovessi annullare l'impostazione di tutti i rilevamenti del tipo di file, l'autocomando non verrebbe mai attivato.

Problemi correlati