it-swarm-eu.dev

Je čas odhodit Emacse a vi?

Pokaždé, když hledáte textový editor, bez ohledu na to, jaký jazyk používáte, vi a Emacs jsou síň famers.

Jsou však starověcí a máme lepší alternativy (alespoň doufám, že ano).

Proč vývojáři uvízli na těchto dvou editorech? Neměli bychom je upustit a pokusit se vymyslet nebo hledat něco nového?

(plně respektuji fanoušky Emacsu a vi).

40
Chiron

Hlavní důvody, proč preferuji editor založený na terminálu před plnohodnotným IDE:

  • Vzdálený přístup. Mohu ssh na jakýkoli počítač, na kterém musím být zapnutý, zapálit Vima a začít pracovat dál. Každodenní použití relace screen a Vim umožňuje snadný přístup z libovolného místa.
  • Klávesové zkratky. Existuje tolik úhozů kláves, jakmile můžete slušně využívat Emacs nebo Vim. Pohyb rukou mezi klávesnicí a myší mě obtěžuje ...

IDE jsou pěkné, když v rámci vašeho projektu hodí třídy, ale pro mě je moje produktivita řádově vyšší pomocí Vim.

82
J.K.

Programátoři jsou proslulí tím, že používají nástroje, které jim pomáhají dělat práci co nejefektivnějším způsobem. Tito editoři jsou prastarí, ale stále se používají, protože jsou dobří, solidní editoři, prokázaní časem. Pokud udělají práci a udělají práci dobře, proč bychom je měli upustit ve prospěch něčeho jiného?

66
Michelle Tilley

Předpokládáte, že se nevyvíjejí. Emacs stále roste mílovými kroky; a zatímco vi byl jaksi chraplavý, Vim ho omladil a pokud něco roste (přinejmenším funkčně) rychleji než Emacs.

Ale když na to přijde, je to to, s čím v této záležitosti nejlépe pracujete. Pokud jste v Eclipse nejproduktivnější, více energie pro vás. Stejné, pokud dáváte přednost Vimovi.

57
geekosaur

Mnoho (nejvíce?) Nejlepších programátorů, které znám, pohrdají IDE a spoléhají se pouze na Emacs. Nejsem úplně tak tvrdohlavý a používám Eclipse i Emacs, ale existuje několik důvodů, proč bych raději Emacs používal:

  • Konzistentní zkušenost s jakýmkoli jazykem - Podpora v Eclipse pro některé z novějších jazyků (Scala, Clojure atd.) Je přinejlepším nekonzistentní a v nejhorším případě podobná . Autoři pluginů se těžce snaží vylepšit zážitek, ale často se setkávám s malými věcmi, které se cítí dobře. Jistě můžete vždy přejít na jiný IDE, který má lepší podporu pro tento konkrétní jazyk, ale teď jste žonglování IDE. Nikdy jsem se tak necítil při práci v Emacsu.

  • Nelíbí se mi IDE "magic" - - IDE mají tendenci dělat spoustu věcí automaticky ve jménu pohodlí. je skvělé ... dokud se něco nerozbije. Pak to může být frustrující nebo dokonce zneklidňující proces, jak věci vrátit zpět na trať.

Společně jsem si pohrával s myšlenkou přechodu na Redcar editor . Je rozšiřitelný jako Emacs, ale místo Emacs LISP používáte JRuby . Je to lehký a rozhodně nejde o plné IDE. Pokud jste v TextMate , je to kompatibilní s balíčky TextMate, ale má to výhodu, že je volný a otevřený zdroj. Rozhodně nástroj, který stojí za to se odhlásit, zejména pro vývojáře Ruby).

40
dbyrne

neměli bychom je upustit a pokusit se vymyslet nebo hledat něco nového?

tl; dr: Mnoho lidí se nechce učit nového editora

Úplná odpověď:

Průvodce unixem slyší výkřiky mučení z počítačové učebny učně, kde učeň studuje, a zkoumá.

Zjistí, že učeň je ve zjevné nouzi, téměř na pokraji slz. "Co je za problém?" ptá se. "Proč jsi volal?"

