Comment faire avancer une grande section de code Python d'un onglet sous vim ?
伊谢尔伦
伊谢尔伦 2017-05-16 16:41:40
0
11
1661

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 ?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(11)
漂亮男人

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

set paste

Collez le code puis désactivez le mode coller

set nopaste

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

1 //在这里按下'v'进入选择模式
1
1
1
1
1
1//光标移动到这里,再按一次大于号'>'缩进一次,按'6>'缩进六次,按'<'回缩。以下同理
function helo{//将光标移动到'{',在按下'%',光标将会移动到匹配的括号

//这里省略1000行

}//光标会移动到这里,再按一次大于号'>'就可以缩进
phpcn_u1582

: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 :h 'paste'

pour plus de détails
左手右手慢动作

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!

Peter_Zhu

Définissez différents onglets de python dans vimrc, par exemple :

autocmd FileType python set ts=4 | set sw=4 | set expandtab    

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.

vimlvnoremap <tab> >gv
vnoremap <s-tab> <gv

Prenons la question du sujet comme exemple.

  1. Passer à la première ligne de la zone cible
  2. Entrez v pour accéder au mode de sélection
  3. Entrez 100j pour descendre de 100 lignes. À ce moment, la zone cible de 100 lignes a été sélectionnée
  4. .
  5. Entrez la touche <

Fin~

漂亮男人

Fournissez une autre méthode sans entrer en mode V.

  1. Passe à la première ligne qui doit être traitée, ma

  2. Passer à la dernière ligne à traiter, <'a

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal