online metrologia mac for vim

metrologia - vim online



Vim: `set formatoptions` se está perdiendo? (5)

Tengo set formatoptions=cqn en mi vimrc , pero por alguna razón no se pega. Parece que Vim está volviendo al valor predeterminado ( fo=tcq ) en algún momento ... Pero no puedo entender por qué. Ejecutar -V100/tmp/log solo me da:

formatoptions=tcq Last set from ~/.vimrc

Sin contexto útil.

Entonces, ¿hay alguna manera de hacer que las opciones de formato se peguen? ¿O simplemente necesito crear un autocmd para restablecerlo cada vez que se carga un nuevo archivo?

Editar

Usando :verbose set formatoptions muestra esto:

formatoptions=tcq Last set from ~/.vimrc

Sin embargo, la única referencia a fo o formatoptions en mi ~ / .vimrc es set formatoptions+=cqn .


Encontrado en /usr/share/vim/vim74/ftplugin/vim.vim :

" Set ''formatoptions'' to break comment lines but not other lines,<br> " and insert the comment leader when hitting <CR> or using "o".<br> setlocal fo-=t fo+=croql

Quitarlo Entonces todas las cosas hechas.


Este comportamiento se debe al complemento de archivo C en VIM. Dado que el complemento de archivo se carga después de cargar .vimrc, las configuraciones en .vimrc se sobrescriben.
La solución dada por David Wolever parece ser la mejor opción.
Agregue la siguiente línea en .vimrc:

autocmd BufNewFile,BufRead * setlocal formatoptions+=cqn

... en lugar del comando normal set formatoptions .


Me encontré con este problema también. Tenía configuraciones específicas del proyecto algo así como

autocmd BufRead,BufNewFile project/*.c setlocal formatoptions-=cro

Sin embargo, set fo? formatoptions=croql . Resulta que necesitaba BufWinEnter lugar de BufRead :

Después de un búfer se muestra en una ventana. Esto puede suceder cuando se carga el búfer (después de procesar los modelos) o cuando se muestra un búfer oculto en una ventana (y ya no está oculto). No ocurre para: dividir sin argumentos, ya que sigue editando el mismo búfer, o ": split" con un archivo que ya está abierto en una ventana, porque reutiliza un búfer existente. Pero sí ocurre con un ": split" con el nombre del búfer actual, ya que recarga ese búfer.

Asi que esto funciona

autocmd BufWinEnter,BufNewFile project/*.c setlocal formatoptions-=cro


Según la documentación de vim en formatoptions :

NOTA: esta opción se establece en el valor predeterminado de Vi cuando ''compatible'' es
establecer y al valor predeterminado de Vim cuando se reinicia ''compatible''.

Entonces, si el valor de compatible está cambiando en el camino, eso podría estar causando el problema que estás viendo.


Suena como un archivo que proviene de su .vimrc o los complementos están cambiando ese valor.

Algo para tratar de señalarlo es

iniciar vim sin abastecerse de nada, usar

vim -u NONE

Usando NORC skipps .vimrc pero carga complementos

Marque :help --noplugin para leer acerca de varias opciones de inicio que controlan el origen.

--noplugin Skip loading plugins. Resets the ''loadplugins'' option. {not in Vi} Note that the |-u| argument may also disable loading plugins: argument load vimrc files load plugins ~ (nothing) yes yes -u NONE no no -u NORC no yes --noplugin yes no

Quizás esto también podría ser útil (de help: :set ):

When ''verbose'' is non-zero, displaying an option value will also tell where it was last set. Example: > :verbose set shiftwidth cindent? < shiftwidth=4 ~ Last set from modeline ~ cindent ~ Last set from /usr/local/share/vim/vim60/ftplugin/c.vim ~

quizás... :-)

Editar

¿Estás utilizando compatible ? Desde help: formatoptions

NOTE: This option is set to the Vi default value when ''compatible'' is set and to the Vim default value when ''compatible'' is reset.