web-dev-qa-db-fra.com

Pourquoi Emacs/Vim/Textmate? Xcode n'est-il pas assez bon?

Bonjour, je fais principalement de la programmation C++, Objective-C. Et j'ai trouvé Xcode plus un plugin d'achèvement automatique/macro (Completion Dictionary) tout à fait adéquat.

Cependant, tous les gens semblent faire l'éloge de leurs éditeurs de texte purs. J'ai essayé Textmate pendant un moment; a aimé sa simplicité mais n'aime pas sa gestion de fichiers/framework.

Est-ce que j'ai râté quelque chose? Ou, est-ce que Vim ou Emacs ont l'auto-complétion aussi bien que Xcode? 

58
ivanTheTerrible

Tire une chaise, laisse-moi parler de ça.

Bien avant l'ère Xcode, il y avait VIM et Emacs. Je sais que c'est difficile à imaginer, mais c'est vrai.

Beaucoup de gens se sont habitués à VIM/Emacs et continuent donc à l'utiliser.

Emacs est extrêmement personnalisable et offre à peu près tout ce que vous pouvez imaginer (y compris un shrink intégré et les tours de hanoi). Vous pouvez facilement appeler les compilateurs à partir d’Emacs et créer vos propres extensions selon vos besoins.

VIM a un moteur de regex incroyable (tout comme Emacs) et est très pratique car (VI) est fourni avec à peu près tous les systèmes d’exploitation Unix, et fonctionne à merveille si vous n’avez pas de touches de direction (ouais, vraiment vieille école). Les gens savent très bien utiliser les touches pour parcourir les documents sans avoir à utiliser la souris. 

La même chose est vraie avec Emacs également, mais pour moi, je trouve le mouvement du curseur beaucoup plus facile avec VIM.

La guerre des éditeurs de texte est alimentée avec autant de fanatisme religieux que la guerre Mac vs PC, et la réponse est de choisir le meilleur qui vous convient. Si vous aimez Xcode, c'est bon, continuez à l'utiliser, mais bonne chance si vous êtes obligé de travailler sur un ordinateur ou sous Linux. Personnellement, j'utilise Emacs pour coder, VIM pour manipuler du texte et Firefox pour regarder des lolcats.

183
Alan

Je ne comprends vraiment pas pourquoi les assistants emacs se mobilisent lorsque les gens parlent d'éditeurs de texte. D'après mon expérience, cela ressemble plus à Eclipse (ou à l'une de ces autres plates-formes/IDE) qu'à vi car c'est est un environment, ce qui s'avère être bon pour l'édition de texte.

En tant que IDE, emacs propose le contrôle de version, la compilation en direct, la vérification orthographique, la complétion automatique, le débogage, la navigation dans le code, etc. Pour le reste de vos besoins informatiques, il s'agit d'un client email, news, web, irc, Twitter, xmmp, agenda, agenda, calculatrice, émulateur de terminal, édition à distance, feuilles de calcul, jeux, etc., etc.

Après Dijkstra: "Emacs n'est pas plus un éditeur de texte que l'astronomie est un télescope"

15
remvee

Ce qui vous manque, c'est qu'Emacs et Vim sont en réalité des IDE. 

11
Svante

vi est omniprésent sur les systèmes UNIX, et Emacs presque. Autant que je sache, Xcode est sur une plate-forme.

Avoir une centrale électrique IDE est une bonne chose, mais tout le monde devrait avoir quelques compétences pour le garder fonctionnel sur toutes les plates-formes où il pourrait être utilisé.

8
dcw

Tout dépend de vos préférences .

Certaines personnes aiment travailler avec des texteditors légers comme (g) vim, emacs, pico, etc. . D'autres aiment travailler avec des IDE tels que MS Visual Studio, Eclipse, Xcode .

Tant que votre environnement est compatible avec la technologie d’édition de texte, tout dépend de vous .

Au fait, j'aime bien travailler avec Eclipse et vim car ils sont ce que j'avais appris à programmer;)

5
codingbear