"Je to hrozné používat tento systém. Musím používat čtyři editory každý den, abych dokončil studium, protože žádný z nich nedělá všechno."

Čaroděj přikývne a zeptá se: „A co bys navrhl, aby to vyřešilo toto zjevné dilema?“

Student pečlivě přemýšlí několik minut a jeho tvář se pak rozkošně rozzáří. S potěšením říká: „No, je to zřejmé. Napíšu nejlepšího editora všech dob. Udělá vše, co stávající čtyři editoři dělají, ale vykonávají svou práci lépe a rychleji. A díky mému novému editoru bude svět lepší místo."

Čaroděj rychle zvedne ruku a udeří učně na stranu jeho hlavy. Čaroděj je starý a křehký a učeň není fyzicky zraněn, ale je šokován tím, co se stalo. Obrátí hlavu k kouzelníkovi. "Co jsem udělal špatně?" ptá se.

"Blázen!" říká čaroděj. "Myslíš si, že se chci naučit ještě dalšího editora?"

Okamžitě je učeň osvícen. http://neugierig.org/content/unix/

27
Hery

Myslím, že IDE (Visual Studio, Eclipse, IntelliJ) jsou způsobilé vyřešit jinou třídu problémů, než ty, které řešíte emacs/Vim.

Když máte velkou platformu pro kódování, se spoustou knihoven a vysokou integrací mezi všemi prvky (zvuky jako Microsoft), IDE prokáže, že to stojí za to. Někteří to budou označovat jako „lepení knihoven dohromady“ a nepředpokládají, že se jedná o „skutečný kód“. Pomůže vám to však při včasném zachycení chyb (tak, jak to Emacs nedokáže).

Když vyvíjíte aplikace koncového uživatele pro (řekněme) Android, můžete můžete to ve skutečnosti udělat bez Eclipse. Se všemi druhy souborů, které je třeba přidat před nasazením, vám Eclipse pomůže při automatizaci těchto úkolů.

Takže pokud jste vývojář aplikací pracující pouze na jedné platformě se spoustou knihoven (vyvíjení aplikací třídy Enterprise v Java EE, .NET atd.), IDE bude „ zlepšení “ve vašem pracovním postupu. Jakmile však budete muset pravidelně pracovat v terminálovém prostředí (například na Unixových serverech) nebo pokud používáte mnoho různých jazyků, No IDE nemůže měřit proti vlastnostem Vim/emacs.

Poslední věcí je, že práce s Vim/emacs vás nutí porozumět alespoň trochu platformě/jazyku před použitím. Mnoho IDE vám umožňuje pracovat v jazyce, aniž byste věděli, co se děje; takže použití Vim/emacs vás přinutí získat nějaký přehled o tom, co opravdu děláte.

19
vstrien

V průběhu zhruba 40 let práce na počítači jsem jako student a odborník používal nejméně patnáct (15) různých editorů a IDE. Ze všech z nich byly emacs zdaleka nejlepší, tehdy i teď.

Nejprve trávím příliš mnoho času poskakováním mezi více soubory a více míst uvnitř jednotlivých souborů, abych měl dobré zkušenosti s jakýmkoli editorem, který mi odmítne dovolit, abych viděl více než jeden soubor najednou nebo více než dva najednou. Emacs je jediný editor nebo IDE Viděl jsem, že mi umožňuje vidět vše, co potřebuji najednou. (Před několika lety, při zkoumání starého systému, jsem měl obvykle osm (8) tabulí otevřených v emacs window. I dnes mám rutinně otevřené tři nebo čtyři tabule a někdy budu mít dvě nebo tři vyvolání emacs, protože potřebuji více nábojů a musím mezi nimi kopírovat a vkládat výsledky.)

