1480 votes

La désactivation de retrait automatique lorsque vous collez du texte dans vim

Je fais l'effort d'apprendre Vim.

Quand je colle le code dans mon document à partir du presse-papiers, - je obtenir de l'espace supplémentaire au début de chaque nouvelle ligne:

line
  line
    line

Je sais que vous pouvez désactiver l'auto indentation, mais je ne peux pas le faire fonctionner parce que j'ai quelques autres paramètres contradictoires ou quelque chose (qui à l'air assez évident dans mon .vimrc, mais ne semble pas à la matière quand je les prends).

Comment puis-je désactiver l'auto indentation quand je colle le code, mais encore vim indentation automatique quand je suis à l'écriture de code? Voici mon .vimrc le fichier:

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

2612voto

Pavel Shved Points 34706

Pour désactiver l'indentation automatique lorsque vous collez code, il y a un "coller" de mode.

Type

:set paste

Puis collez votre code. Notez que le texte dans la bulle d'aide maintenant, dit - -- INSERT (paste) --.

Après l'avoir collé votre code, coupez la pâte en mode, de sorte que l'auto-indentation lorsque vous tapez fonctionne à nouveau correctement.

:set nopaste

292voto

Jacob R Points 3370

Une commande utile d'avoir dans votre .vimrc est - set pastetoggle=<F10> ou de quelque autre bouton pour basculer facilement entre la pâte et nopaste.

149voto

thegeek Points 1125

J'utilise habituellement :r! cat puis collez - ( shift + insert ) le contenu, et CTRL+D.

Pas besoin d'activer et de désactiver, de l'utilisation directe.

99voto

thomasrutter Points 42905

Si vous travaillez en local, vous pouvez coller à partir du presse-papiers du système avec la séquence de touches:

"+p

C'est un véritable commandes de vim, donc pas besoin de s'inquiéter à propos de la saisie d'un mode d'insertion ou de coupure d'indentation automatique en premier.

Bien sûr, si vous travaillez à distance (console via SSH, par exemple), alors cela ne fonctionnera pas et vous devriez aller de l' :set noai, le mode d'insertion, collez-le dans la console, laissez insertmode, :set ai route comme décrit ailleurs.

40voto

maniacalrobot Points 356

Les utilisateurs de Mac peuvent éviter automatique mise en forme par la lecture directement à partir de la table de montage avec:

:r !pbpaste

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X