Maison > Questions et réponses > le corps du texte
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 ?
漂亮男人2017-05-16 16:43:40
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_u15822017-05-16 16:43:40
:10,100>
第10行至第100行缩进:20,80<
Les lignes 20 à 80 sont anti-retrait
滿天的星座2017-05-16 16:43:40
En mode normal, le curseur est sur la ligne de départ à traiter, puis : 100>>
曾经蜡笔没有小新2017-05-16 16:43:40
1,^V devant la ligne qui doit être mise en retrait
;
2,je;
3. onglet
世界只因有你2017-05-16 16:43:40
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
PHP中文网2017-05-16 16:43:40
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'
ringa_lee2017-05-16 16:43:40
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!
天蓬老师2017-05-16 16:43:40
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
给我你的怀抱2017-05-16 16:43:40
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.
viml
vnoremap <tab> >gv vnoremap <s-tab> <gv
Prenons la question du sujet comme exemple.
Fin~
漂亮男人2017-05-16 16:43:40
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