Za druhé, jsem stále jen člověk a občas dělám chyby. Každý jiný editor, kterého jsem kdy použil, byl naprosto šťastný, že mě nechal střílet nohou, BEZ VAROVÁNÍ, bez schopnosti se zotavit, takže jsem nechtěl spáchat nevyslovitelně násilné a násilné činy proti autorovi GDPOS. (Ty, které mě přiměly, nebyly tak špatné, jako hrošík, který téměř nechal Charlesa Simonyiho lynčovat, když byl v Xerox PARC, než odešel do Microsoftu a způsobil maďarskou notaci na světě - akt, pro který je lynčování příliš měkké Emacs mi to nikdy neudělal; nikdy neodvolatelně nic nezničilo, aniž by mi dalo BIG varování. Když jsem byl v emacsu stále nový, občas jsem šel „Co se právě stalo?“ A vždy jsem zjistil, co jsem udělal za pár vteřin, a věděl jsem, jak jej opravit stejně rychle.

Neexistuje nic takového jako editor, který ve skutečnosti ZVYŠUJE produktivitu. To nejlepší, co můžete, je minimální snížení produktivity. Metrika je pro mě: „Jak špatné mě tato věc zpomaluje?“ Ve srovnání s emacsem, co se týče věcí, které normálně dělám, všechno ostatní je mnohem horší.

Moje POUZE zběsile s emacsem bylo, že to nebylo k dispozici pro Oberona, když jsem hrál s Oberonem před několika lety.

16
John R. Strohm

Kromě malého BASICu jsem se naučil programovat na Unixu. Filozofie Unixu má mít mnoho menších nástrojů, které vzájemně spolupracují, ale každá se zaměřuje na jednu práci a na to, aby ji dělala dobře. Proto je pro mě přirozené mít samostatný software pro editaci, kompilaci, řízení zdroje a ladění. Zajímavé je, že IDE jsou „integrovány“, ale stále nemůžete celou tuto funkci zapadnout do jednoho okna najednou, takže nakonec skončíte s věcmi, jako jsou perspektivy, kde stejně přepínáte režimy mezi těmito různými úkoly, i když s určitým překrýváním .

Mohl bych to otočit a zeptat se, proč lidé snášejí bolestivě pomalé úpravy bez vimů. Nejlepší způsob, jak mohu popsat pocit sledování někoho, kdo edituje kód, je ten, že se cítíte, jako když uvíznete za vozem, který je příliš pomalý 10 km/h, protože je na telefonu, nebo jako sledování relativně rychlého pisatele psů . Jdou dost rychle na to, aby svou práci dokončili, ale zároveň dostatečně pomalí, aby se zbláznili.

Mnoho lidí tvrdí, že tráví většinu času přemýšlením, takže o něco rychlejší úpravy nic nezmění. V takovém případě je psaní přerušením a několik dalších sekund editace může znamenat rozdíl mezi udržením vaší myšlenky nebo jejím opětovným získáním. Také, pokud jste dlouhodobý dotykový pisatel, víte, že vaše prsty píšou běžná slova, aniž byste si vědomi, které klávesy zasáhnout. Když jste dlouhodobým uživatelem vimu, přichází tento druh plynulosti pro věci, jako jsou pohybující se čáry a slova kolem. V době, kdy je třeba „smazat“ v „smazat ty 2 řádky“, to už moje prsty udělaly a moje koncentrace je zcela neporušená.

Vim je také velmi přizpůsobitelný a vaše nainstalované pluginy a vimrc se vyvíjí s vývojem vaší práce. Když se vám něco začne bránit, vyhledáte lepší způsob, jak to udělat, a začleníte to do své konfigurace nebo běžně používaných příkazů. Naučil jsem se vi v roce 1993 a stále se přizpůsobuji, když se moje potřeby změní. Právě tento týden jsem změnil dokončování názvu souboru na kartě tak, aby fungoval spíš jako bash, protože můj pracovní postup se v poslední době změnil na mnohem víc a výchozí chování se mi dostalo na nervy.

Také nesouhlasím s tím, že nestojí za čas se učit. Trvalo mi déle, než jsem se naučil dotykem psát, než abych se cítil produktivně ve vi, pro podobné zvýšení rychlosti editace kódu, ale nevidíte programátory stěžující si, jak dlouho trvalo naučit se dotykem psát. A můžete se učit vlastní rychlostí a přidávat nové příkazy do svého repertoáru, jak budete mít sklon. Pokud začnete s set im ve vašem vimrc (znamená insertmode, ale laskavě to nazývám idiotmode, když kolega potřebuje psát u mého stolu), možná si ani neuvědomujete, že používáte vim vůbec!

8
Karl Bielefeldt

Jsem uživatel Vim.

Musím používat IDE kvůli projektům, na kterých pracuji, to občas nemůžete obejít. Jsem docela schopný používat Code :: Blocks a Eclipse , nicméně, kdykoli je to možné, líbí se mi uživatelské rozhraní uvedených IDE, aby fungovaly jako rozhraní od Vim.

Mám vlastní barevné schéma pro Vim a chci, aby textové editory jiných IDE fungovaly přesně stejným způsobem.

Chtěl bych IDE, kterému chybí textový editor a kde mohu připojit editor, který chci. Nebylo by hezké, kdybych mohl zapojit svůj standardní Vim do Emacsu nebo kódu :: Bloky, ale mít kolem toho zbytek IDE?

Nějak to uniklo působnosti vývojářů IDE, ale tajně si to přeji téměř vždy, když budu používat pouze Vim a Makefiles pro větší projekty, nebo IDE a jeho těžkopádné textový editor.

8
polemon

Moje IDE = volba je Linux.) Heck, může spouštět další IDE, obsluhovat webové stránky, spouštět programy v různých jazycích a kombinováním věcí (potrubí) může spouštět programy, které byly psané v různých jazycích, jako by byly jedním. Ta věc je úžasná. Oh, a může se připojit k internetu a dělat s ním také nejrůznější zajímavé věci, včetně vytváření jiných verzí sebe sama.