La principale raison pour laquelle vous semblez penser que des gens comme Emacs/Vim est l’achèvement du code. Les gens comme Emacs/Vim parce qu’ils sont tous deux MADE pour éditer du texte. Vous disposez d'un contrôle et d'options à la disposition des autres éditeurs. Une fois que vous avez vraiment réussi à utiliser l’un de ces programmes, vous voulez que ces raccourcis clavier/commandes soient disponibles partout. Les macros, les expressions régulières, les déplacements par recherche/mot/paragraphe/fonction, l’interfaçage avec le contrôle de version, les fonctions complexes annuler/rétablir et copier/coller et les options d’extension ne sont que quelques-unes des choses que ces éditeurs font vraiment bien.

La complétion de code n'est que l'un des nombreux éléments qui peuvent faciliter la rédaction de programmes. Emacs/Vim peut les traiter TOUTES (nativement ou par extension).

4
user151339

Non, pas vraiment. C'est une question de préférence vraiment. J'aimais travailler dans Visual Studio 6, mais de nos jours, les nouvelles versions sont trop lourdes. Donc, si je peux faire quelque chose en dehors de VS, je le fais généralement sans ouvrir toute la boîte IDE.

Sur les fenêtres, j'aime notepad2 et gvim. J'ai personnalisé vim au point de répondre parfaitement à mes besoins, je n'ai donc pas à penser à quoi ni à quoi.

Mais, il est bon de mentionner que (vous pouvez également le constater vous-même en lisant ces messages), de nombreux utilisateurs utilisent vim/emacs/... utilisabilité réelle. Donc, si cela ne vous convient pas, ne l'utilisez pas. Personne ne va te regarder dans le mauvais sens à cause de ça.

3
Rook

Pour moi la plupart des deux caractéristiques les plus importantes sont:

  • Les raccourcis clavier Emacs, car c’est ce à quoi mes doigts sont compatibles.

  • Open-source, pour la liberté qu'il procure. Être lié à une plate-forme est un anathème.

Ces jours-ci, j'utilise principalement Eclipse pour la programmation (paramétré sur Emacs) et FSF Emacs pour la lecture de courrier électronique et quelques LaTeX occasionnels.

3
starblue

Personnellement, j'adore Emacs. J'ai utilisé vim et une poignée d'IDE. Vim et emacs ont tous les deux d'excellentes communautés où les gens sont prêts à coder des fonctionnalités pour presque toutes les langues. Je ne connais aucun IDE qui, par exemple, soutienne Haskell. Tout dépend de ce qui est important pour vous. Les deux ont des langages d’extension, bien que IMO, emacs LISP soit le meilleur des deux. La possibilité d'ignorer la souris est la principale chose que j'aime aussi. De nombreux IDE proposent également des modes ou des extensions de compatibilité emacs et vim. Ils investissent tous les deux beaucoup de temps, mais les deux le valent bien. Tôt ou tard, vous choisirez celle qui vous convient le mieux, vim/emacs/IDE, puis vous vous attacherez à améliorer vos compétences.

3
Ron

Lorsque vous utilisez Emacs, vous pouvez installer Cedet ou le paquet Autocomplete pour utiliser la complétion de noms dans certaines langues (C++ est plutôt bon, alors que Obj-C n’est toujours pas pris en charge), en plus des fonctionnalités riches d’éditeur.

2
Alex Ott

emacs est puissant. J'utilise emacs avec vimpluse.el pour pouvoir utiliser les raccourcis vim avec toutes les fonctionnalités d'emacs.

2
pscyehao

J'utilise principalement Vim pour le modèle d'entrée. Une fois que vous avez maîtrisé le modèle de saisie, revenir à un éditeur où vous êtes obligé d'utiliser une souris est lourd et finalement (au moins pour moi) irritant. Il est beaucoup plus efficace de taper "ci" pour modifier tout le texte entre deux guillemets, puis vous détachez de la rangée de base, recherchez et sélectionnez le texte avec la souris, puis cliquez sur "supprimer".

J'ai brièvement utilisé Emacs et, même si je préfère Vim, je suis jaloux de certaines de ses fonctionnalités. Mais je suis finalement allé avec Vim parce que je trouvais le modèle d’entrée d’accord utilisé par Emacs pour exercer une pression inutile sur mes doigts.

1
FlemishBeeCycle

