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 ode 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 formatoptionsdesde 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 fopara 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-=oen mi vimrc?", Que esto deshabilita los comentarios cuando presionaroes una coincidencia :-)Respuestas:
Cuando
vimcomienza, se ejecuta$VIMRUNTIME/ftdetect.vimpara averiguar qué tipo de archivo está editando; luego, si lo ha'ftplugin'configurado, obtiene$VIMRUNTIME/ftplugin.vimlas fuentes$VIMRUNTIME/ftplugin/&filetype.vim(consulte:help startuppara obtener más detalles).Puede alterar o anular
$VIMRUNTIME/ftplugin.vimo$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 reemplaceluapor 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/afterfuente proviene de esos complementos ...:scriptnames.formatoptionsen~/.vim/after/ftplugins.vimno 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
.vimrcarchivo 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
setno 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?oindependientemente del tipo de archivo, en cuyo caso esto parece apropiado.Tuve una experiencia similar a la de OP.
Descubrí que
tse estaba agregando a mi aformatoptionspesar de intentar deliberadamente deshabilitarlo.Después de usar
:verbose set fopara 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 nocompatibleen mi archivo:Resulta que esto se llama específicamente en
:help nocompatible:Después de seguir este buen consejo, mis
formatoptionsfueron 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.vimsugerido 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.vimarchivo LUA ayuda.Al
straceaprender, 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/ftpluginserí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>.vimarchivo específico ). Vea también la ayuda en:h ftplugin-overruleafter/<filetype>.vimen mi respuesta.Miré para ver qué archivos / rutas
vimintentaron cargar, usandostrace(como se describe aquí ), luego creé un~/.vim/after/plugin/directorio (fue la última ubicación de configuración quevimintentó cargar), y luego vinculé mi enlace~/.vimrca 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
.viminfolí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
vimhonra las opciones en el.vimrcarchivo. Vuelva a leer y asegúrese de comprender tanto la pregunta como la respuesta.~/.vim/after/plugin/formatoptions.vimconset fo-=oes 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:epara abrir o crear un*.vimarchivo. Verás que las opciones de forma tienenode nuevo, ya que se está configurando para ese búferftplugin/vim.vimy tuafter/pluginarchivo no podrá anularlo.:set rtp?verá que~/.vim/afteres último. Pero, como se mencionó anteriormente, esto realmente no funciona, yafoque los complementos ft lo restablecerán y ese es realmente el problema aquí.~/.vimrcdespués de que se cargaron los otros complementos, lo que me permitió~/.vimrcanular los valores predeterminados, según lo previsto.