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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top