J'ai Xcode et TextMate et je ne les utilise pas bien que je sache qu'ils peuvent être très puissants. Au lieu de cela, j'utilise Vim (ou MacVim si vous préférez). Pourquoi ? 

Parce que c'est léger, rapide, addictif, puissant, personnalisable .... Je pourrais continuer comme ça pendant longtemps, mais le plus important est que je puisse faire tout ce que je veux avec Vim. 

Quel que soit l'éditeur que vous utilisiez, le meilleur éditeur est celui que vous maîtrisez (presque) parfaitement.

1
Taurus Olson

Je n'utilise pas vi pour faire mon codage; Cependant, lorsque cela est disponible, j'utilise l'émulation vi dans mes éditeurs. Lorsque je fais du codage Java dans IntelliJ, j'utilise le plug-in IdeaVIM qui me permet de prendre en charge vi dans l'éditeur d'IntelliJ. Cela signifie que je n'ai presque jamais besoin de retirer mes doigts de la ligne d'arrivée. Je navigue avec le clavier (h, j, k, l), coupe/colle avec yy, jj, etc. Et bien sûr, quand j’ai besoin de la puissance d’une fonctionnalité complète, l’émulation de l’éditeur GUI vi ne m’empêche pas de les utiliser fonctionnalités.

Cela me rend fou que XCode n'a pas d'émulation vi dans son éditeur. On dirait que les fonctionnalités que tout bon IDE devraient avoir.

1
Michael Parmeley

TextMate me semble plus léger. Du haut de ma tête:

  1. Il est très utile pour passer d’un fichier à l’autre et d’une méthode à l’autre. Pensez Quicksilver pour les fichiers/méthodes. Avec un fichier ouvert pour modification, appuyez sur commande-shift-t pour afficher un panneau flottant répertoriant toutes les méthodes du fichier. Commencez à taper et la liste se filtre. Sélectionnez la méthode que vous souhaitez et appuyez sur Entrée pour y accéder. Xcode a quelque chose comme ceci mais la correspondance de piqûre est plus littérale.

  2. Beaucoup de développement de texte intégré. Tapez un déclencheur et appuyez sur l'onglet pour l'élargir. Par exemple, sur une nouvelle ligne, taper m puis cliquer sur onglet crée une méthode pour vous. La touche de tabulation permet alors de passer intelligemment aux différentes parties du texte inséré afin que vous puissiez les éditer. Ce sont des gains de temps si énormes que c'est ridicule.

  3. Support des plugins sympas pour Subversion et Git. Probablement d'autres VCS aussi.

  4. Complétions (comme Xcode) et historique. TextMate vous permet de compléter fondamentalement tout texte existant dans le fichier. Ainsi, une fois que vous avez saisi un nom de variable ou un appel de méthode une fois, vous pouvez utiliser la touche tabulation pour le compléter automatiquement n’importe où dans le même fichier.

  5. Smart board passé avec historique, Nice intégré dans les différences, support de thème, bon support de clavier, recherche dans les fichiers et à travers des projets (avec RegEx) et probablement plus que je ne le pense.

En tout cas, ça me suffit.

1
Kevin