Pokud už máte linux, neuspokojte se s IDE).

8

Emacs používám jako svůj primární editor. Jedinými dalšími editory, které jsem kdy považoval za vážně, byli vim a TextMate. IDE (a zkusil jsem pár včetně Eclipse) neměly funkce, které jsem potřeboval.

Vlastně jsem měl tento rozhovor s mojí spolupracovnicí ještě nedávno. Říkal mi, o kolik lepší IDE) jsou, když pomocí myši klikal na spoustu tlačítek a menu. To mě jen rozesmálo.

Vyzkouším jakýkoli editor s následujícími schopnostmi (které jsou rozhodující pro vývoj).

  • všechny příkazy lze provádět přizpůsobitelnými vazbami kláves
  • umožňuje vzdálené úpravy pomocí ssh (ano Emacs má vzdálené úpravy)
  • umožňuje vytvářet a znovu používat makro
  • pevně integrovaný programovací jazyk
  • kód a provést pomocí programovacího jazyka za běhu
  • těsná integrace s GBD a rodinou
  • vícejazyčné zvýraznění syntaxe ve stejné vyrovnávací paměti
  • automatické doplňování klíčových slov, proměnných, funkcí atd

Také mám sklon dělat meta programování, které často činí nástroje auto-refaktorů zbytečnými; v jedné oblasti, o které si myslím, že IDE mají sklon být dobrý.

6
dietbuddha

Byli vynalezeni jiní editoři s podobně bohatým dědictvím (a kontroverzí) a možná je to jen otázkou času, než přejdeme z nástrojů poprvé napsaných v 70. letech (vi/Emacs) na jeden z 80. let ( Sam) ) nebo dokonce jeden z 90. let ( Acme ).

„Sam je preferovaný textový editor mnoha významných počítačových vědců; nahradil ed jako oblíbený textový editor Ken Thompsona a stále jej používá dodnes. Sam je textový editor používaný Bjarne Stroustrupem a Brianem Kernighane. Ostatní, jako Dennis Ritchie, místo toho použili Acme. “ Tady je Sam článek z Wikipedie.

Ale co vím, stále používám Vima.

5
jtg

Jsem jediný člověk, který příležitostně používá ed?

(A pro ty lidi, kteří si myslí, že nadýmání kódu je relevantní ...

$ size /bin/ed 
   text    data     bss     dec     hex filename
  42160    2300       0   44460    adac /bin/ed
$ size /bin/vi
   text    data     bss     dec     hex filename
 692378   27796   13884  734058   b336a /bin/vi
$ size /usr/bin/emacs
   text    data     bss     dec     hex filename
2033257 4692020       0 6725277  669e9d /usr/bin/emacs

)


