J'essaie d'utiliser Vim de plus en plus quand je peux. L'une de mes plus grandes faiblesses entre Vim et un IDE comme Aptana est la capacité d'indentation automatique.
Existe-t-il un moyen de code de formatage automatique (HTML, CSS, PHP) pour qu’il soit correctement mis en retrait?
Si oui, comment l'installez-vous dans vim? Je ne comprends pas beaucoup les plugins. J'ai essayé de réviser ce fil et cela m'a encore plus dérouté: Comment changer le comportement d'indentation automatique de vim?
Réponses:
Pour mettre automatiquement le fichier entier en retrait:
A expliqué:
gg
- aller au début du fichierG
- aller à la fin du fichier=
- tiretla source
gg=G
depuis un shell sans ouvrir le fichier?Je ne sais pas si le code existant est automatiquement mis en forme, mais si vous écrivez du code et avez besoin d'indentation automatique:
:set autoindent
(ou:set ai
) activera le retrait automatique:set tabwidth=4
(ou:set tw=4
) contrôlera combien d'espaces un onglet doit indenter le code>>
commande indente la ligne en cours. Si vous le préfixez par un nombre, disons4>>
qu'il indentera 4 lignes, en commençant par la ligne actuelle.<<
commande va indenter une ligneJ'espère que cela vous donne un bon départ.
la source
={motion}
en mode normal. Par exemple=G
, indenter tout le code de la ligne en cours jusqu'à la fin du fichier.==
va indenter la ligne actuelle.:filetype indent on
Retrait automatique
*.sh
Ajoutez simplement les lignes suivantes dans
~/.vimrc
la source
~./vimrc
applicable uniquement pour l'éditeur vim.Ce plugin facilite la mise en forme de votre code. Il intègre des formateurs externes et offre un repli sur la fonctionnalité d'indentation de vim.
https://github.com/Chiel92/vim-autoformat
Notez également la différence entre le formatage et l'indentation. L'indentation ne corrige que les espaces avant chaque ligne, tandis que le formatage traite également de tout autre élément, comme l'espace autour des opérateurs, etc.
la source
Créez / modifiez le
~/.vimrc
fichier et ajoutez la ligne suivante:la source
:set autoindent
ce qui active le retrait automatique uniquement pour le fichier en cours. L'ajouter dans le.vimrc
fichier active l'indentation automatique de manière permanente.En bash je fais ceci:
cela élimine les commentaires et réindente le script "bash way". cela ne fonctionnera pas si le script contient HEREDOCS mais si vous procédez comme suit:
cela fonctionnera avec n'importe quel script mais le script entier sera en retrait de 4 espaces. n'hésitez pas à modifier mais citez mon nom dans votre script et postez-le! :RÉ
la source
sed
si vous le souhaitez:cat script_to_be_reindented.sh | sed 's#^# #g'
(euh, eh bien, est SO démarquage remplacer les espaces par un onglet, mais vous obtenez le point)l'autoformat / indent de vim fonctionne plutôt bien. Tout d'abord, mettez cette ligne dans votre
~/.vimrc
:Puis ouvrez un fichier dans vim et tapez
gg=G
(
gg
déplace le curseur sur la première ligne.=
exécute la commande indent.G
indique à la commande indent de s’exécuter d’ici à la dernière ligne.)Si la mise en forme automatique semble vraiment mauvaise, comme si chaque ligne était laissée en retrait, lancez-la
:scriptnames
et vérifiez si.../indent/html.vim
(ou quelle que soit la langue que vous utilisez) figure dans la liste. Si non, alors assurez-vous que votre~/.vimrc
est correct. Ou si vous avez exécuté:filetype plugin indent on
la ligne de commande vim, vous devrez rouvrir le fichier.:e
la source