J'ai collé une grande section de code python sous vim, mais à partir d'une certaine ligne, tout a été reculé par un onglet supplémentaire. Il y avait plus de 100 lignes, je les ai ajustées manuellement une par une, et j'étais épuisé.
Y a-t-il un moyen de rendre les choses plus faciles ?
Dans vim, il est préférable d'entrer en mode coller avant de coller le code, afin que l'indentation automatique soit désactivée
Collez le code puis désactivez le mode coller
Indentez une seule ligne de code avec deux signes supérieurs à '>>'
La rétraction est deux de moins que les signes '<<'
Si vous souhaitez mettre en retrait plusieurs lignes de code, procédez comme suit
:10,100>
第10行至第100行缩进
:20,80<
Les lignes 20 à 80 sont anti-retrait
En mode normal, le curseur est sur la ligne de départ à traiter, puis : 100>>
1,^V devant la ligne qui doit être mise en retrait
; 2,je;
3. onglet
1 Appuyez sur Echap pour passer en mode ligne de commande
2 Déplacez le curseur sur la ligne de départ qui doit être traitée
3 Appuyez sur v pour passer en mode affichage et sélectionnez toutes les lignes à traiter
4 Appuyez sur Ctrl+<C'est tout
Soyez prudent lorsque vous collez dans Vim, si Vim ne peut pas savoir que vous collez (version non graphique, la prise en charge de la souris n'est pas activée dans le terminal ou le terminal lui-même ne prend pas en charge la souris, car Vim n'a pas de presse-papiers X prend en charge et contourne Vim, utilisez la touche Shift qui permet au terminal de coller directement (par exemple, lors du collage dans Vim en ssh, généralement Vim ne peut pas accéder au presse-papiers local, il ne peut donc que laisser le terminal "taper"), alors vous vous devez définir l'option « Coller » avant de coller. Cette option désactive l'indentation automatique, le mappage, etc. en mode insertion. Voir
pour plus de détails:h 'paste'
Vous pouvez jouer comme ceci :
Si vous devez supprimer une tabulation de la ligne 10 à la ligne 100, vous pouvez écrire comme ceci
:10,100s/^t//
C'est OK!
Définissez différents onglets de python dans vimrc, par exemple :
Puis en mode normal, entrez directement
.=nj
n est le nombre de lignes requises pour être automatiquement alignées. Même si l'indentation est compliquée, elle sera automatiquement alignée
Les commandes fournies par vim ci-dessous sont très flexibles, mais elles sont de trop bas niveau. À l'heure actuelle, toutes les réponses données par les répondants sont saisies en dur, ce qui est difficile à mémoriser et inefficace. Il est recommandé de les définir comme touches de raccourci.
Par exemple, j'ai l'habitude d'utiliser l'onglet, de sélectionner la zone cible et d'appuyer sur la touche de raccourci.
Prenons la question du sujet comme exemple.
Fin~
Fournissez une autre méthode sans entrer en mode V.
Passe à la première ligne qui doit être traitée, ma
Passer à la dernière ligne à traiter, <'a