84 votes

Puis-je désactiver la continuation des commentaires à la ligne suivante dans Vim ?

Dans Vim, si je suis en train de taper un commentaire dans un fichier de code, et que j'appuie sur la touche Enter il fait automatiquement de la nouvelle ligne un commentaire.

Par exemple, dans un fichier Ruby :

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

En général, c'est ce que je veux, mais pas toujours. Comment puis-je désactiver temporairement ce comportement d'autocommentaire ?

1voto

oᴉɹǝɥɔ Points 281

Cette réponse s'applique à Debian et certains de ses dérivés.

Sur une distribution Debian, les valeurs par défaut de Vim ne sont pas raisonnables. Ils sont situés dans /usr/share/vim/vim80/defaults.vim et appliqué après( !) /etc/vim/vimrc est exécuté. La seule façon de dire à Vim de ne pas utiliser ses valeurs par défaut est de s'assurer que ~/.vimrc existe même s'il est vide. Au démarrage, Vim essaie de lire à partir de .vimrc mais si le fichier n'est pas trouvé, il applique les valeurs par défaut, ce qui entraîne de nombreux comportements indésirables, comme l'intégration de la souris, les bizarreries du copier-coller, l'enroulement automatique des commentaires, etc.

Sous Debian, vous pouvez corriger TOUT cela en exécutant simplement touch ~/.vimrc

1voto

grepit Points 183

Il s'agit d'une commande d'une seule ligne qui, lorsque vous l'exécutez, désactive la poursuite du commentaire de façon permanente.

echo 'au FileType * set fo-=c fo-=r fo-=o' >> ~/.vimrc

0voto

HanleyLee Points 1

Si vous souhaitez simplement désactiver temporairement cette fonctionnalité, je pense que le moyen le plus simple est de créer une carte clé. <C-u> peut effacer le contenu de la ligne actuelle jusqu'au début, en conservant l'espace d'indentation, j'ai donc créé une carte de clés dans mon fichier .vimrc :

inoremap <silent><expr> <C-CR> "\<CR>\<C-u>" 

Cette carte est pour le mode insertion, vous pouvez créer une carte clé pour le mode normal si vous voulez, comme ci-dessous :

nnoremap <silent><expr> <C-CR> "o\<C-u>"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X