Další výhodou ed je, že jej můžete spustit na teletypu ... nebo na nejhloupější z hloupých terminálů.

4
Stephen C

Předpokládal jsem, že jsem zvláštní kachna, ale ve skutečnosti používám různé editory, v závislosti na situaci.

Vim:

Když jsem připojen (ssh'd) na vzdálený server (například při pohledu na protokoly) a chci rychle upravit soubor a udělat Tweak. Mnohem rychlejší než navigace do stejné složky (hostované SAN) z mého místního počítače.

Poznámkový blok ++:

O stejné situaci: na rychlou úpravu, ale tentokrát, když nechci čekat na načtení Eclipse (corporate IDE).

Eclipse:

Je to firemní IDE), kde pracuji. Máme několik interních pluginů, abychom mohli přímo spustit sestavení ze systému Eclipse na vzdáleném počítači ... a co je nejdůležitější, plugin pro lokalizaci knihoven vytvořené jinými týmy a s nimiž pracujeme (a replikujeme záhlaví v místní síti pro rychlé indexování). Protože mluvím o dobrých tisících knihoven ... je to opravdu užitečné;)

OpenGrok/Doxygen:

Více procházení kódu než vlastní vydání, ale stále velmi užitečné! Můj prohlížeč je nakonfigurován pro navigaci, takže je zde dobře použit.

Na závěr: Mám sklon používat jakýkoli editor, který mi umožňuje plnit úkol relativně snadno a slušně.

2
Matthieu M.

„Lepší“ je subjektivní slovo. Pokud jsem šťastný a produktivní pomocí textového editoru, kdo je X nebo Y nebo Z a řekl: „upustit a použít něco jiného“? Pokud je to podniková politika nebo taková, která z toho činí situaci nemožnou, pak nemáme na výběr.

2
Srisa

Raději bych snědl své vlastní ruce, než bych použil jednu z nich. Když jsem dělal C++, miloval jsem Visual Studio. Eclipse je meh. IntelliJ IDEA je vynikající. Miloval jsem také JBuilder , ale roky jsem ho nepoužíval.

1
Chuck Stephanski

Někdy budu pracovat na většinou holých systémech, kde jediným nainstalovaným editorem je vi. V takových případech to opravdu pomáhá znát alespoň základní příkazy vi.

vi a emacs jsou také velmi rozšiřitelné, natolik, že skutečně mohou být plně funkční IDE se správným množstvím pluginů. Pro mě mohu ve vi upravovat soubory mnohem rychleji, protože nemusím sundávat ruce z klávesnice, abych pohyboval myší. Má také funkce, které jsem v některých IDE neviděl (ačkoliv přiznávám, že jsem příliš nevypadal), například možnost editovat sloupce textu, ukládat více „rozříznutých“ slov do více vyrovnávacích pamětí pro vkládání atd.

Redaktoři se nějakou dobu učí, ale jsou také mocní. A ano, nejsou pro všechny.

Zajímavé poněkud související čtení je Proč bych měl používat IDE?

0
Jeff

Držím se vi, protože to byl první editor, který jsem se ve škole naučil, a je to ten, se kterým jsem dnes nejproduktivnější. Pracuji s mnoha unixovými variantami a je k dispozici ve všech (a funguje stejně bez ohledu na prostředí). Dělá to, co potřebuji, aby se to stalo, tak proč se změnit kvůli změně.

Používám IDE pro moji Java práci (nyní Intellij Idea)), ale trávím spoustu času pomocí vi.

0
jmq

Jso existují lepší alternativy? Ještě jednoho dne jsem měl seznam jmen schémat, které jsem musel zkrátit (díky, Oracle!). Alespoň polovina z nich skončila slovem „Test“. Rozhodl jsem se zrušit „Test“ od konce a předponu nazvat „T“. Ve vi, šlo o jednoduché vyhledávání a nahrazování regexu, existují nějaké nedávné editory, které to dokáží?

0
TMN