web-dev-qa-db-fra.com

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

Dans Vim, si je tape un commentaire dans un fichier de code et que je tape Enter, cela 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.

Généralement, c'est ce que je veux, mais pas toujours. Comment puis-je désactiver temporairement ce comportement de commentaire automatique?

60
Nathan Long

Je pense que tu cherches

:set formatoptions-=cro

De :help fo-table :

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...
82
Mike Seplowitz

Définir temporairement l'option 'coller' peut faire ce que vous voulez, mais désactive également beaucoup d'autres fonctionnalités de Vim:

Utilisez :set paste pour l’activer et :set nopaste pour l’éteindre. Sinon, vous pouvez utiliser :set paste! pour le basculer.

Voir également:

:help 'paste'
:help 'pastetoggle'

(Ces commandes sont saisies avec les guillemets simples.)

8
Heptite

J'entre de nouvelles lignes non formatées avec <CR>.

Quand je veux continuer à taper la ligne suivante dans le bloc commenté, je viens d’utiliser le O touche comme d'habitude.

Essaye ça:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>
3
Sebastian Jylanki

J'ai fini avec ceci:

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

Il ajoute une nouvelle ligne, supprime tout ce qui a déjà été inséré et laisse le curseur en mode insertion dans la colonne en retrait, sans modifier les options de format.

0
Ruben

Cette réponse s’applique à Debian et à certaines de ses dérivées.

Sur une distribution Debian, les valeurs par défaut de Vim sont déraisonnables. Ils sont situés dans /usr/share/vim/vim80/defaults.vim et appliqués après que (!) /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. Vim au démarrage 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, par exemple. l'intégration de la souris, les bizarreries de copier-coller, le retour automatique aux commentaires, etc.

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

0
oᴉɹǝɥɔ