2011-01-13 10 views
7

entiendo que VIM hace una diferencia entre set y setl en que el primero establece una opción para todos los tampones mientras que el segundo se establece la opción de pieles del actual solamente tampón . Esto es evidente si tengo hacer un :set tw=80 en comparación con un :setl tw=80.VIM: Diferencia entre set y SETL en vista del tipo de archivo

Ahora, cuando hago un :set ft=plsql, solo funciona en el búfer actual, aunque no hice un setl. Esto, por supuesto, tiene sentido. Sin embargo, no puedo ver si esto está documentado en alguna parte. Entonces, la pregunta probablemente se reduce a: ¿hay opciones que operen por defecto en el búfer actual mientras que otras operan "en todas partes" y dónde está eso documentado?

Respuesta

11

De hecho, hay opciones que operan en el búfer actual (y de hecho, la ventana actual en algunos casos). La documentación está con la documentación para la opción. Si usted va a cualquier opción en :help option-list, tendrá uno de los siguientes tres cadenas como la línea de tercera ish:

global 
local to window 
local to buffer 

(o alguna combinación de ellos). Por ejemplo, :help 'ft' da:

    *'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. 

Así que esta opción es local al búfer. Para una mayor discusión, véase:

:help option-summary 
0

Cuando se lee un nuevo buffer en vim, o mover de un tampón a otro, vim desencadena el equivalente de BufEnter, que re-evalúa el tipo de archivo del archivo en ese búfer. Posiblemente podría anular este comportamiento volando su directorio ftdetect en ~/.vim y reemplazándolo con un archivo que contiene solo au BufRead,BufNewFile,BufEnter * set filetype=plsql, momento en el que todos los archivos se leerán como SQL. Si desarmara todas las detecciones de tipo de archivo, el autocomando nunca se dispararía.

Cuestiones relacionadas