La desactivación de autocommenting para todos los tipos de archivo
Pregunta
Encendí filetype plugin
para algunos rieles vim plugins que he añadido, pero un efecto secundario de esto, parece ser que ahora autocommenting se ha habilitado en todos los tipos de archivo (por ejemplo, si yo inicio una línea con #
, la siguiente línea, ya sea por Entrar en el modo de inserción o O, etc.para entrar en modo de inserción, también tendrá un #
).
He encontrado una guía para deshabilitar la auto-comentar formatoptions
, y añade lo siguiente a mi .vimrc:
au FileType * setlocal formatoptions-=cro
Sin embargo, todavía estoy ejecutando en problemas, a menos de que me explícitamente :source .vimrc
, (o entrar en el setlocal ...
directamente), no está teniendo efecto.He decidido que este es el caso, porque de vim ftplugins están anulando mis opciones con sus propios.
Luego de encontrar un la segunda guía el que habla sobre el uso de un después de ftplugin secuencia de comandos para realizar cambios después de la ftplugin scripts se han ejecutado, sin embargo, su solución es crear enlaces simbólicos para cada tipo de archivo en ~/.vim/después de/ftplugin a un archivo central, y este parece ser desacoplados para mí.
Hay alguna forma de crear un genérico después de ftplugin script o me estoy acercando a este problema de forma incorrecta?Cualquier ayuda se agradece.
Solución
Acerca de cómo un "después" plugin?Crear un archivo en ~/.vim/after/plugin/
llama noAutoComments.vim
(o lo que sea) y el lugar de su autocmd en que?
Editar:
La razón por la que esto funciona?Sólo estoy adivinando aquí, pero tengo la sensación de que el autocmd
en el ~/.vimrc
archivo se está eliminado por algún otro archivo (pero antes de que el "después de" archivos están siendo de origen).
Terminé de quitar mi ~/.vim
directorio y sustituido a mi ~/.vimrc
con los 3 siguientes líneas:
filetype plugin on
syntax on
au FileType * setlocal formatoptions-=cro
Con sólo estas líneas en mi ~/.vimrc
y no ~/.vim/
directorio, el autocmd
parece funcionar como se esperaba (Vim 7.1).
Para cualquier archivo que puedo editar:
:verbose set formatoptions?
formatoptions=ql
Last set from ~/.vimrc
Todavía tengo que determinar qué archivo (plugin) es la causa de este problema sin embargo.
Otros consejos
He hecho un poco más de investigación y parece que la ubicación de mi autocmd
dentro de mi .vimrc archivo determina si formatoptions
serán reemplazadas por las de vim ftplugins o no.El uso de vim --noplugin
para desactivar todos los plugins, he encontrado los siguientes resultados:
Si mi vimrc parece:
au FileType * setl fo-=cro
filetype plugin indent on
El resultado de :verbose set fo?
es:
formatoptions=croql
Last set from /usr/share/vim/vim72/ftplugin/ruby.vim
Sin embargo, si las líneas en mi vimrc se invierten:
filetype plugin indent on
au FileType * setl fo-=cro
El resultado de :verbose set fo?
es:
formatoptions=ql
Last set from ~/.vimrc
...cual es el resultado deseado.Así que parece que los autocmd
necesita ser especificado después de que tipo de archivo plugins están habilitados.
Otra razón por la que este podría no ser el efecto de...
De :he :set-=
:
When the option is a list of flags, {value} must be exactly as they appear in the option. Remove flags one by one to avoid problems.
Tengo
" Turn off auto-commenting au FileType * setlocal formatoptions-=c au FileType * setlocal formatoptions-=r au FileType * setlocal formatoptions-=o
porque me he topado con esto.
Utilizando uno de los varios autocmd
eventos para establecer la opción de configuración debería funcionar si usted encontrar la correcta, pero me gustaría empezar por ejecutando:
:verbose set formatoptions?
Esto le dirá a donde estaba la opción, en conjunto, que puede hacer que sea más fácil determinar qué autocmd a utilizar.Alternativamente, si no te importa un poco de menores de hacking, la forma en que probablemente me lo hacen es sólo para averiguar de dónde establecido en el plugin y un comentario fuera de línea y tomar nota de ella en caso de que alguna vez actualizar el plugin).Usted puede también ponerse en contacto con el plugin del autor y solicitar que hacen que sea una opción configurable.
Para la disposición autocmd
eventos, leer esto:
:help {event}
He intentado las soluciones propuestas por muchos, pero ninguno de ellos funcionó para mí, pero me he encontrado con una muy sencilla solución, es decir, en su ~/.bash_aliases:
# vim without auto comment
alias vi="vi +'set fo-=cro'"
Yo estaba luchando con este problema y finalmente se trabaja con las siguientes líneas:
syntax on
filetype on
filetype plugin on
au FileType * setlocal formatoptions-=cro
Creo que la clave aquí es que la autocmd
es el lugar después de la filetype plugin on
.