Vim continúa automáticamente un comentario cuando presiono Enter en el modo Insertar, lo que me parece útil.
Sin embargo, no quiero que el comentario continúe después de presionar 'o' desde el modo normal para insertar una nueva línea debajo del final del comentario.
Leí que necesito eliminar la opción o
de mi formatoptions
, así que puse esta línea justo al final de mi archivo vimrc:
set formatoptions-=o
Pero no ha cambiado nada, y cuando ejecuto :set formatoptions
desde iside of vim me muestra que mis formaciones son croql
.
¿Cómo me deshago de la 'o'?
Editar:
He seguido algunos pasos señalados en los comentarios de Sato Katsura:
La solución comienza con la ejecución
:verb set fo
para ver dónde se modificaron por última vez las formaciones
Aquí está la salida a verb set fo
:
formatoptions=croql
Last set from /usr/share/vim/vim73/ftplugin/vim.vim
vimrc
formatting
theonlygusti
fuente
fuente
.vimrc
, por lo que no podemos ayudarlo hasta que lo publique. Supongo que un complemento lo cambia, o no está siendo fuente correctamente.set formatoptions-=o
en mi vimrc?", Que esto deshabilita los comentarios cuando presionaro
es una coincidencia :-)Respuestas:
Cuando
vim
comienza, se ejecuta$VIMRUNTIME/ftdetect.vim
para averiguar qué tipo de archivo está editando; luego, si lo ha'ftplugin'
configurado, obtiene$VIMRUNTIME/ftplugin.vim
las fuentes$VIMRUNTIME/ftplugin/&filetype.vim
(consulte:help startup
para obtener más detalles).Puede alterar o anular
$VIMRUNTIME/ftplugin.vim
o$VIMRUNTIME/ftplugin/&filetype.vim
. Cree una carpeta y subcarpeta en su directorio de inicio llamado.vim/after
.Si desea anular las opciones de formato para todos los complementos de tipo de archivo, edite
$HOME/.vim/after/ftplugin.vim
, de lo contrario edite$HOME/.vim/after/ftplugin/lua.vim
(o reemplacelua
por el idioma que sea, en su casovim
). Para una explicación adecuada de cómo funciona esto, vea:help 'runtimepath'
(y:help :runtime
).Ponga el siguiente contenido en el archivo:
Puede ver si funcionó ejecutando
:scriptnames
. Debería obtener una lista como la siguiente:Observe las líneas 11 y 12. Las rutas de sus archivos se verán un poco diferentes.
fuente
formatoptions
, sin embargo, mi.vim/after
fuente proviene de esos complementos ...:scriptnames
.formatoptions
en~/.vim/after/ftplugins.vim
no funciona - entonces me encontré con este argumento , que clase-de explique por qué.Descubrí que puedo proporcionar una solución improvisada usando un comando automático.
La siguiente línea en su
.vimrc
archivo debe aplicar las nuevas formaciones en todas partes:Sin embargo, esto realmente no llega a resolver el problema; Todavía no entiendo por qué un simple
set
no era suficiente, y como se ha señalado en los comentarios, esta solución no es ideal.fuente
formatoptions
(por ejemplo, Perl, Ruby y muchos otros lo configuran). ¿Esto parece una solución aceptable?o
independientemente del tipo de archivo, en cuyo caso esto parece apropiado.Tuve una experiencia similar a la de OP.
Descubrí que
t
se estaba agregando a mi aformatoptions
pesar de intentar deliberadamente deshabilitarlo.Después de usar
:verbose set fo
para estar seguro de que provenía de .vimrc, noté que el comportamiento parecía depender de dónde puse las opciones de formateo en mi archivo .vimrc. Descubrí que estaba sucediendo debido a dónde había colocadoset nocompatible
en mi archivo:Resulta que esto se llama específicamente en
:help nocompatible
:Después de seguir este buen consejo, mis
formatoptions
fueron preservados como se desea No sé si OP estaba teniendo este problema exacto o si se trataba de alguna otra interacción, pero me alegró descubrir qué lo estaba causando. Esperemos que esto ayude a alguien más a descubrir qué está cambiando (inicialmente inexplicablemente) su configuración.También me gusta el autocmd de theonlygusti: hay algunas opciones que nunca quiero configurar sin importar el tipo de archivo. Te estoy mirando
t
.fuente
Como muchos de nosotros, los usuarios de Vim, sufrimos esto, fui e investigué un poco más.
Mi solución es crear lo
$HOME/.vim/after/ftplugin.vim
sugerido por @ abcq2 solo para darme cuenta, no cambiará nada. Dada la lista dada por:scriptnames
, ese archivo es fuente demasiado pronto. Sin embargo, la segunda sugerencia de crear un$HOME/.vim/after/ftplugin/lua.vim
archivo LUA ayuda.Al
strace
aprender, aprendí que los plugins posteriores genéricos de tipo de archivo se obtienen antes que los plugins posteriores específicos de tipo de archivo y de tipo de archivo se obtienen después del tipo de archivo. No es muy intuitivo, pero así es como funciona.Hay más información en mi blog sobre esto.
fuente
after/ftplugin
sería útil. Por el contrario, la mejor manera es usar reemplazos específicos de tipo de archivo (usando un comando automático FileType o unafter/<filetype>.vim
archivo específico ). Vea también la ayuda en:h ftplugin-overrule
after/<filetype>.vim
en mi respuesta.Miré para ver qué archivos / rutas
vim
intentaron cargar, usandostrace
(como se describe aquí ), luego creé un~/.vim/after/plugin/
directorio (fue la última ubicación de configuración quevim
intentó cargar), y luego vinculé mi enlace~/.vimrc
a esa ubicación:Lo que hice con
strace
:Básicamente, corrí:
... luego salga inmediatamente
vim
(:q!
). A continuación, cargué~/vim_strace
($ vim ~/vim_strace
) y fui al final (:$
). Luego comencé a leer desde abajo buscando líneas que comenzaran conopenat(AT_FDCWD, "/home/karl/.....
.Lo primero que veo es:
Pero eso no es donde quiero mis opciones de configuración. La siguiente línea, justo encima de la
.viminfo
línea, era:... "No existe tal archivo o directorio", ¿eh? Parece un ganador Entonces, ese es el que elegí.
Ahora funciona perfectamente.
Espero que esto ayude a alguien en alguna parte.
fuente
vim
honra las opciones en el.vimrc
archivo. Vuelva a leer y asegúrese de comprender tanto la pregunta como la respuesta.~/.vim/after/plugin/formatoptions.vim
conset fo-=o
es más apetecible ... pero que todavía no funciona cuando un tipo de archivo plug-in de anulaciones de eso. Por ejemplo, abra Vim (sin archivo o un archivo no relacionado), luego use:e
para abrir o crear un*.vim
archivo. Verás que las opciones de forma tieneno
de nuevo, ya que se está configurando para ese búferftplugin/vim.vim
y tuafter/plugin
archivo no podrá anularlo.:set rtp?
verá que~/.vim/after
es último. Pero, como se mencionó anteriormente, esto realmente no funciona, yafo
que los complementos ft lo restablecerán y ese es realmente el problema aquí.~/.vimrc
después de que se cargaron los otros complementos, lo que me permitió~/.vimrc
anular los valores predeterminados, según lo previsto.