Question

Je me suis tourné sur filetype plugin pour certains rails vim plugins que j'ai ajouté, mais un effet secondaire de ce qui semble être que maintenant autocommenting a été activée dans tous les types de fichiers (par exemple, si je commence une ligne avec #, à la ligne suivante, soit par Entrez en mode insertion ou O, etc.pour passer en mode insertion, sera également obtenir une #).

J'ai trouvé un guide pour la désactivation de l'auto-commentaires formatoptions, et ajout de la de mes .vimrc:

au FileType * setlocal formatoptions-=cro

Cependant, je suis toujours en cours d'exécution dans des problèmes, à moins que j'ai explicitement :source .vimrc, (ou entrez le setlocal ... directement), il n'est pas de prendre effet.J'ai déterminé que c'est le cas parce que vim est ftplugins sont impérieuses mes options avec leur propre.

J'ai ensuite trouvé un deuxième guide qui parle à l'aide d'un après ftplugin script pour faire des changements après la ftplugin des scripts, mais leur solution est de créer des liens symboliques pour chaque type de fichiers dans ~/.vim/après/ftplugin à un fichier central, et cela semble être encombrants pour moi.

Est-il possible de créer un générique après-ftplugin script ou suis-je aborder ce problème de façon incorrecte?Toute aide serait appréciée.

Était-ce utile?

La solution

Comment à propos d'un "après" plugin?Créez un fichier dans ~/.vim/after/plugin/ appelé noAutoComments.vim (ou autre) et le lieu de votre autocmd dans tout cela?

Edit:

La raison pour laquelle cela fonctionne?Je suis le seul à deviner ici, mais j'ai le sentiment que l' autocmd dans le ~/.vimrc fichier est supprimé par un autre fichier (mais avant le "après" fichiers sont des sources).

J'ai fini par enlever mon ~/.vim annuaire et remplacé mon ~/.vimrc avec ces 3 lignes:

filetype plugin on
syntax on
au FileType * setlocal formatoptions-=cro

Avec seulement ces lignes dans mon ~/.vimrc et pas de ~/.vim/ répertoire, l' autocmd semble fonctionner comme prévu (Vim 7.1).

Pour n'importe quel fichier que j'ai modifier:

:verbose set formatoptions?
formatoptions=ql
      Last set from ~/.vimrc

J'ai pourtant déterminer quel fichier (plugin) est à l'origine de ce problème cependant.

Autres conseils

J'ai fait un peu plus d'enquête et il semble que l'emplacement de mon autocmd au sein de mon .fichiers vimrc détermine si formatoptions sera remplacée par vim est ftplugins ou pas.À l'aide de vim --noplugin pour désactiver tous les plugins externes, j'ai trouvé les résultats suivants:

Si mon vimrc ressemble:

au FileType * setl fo-=cro
filetype plugin indent on

Le résultat de :verbose set fo? est:

formatoptions=croql
  Last set from /usr/share/vim/vim72/ftplugin/ruby.vim

Toutefois, si les lignes dans mon vimrc sont inversés:

filetype plugin indent on
au FileType * setl fo-=cro

Le résultat de :verbose set fo? est:

formatoptions=ql
  Last set from ~/.vimrc

...qui est le résultat souhaité.Il semble donc que l' autocmd doit être spécifié après le type du fichier plugins sont activés.

Une autre raison de ce qui pourrait ne pas être prise d'effet...

À partir 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.

J'ai

    " Turn off auto-commenting
    au FileType * setlocal formatoptions-=c
    au FileType * setlocal formatoptions-=r
    au FileType * setlocal formatoptions-=o

parce que j'ai couru dans cette.

À l'aide de l'un des divers autocmd des événements pour définir l'option de configuration devrait fonctionner si vous trouvez la bonne, mais j'aimerais commencer en cours d'exécution:

:verbose set formatoptions?

Cela vous indiquera où l'option a été définie, ce qui peut rendre plus facile de déterminer les autocmd à utiliser.Sinon, si vous n'avez pas l'esprit un peu de piratage mineur, la façon dont je le ferais probablement c'est juste pour savoir où elle est définie dans le plugin et le commentaire de la ligne de production (et de faire une note dans le cas où vous jamais de mise à niveau du plugin).Vous pouvez aussi communiquer avec le plugin de l'auteur et de leur demander d'en faire une option configurable.

Pour la mise à disposition autocmd événements, lire ceci:

:help {event}

J'ai essayé les solutions proposées par les nombreux, mais aucun n'a fonctionné pour moi, mais je l'ai trouvé très simple solution de contournement, à savoir, dans votre ~/.bash_aliases:

    # vim without auto comment
    alias vi="vi +'set fo-=cro'"

J'ai été aux prises avec ce problème et j'ai finalement fonctionne avec les lignes suivantes:

syntax on
filetype on
filetype plugin on
au FileType * setlocal formatoptions-=cro

Je pense que la clé ici est que l' autocmd est lieu après la filetype plugin on.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top