Il est très facile de définir un éditeur de texte pour utiliser des espaces ou des caractères de tabulation à chaque pression sur la touche de tabulation. Cependant, je travaille avec une poignée de code Python maintenu par une grande équipe de développeurs dans mon entreprise, et certains utilisent des espaces et certains utilisent des onglets. Je ne peux pas simplement les rendre tous conformes les uns aux autres, parce que 1) ça briserait le git blit, 2) ça gâcherait git diff, et 3) ça casserait inévitablement la construction la prochaine fois qu'un autre éditeur frappe sa touche tab dans l'un des des dossiers. Au lieu de cela, je voudrais un éditeur de texte qui détermine automatiquement si un fichier est indenté par des espaces ou des onglets, puis se conforme à la mise en page existante. Est-ce que quelqu'un sait si quelque chose comme ça existe?Existe-t-il un éditeur de texte qui déterminera automatiquement s'il faut mettre en retrait avec des espaces ou des tabulations?
Répondre
Sublime Text fait cela.
Essayez maintenant, merci. –
Affichage -> Indentation -> Configurer les paramètres du tampon –
C'est de loin le meilleur éditeur de texte que j'ai utilisé sous Windows. Merci pour le conseil! –
TextMate pour le Mac fait cela.
Je suis sûr qu'il existe des scripts pour vim et emacs.
Est-ce encore valide avec les 2 dernières versions? Si oui, comment est-il fait? – kainjow
Je ne sais pas malheureusement. J'ai écrit cette réponse il y a 7 ans et une rapide recherche google m'a montré quelques résultats qui pourraient même montrer que ma réponse était fausse, à savoir que TextMate ne détecte pas automatiquement les onglets mous. –
J'ai contacté le support TextMate et ce n'est pas possible avec la version 2 actuelle. – kainjow
Je pense que Geany (http://www.geany.org/) a cette option dans les préférences, si vous utilisez Linux.
Il a cette option: http://www.geany.org/manual/current/index.html#indentation Merci. Je cherchais un éditeur de texte décent pour ma machine Linux. – rtperson
Nice, maintenant nous avons pour chaque plate-forme un éditeur. :) –
Il dispose également d'un installateur Windows: http://www.geany.org/Download/Releases – rtperson
Vous pouvez le faire dans vim. Cette fonction de codeblog montre comment détecter la mise en forme courante pour un fichier, et définissez vos paramètres par défaut pour correspondre:
function Kees_settabs()
if len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^\\t"')) > len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^ "'))
set noet ts=8 sw=8
endif
endfunction
autocmd BufReadPost * call Kees_settabs()
Personnellement, je voudrais juste faire le tour avec un deux par quatre et donner tout développeur en utilisant les onglets un quelques wacks sur la tête.
vim peut faire ce que vous voulez. vim peut faire presque n'importe quoi.
Voici une excellente recette pour la personnalisation vim pour Python: http://henry.precheur.org/2008/4/18/Indenting_Python_with_VIM.html
EDIT: En fait, je viens juste joué avec cela, et est ici un moyen simple de le faire. Ajoutez ces deux lignes à votre fichier de paramètres vim:
filetype on
autocmd FileType python set smarttab expandtab
Pour Emacs, il y a guess-style.
Pensez sérieusement à définir un standard à l'échelle de l'entreprise (espaces uniquement). Vous vous préparez pour des problèmes. Comme le code ne fonctionne pas, il est très difficile de résoudre les problèmes parce que soudainement un bloc IF aléatoire est en attente .... mais semble correct pour les yeux et l'analyseur. –
Je ne pourrais pas être plus d'accord avec vous, et c'est quelque chose que je poursuis. J'ai juste besoin d'une solution de contournement pendant ce temps. –
Je n'ai jamais appris Python, mais je pense que ce serait un énorme problème. Haskell partage le concept d'espaces blancs significatifs de Python, et son compilateur se débat comme une baleine échouée si vous avez des onglets dans votre code. – rtperson