Dans un terminal VIM, les données du presse-papiers de collage dégagent souvent le retrait de code. Je savais juste si j'utilise :set paste
L'indent n'est pas cassé. Cependant, après avoir collé des données, devrais-je faire :set nopaste
encore? Et si je ne le fais pas, quel problème vient?
Comme d'autres ont écrit, vous ne voulez pas quitter la "pâte". Je voulais juste souligner qu'avec un bon émulateur de terminal et un correctement compilé et configuré vim
, vous ne devriez pas avoir besoin de changer de "pâte". Vous avez besoin d'un bon émulateur de terminaux tel que XTERM ou GNOME terminal, VIM avec la fonction X11 incluse et l'option 'Mouse' option définie sur 'A'. Ensuite, vim
_ "SAVOIR" lorsque vous collez avec la souris et que vous définissez efficacement et non une option "Coller" pour vous.
Une façon d'obtenir un vim
avec la fonction X11 est d'exécuter gvim
avec le -v
option ou créer un alias,
alias vim='gvim -v'
Puis mettre
set mouse=a
dans votre ~/.vimrc.
Comme Romainl suggérait, la documentation explique que la définition de l''paste'
L'option désactive plusieurs autres options et vous le constaterez certainement plus tôt que plus tard, cela entraînera des problèmes pour vous. Pour cette raison, il y a le 'pastetoggle'
option. Voir:
:help 'paste'
:help 'pastetoggle'
IIRC lorsque vous collez dans Vim, il pense essentiellement que vous avez tapé tous ces personnages vous-même. Donc, si l'indentement automatique est allumé, il tient des trucs pour vous, mais le texte collé contient généralement une indentation déjà de sorte que l'indent devienne "foiré". La commutation en mode Coller désactive des trucs comme auto-indent.
Si vous aimez l'indent automatique AS-You-Type, vous devez le retourner à Nopaste après que vous ayez terminé de coller. Essayez-le et notez comment vous devez faire toute l'indentation manuellement en mode Coller.
Si quelque chose existe, il doit avoir sa signification. Vous devriez jeter un bon coup d'œil à la documentation VIM qui est très utile.
:help 'paste'
:help 'pastetoggle'
Une fois que vous avez lu, vous voudrez peut-être ceci:
" Toggle paste mode
" (prefer this over 'pastetoggle' to echo current state)
nmap <leader>p :setlocal paste! paste?<cr>
J'espère que vous trouverez ce post utile :)