Je suis un utilisateur de vim de longue date et trouve que j'aime vraiment éditer Komodo avec l'émulation Vim activée. Ainsi, je bénéficie de toutes les commodités des raccourcis clavier vim (auxquels je me suis habitué tellement qu'un récent document MS Word que je produisais récemment ne contenait pas moins de trois ": w") plus la complétion de code bien implémentée C++, Python, javascript, etc.

Je n'utilise pas XCode car je ne développe pas beaucoup d'applications spécifiques à OS X et, par conséquent, les avantages de l'intégration de la structure OS X ne sont pas assez importants pour compenser le coût de l'absence de liaisons de clé vim ou pas du tout "approche adoptée par Apple pour le développement. 

1
Sobo

J'ai essayé vim il y a longtemps et pour une raison ou une autre "je ne l'ai pas eu". Puis, après avoir essayé d’autres éditeurs au fil des années, j’ai atteint un point où aucun éditeur ne semblait faire ce que je voulais. Après avoir exprimé ma frustration à un ami, il m'a recommandé d'essayer vim ... et je suis si heureux d'avoir pris un autre regard, car c'était la réponse à une question que je ne savais pas comment poser! J'ai utilisé Vim/MacVim depuis ...

voici ma configuration: https://github.com/RandyMcMillan/QuickVim

J'utilise aussi Xcode parce que c'est bien d'avoir du code complet. XVim convient aux personnes qui souhaitent une sensation modale/vim dans l'éditeur Xcode: https://github.com/JugglerShu/XVim

Mais quand il s'agit de l'édition quotidienne, Vim gagne à chaque fois. C’est pourquoi j’ai le repo QuickVim afin de pouvoir rapidement reproduire mon environnement, à tout moment et n’importe où.

J'ai une liste de licences pour des éditeurs tels que TextMate, etc., mais il est probable que je ne les utiliserai jamais car je peux utiliser vim gratuitement et le personnaliser selon mes spécifications exactes. 

0
RandyMcMillan

Xcode est plus un IDE, alors que emacs et vi sont pour du texte pur (bien qu’ils aient des extensions énormes). Ceci est préférable si vous utilisez un système plus ancien ou un système SSH. En outre, ils sont quasiment installés sur tous les ordinateurs UNIX, alors que XCode est un logiciel propriétaire Apple.

0
samoz

Vous pouvez jeter un oeil à mon essai sur le sujet Pourquoi Emacs? . Bien qu’il soit plus ou moins centré sur Emacs, certains des points qui y sont exposés s’appliquent également à vim et à TextMate.

0
Bozhidar Batsov

Personnellement, j'adore TextMate, car c'est en fait une solution très légère. Certes, je n'ai pas utilisé Vim ou Emacs en profondeur (j'aime bien mes interfaces graphiques) ... bien que j'apprécie vraiment la navigation par curseur basée sur Control (Control-A est le début de la ligne, Control-E est la fin de la ligne, Control- F et Control-B sont en avant et en arrière, etc.). Donc, entre Xcode et TextMate, j'utilise Xcode pour l'essentiel de mon développement sérieux, mais si je dois juste éditer rapidement un fichier source, je peux être en mesure de coder avant même que Xcode ait fini de se lancer (cela aide en outre que TextMate puisse se souvenir des fichiers précédemment ouverts et les restaurer). Donc, pour une édition de texte légère, TextMate est mon choix. 

Au-dessus, le support de plug-in de TextMate est incroyable. il fournit un support complet (coloration, construction et exécution de la syntaxe, etc.) pour une multitude de choses différentes (scripts Shell, CSS, SQL, LaTeX et bien plus encore) que Xcode ne fournit pas. Quand j'ai besoin de rafraîchir un programme rapide en Java ou de modifier une page Web, c'est beaucoup plus facile que d'utiliser Vim puis de construire à partir du terminal. 

Mon seul problème avec TextMate est que la console est en lecture seule, je ne peux donc rien construire d’interactif. Cela, et le fait qu'il ne semble pas prendre en charge les mots-clés C99 (pour les boucles et les booléens) dans un fichier plain-C. 

0
FeifanZ

Utilisateur lourd de Vim ici. Je trouve généralement que la capacité de manipulation de texte de Vi/Vim est de loin supérieure à celle des éditeurs traditionnels qui manquent de choses comme:

  • mode visuel: par exemple préfixant 5 lignes avec un commentaire //
  • macros: par exemple entourez les 3ème à 5ème mots d'une ligne avec des guillemets, répétez l'opération pour 100 lignes
  • registres multiples: pensez à 36 registres à copier et coller
  • supprimer {motion}: par exemple supprimer du curseur jusqu'à la prochaine occurrence de 'initWithFrame'

Ce ne sont là que quelques exemples de ce que Vim a vu l'édition de texte XCode battre haut la main

Pour Objective-C. J'ai tendance à installer un plug-in Vim sur IDE pour obtenir le meilleur des deux mondes: prise en charge des composants de génération/interface utilisateur natifs.

Incidemment. Les liaisons de clavier Emac (par exemple, CTRL-A pour aller au début de la ligne) sont prises en charge dans de nombreux champs de texte natifs (Coacoa) sur Mac. Y compris celui que vous utilisez pour taper les réponses sur stackoverflow: D

XVim fonctionne avec XCode. IdeaVim pour AppCode

0
snowbound