Vim continue automatiquement un commentaire lorsque j'appuie sur Entrée en mode Insertion, ce que je trouve utile.
Cependant, je ne veux pas que le commentaire se poursuive après avoir appuyé sur «o» en mode normal pour insérer une nouvelle ligne sous la fin du commentaire.
J'ai lu que je dois supprimer l'option o
de mon formatoptions
, alors j'ai mis cette ligne juste à la fin de mon fichier vimrc:
set formatoptions-=o
Mais cela n'a rien changé, et lorsque :set formatoptions
j'exécute depuis iside of vim, cela me montre que mes options de format sont croql
.
Comment puis-je me débarrasser du «o»?
Éditer:
J'ai suivi certaines étapes indiquées dans les commentaires de Sato Katsura:
La solution commence par l'exécution
:verb set fo
pour voir où les options de format ont été modifiées pour la dernière fois.
Voici la sortie vers verb set fo
:
formatoptions=croql
Last set from /usr/share/vim/vim73/ftplugin/vim.vim
la source
.vimrc
, nous ne pouvons donc pas vous aider tant que vous ne l'aurez pas publié. Je suppose qu'un plugin le modifie ou qu'il n'est pas correctement source.set formatoptions-=o
dans mon vimrc ne fonctionne-t-elle pas?", Que cela désactive les commentaires lorsque la pressiono
est fortuite :-)Réponses:
Au
vim
démarrage, il s'exécute$VIMRUNTIME/ftdetect.vim
pour savoir quel type de fichier vous modifiez; puis, si vous l'avez'ftplugin'
défini, il source$VIMRUNTIME/ftplugin.vim
quelles sources$VIMRUNTIME/ftplugin/&filetype.vim
(voir:help startup
pour plus de détails).Vous pouvez modifier ou remplacer
$VIMRUNTIME/ftplugin.vim
ou$VIMRUNTIME/ftplugin/&filetype.vim
. Créez un dossier et un sous-dossier dans votre répertoire personnel appelé.vim/after
.Si vous souhaitez remplacer les options de format pour tous les plugins de type de fichier, modifiez
$HOME/.vim/after/ftplugin.vim
, sinon modifiez$HOME/.vim/after/ftplugin/lua.vim
(ou remplacezlua
par la langue de votre choix - dans votre cas, c'estvim
). Pour une explication appropriée de la façon dont cela fonctionne, voir:help 'runtimepath'
(et:help :runtime
).Mettez le contenu suivant dans le fichier:
Vous pouvez voir si cela fonctionne en exécutant
:scriptnames
. Vous devriez obtenir une liste comme celle-ci:Notez les lignes 11 et 12. Vos chemins d'accès aux fichiers seront un peu différents.
la source
formatoptions
, cependant mon.vim/after
est originaire après ces plugins ...:scriptnames
.formatoptions
à~/.vim/after/ftplugins.vim
ne fonctionne pas - je rencontrais cet argument qui tri de explique pourquoi.J'ai découvert que je peux fournir une solution de fortune en utilisant une autocommande.
La ligne suivante de votre
.vimrc
fichier doit appliquer les nouvelles options de format partout:Cependant, cela ne permet pas vraiment de résoudre le problème; Je ne comprends toujours pas pourquoi un simple
set
n'était pas suffisant, et comme cela a été souligné dans les commentaires, cette solution n'est pas idéale.la source
formatoptions
(par exemple Perl, Ruby et plusieurs autres). Cela semble être une solution acceptable?o
quel que soit le type de fichier, auquel cas cela semble approprié.J'ai eu une expérience similaire à celle d'OP.
J'ai trouvé que cela
t
s'ajoutait à monformatoptions
malgré la tentative délibérée de le désactiver.Après avoir utilisé
:verbose set fo
pour être certain qu'il provenait de .vimrc, j'ai remarqué que le comportement semblait dépendre de l'endroit où je mettais les options de format dans mon fichier .vimrc. J'ai découvert que cela se produisait à cause de l'endroit où j'avais placéset nocompatible
dans mon dossier:Il s'avère que cela est spécifiquement mentionné dans
:help nocompatible
:Après avoir suivi ce bon conseil, mes
formatoptions
ont été conservés comme souhaité. Je ne sais pas si OP rencontrait ce problème exact ou s'il s'agissait d'une autre interaction, mais j'étais heureux de découvrir la cause. Espérons que cela aide quelqu'un d'autre à comprendre ce qui (initialement inexplicablement) change ses paramètres.J'aime aussi l'autocmd de theonlygusti - il y a des options que je ne veux jamais définir quel que soit le type de fichier. Je vous regarde,
t
.la source
Comme beaucoup d'entre nous utilisateurs de Vim souffrent de cela, je suis allé enquêter un peu plus.
Ma solution est de créer le
$HOME/.vim/after/ftplugin.vim
comme suggéré par @ abcq2 juste pour réaliser, cela ne changera rien. Étant donné la liste donnée par:scriptnames
, ce fichier est source bien trop tôt. Cependant, la deuxième suggestion de créer un$HOME/.vim/after/ftplugin/lua.vim
fichier LUA aide.En
strace
ing, j'ai appris que les post-plugins génériques de type de fichier sont sourcés avant le type de fichier et que les plug-in spécifiques de type de fichier sont sourcés après le type de fichier. Pas très intuitif, mais c'est comme ça que ça marche.Il y a plus d'informations dans mon blog à ce sujet.
la source
after/ftplugin
aide serait utile. La meilleure façon est plutôt d'utiliser des remplacements spécifiques au type deafter/<filetype>.vim
fichier (en utilisant soit une autocommande FileType ou un fichier spécifique ). Voir aussi l'aide sur:h ftplugin-overrule
after/<filetype>.vim
dans ma réponse.J'ai regardé quels fichiers / chemins ont
vim
tenté de charger, en utilisantstrace
(comme décrit ici ), puis j'ai créé un~/.vim/after/plugin/
répertoire (c'était le dernier emplacement de configuration qui avim
tenté de charger), puis j'ai créé un lien symbolique~/.vimrc
vers cet emplacement:Ce que j'ai fait avec
strace
:Fondamentalement, j'ai couru:
... puis quittez immédiatement
vim
(:q!
). Ensuite, j'ai chargé up~/vim_strace
($ vim ~/vim_strace
) et suis allé à la fin (:$
). Ensuite, j'ai commencé à lire à partir du bas à la recherche de lignes commençant paropenat(AT_FDCWD, "/home/karl/.....
.La première chose que je vois est:
Mais ce n'est pas là que je veux mes options de configuration. La ligne suivante, juste au-dessus de la
.viminfo
ligne, était:... "Pas un tel fichier ou répertoire", hein? On dirait un gagnant. C'est donc celui que j'ai choisi.
Maintenant, fonctionne parfaitement.
J'espère que cela aidera quelqu'un quelque part.
la source
vim
d'honorer les options du.vimrc
fichier. Veuillez relire et assurez-vous de bien comprendre à la fois la question et la réponse.~/.vim/after/plugin/formatoptions.vim
avecset fo-=o
est plus acceptable ... Mais cela ne fonctionne toujours pas lorsqu'un plug-in de type de fichier l'emporte. Par exemple, ouvrez Vim (sans fichier ou sans fichier), puis utilisez:e
pour ouvrir ou créer un*.vim
fichier. Vous verrez que les options de formatage sonto
à nouveau présentes, car elles sont définies pour ce tampon parftplugin/vim.vim
et votreafter/plugin
fichier ne pourra pas le remplacer.:set rtp?
vous verrez que~/.vim/after
c'est dernier. Mais, comme mentionné précédemment, cela ne fonctionne pas vraiment carfo
il sera réinitialisé par les plugins ft et c'est vraiment le problème ici.~/.vimrc
après le chargement des autres plugins, ce qui m'a permis~/.vimrc
de remplacer les valeurs par défaut, comme prévu.