it-swarm-eu.dev

K vývoji softwaru používám IDE (Eclipse)). Proč bych měl přejít na vim nebo emacs?

Moje denní práce je Java/webový vývojář. Používám Eclipse asi 5 let. Myslím, že je to vynikající, a také používám Webstorm pro javascript a html/jsp.

Občas se musím sshovat na server a nechat se hádat s konfiguračními soubory; k tomu používám vi a to mě bolí. Musím se dostat na webovou stránku se seznamem syntaxe/příkazů: stiskněte escape, pak asterix, otočte se třikrát a text bude zadán dva řádky nad kurzorem. Je to pro mě neintuitivní a představuji si každého, kdo vyrostl na konci 80. let.

Zde jsou hlavní důvody, proč si myslím, že Eclipse je brilantní (a předpokládám jiné IDE), a nepřecházejí na emacs a/nebo vim.

  • Chyba zvýraznění bez nutnosti překompilovat projekt.
  • Pomoc s kódem.
  • Refaktoring.
  • Zahájení volání hiearchy/prohlášení o zahájení.
  • Plně integrované s řízením zdroje.
  • Debugger je v ceně.
  • dostupnost pluginů třetích stran - např. findbugs/checkstyle.

Jedním z argumentů, které slyším, je, že s emacs/vim si můžete vytvořit vlastní pluginy - dobře, ale můžete to udělat také v Eclipse. Ale nemusíte, protože všechno tam už je! Je to jako říkat koupit toto napůl postavené auto, můžete si postavit zbytek sami.

Proč lidé používají emacs/vim? Pracují lidé, kteří ji používají, ve velkých organizacích na komplexních objektově orientovaných projektech?

Jaké jsou důvody přechodu na vim/emacs. Jak by se zvýšila moje produktivita, kdybych přepnul?

31
NimChimpsky

Použijte jakýkoli nástroj, který vyhovuje vašim potřebám. Znalost VIM nebo Emacs je dobrá věc, pokud se musíte někdy přihlásit ke vzdálenému serveru a upravit konfigurační soubor nebo něco podobného. Vím VIM přiměřeně dobře) , ale nepoužil bych ji k vývoji v Javě. To je to, pro co jsou Eclipse, Netbeans atd. určeny.

36
user281377

Emacs a Vi stále mají své místo.

  • Jsou všudypřítomně dostupné v prostředích Unix a Unix a lze je nainstalovat na většinu dalších populárních platforem.

  • Jsou populární a stabilní, takže se je naučit, jakmile se z dlouhodobého hlediska vyplatí.

  • Běží přes textový terminál, takže je můžete použít v relacích telnet a ssh.

  • Poskytují režimy úprav a zvýrazňování syntaxe pro širokou škálu jazyků, včetně velmi nových a velmi vzácných jazyků. (Toto je jedna z mých oblíbených výhod.)

Klíčem k pochopení těchto programů je však vědět, jaké problémy měly původně řešit. Pro Vi to byla editace textových souborů přes připojení terminálu tak pomalá jako 300 Baud. V tomto prostředí nechcete zobrazovat nabídky nebo radikálně měnit obsah obrazovky, pokud tomu můžete zabránit.

Emacs byl určen k použití v rychlejším prostředí. Síla byla v tom, že ji bylo možné načíst jednou a nikdy neopustit. Uživatel mohl z Emacsu provést jakýkoli jiný úkol, který potřeboval, aniž by musel opustit, a často přátelštějším způsobem, než kdyby to musel udělat z příkazového řádku. Lidé neměli grafické grafické prostředí s otevřeným oknem Emacs. Emacs umožňuje uživateli splnit téměř jakýkoli normální úkol (a mnoho podivných) s několika málo stisknutými klávesami. Všechno, co není zabudováno, bylo možné skriptovat.

Od zavedení těchto programů se očividně potřeby lidí hodně změnily, ale stále mají určité skutečné silné stránky. Naučil jsem se základy obou a používal je každý týden. Přesto si myslím, že jejich silné stránky jsou často přeceňovány. Dosáhli tak legendárního stavu, že lidé nepřiznávají své slabosti, a místo toho si myslí, že dělají něco špatně, pokud je Emacs/Vi nečiní produktivnějšími než Eclipse nebo Visual Studio.

Nyní k věci.

Java je populární jazyk s vynikající podporou v Eclipse a je pravděpodobné, že vyvíjíte kód v moderním operačním systému, který vám umožní rychle provádět běžné úkoly a skriptovat ostatní, aniž byste to dělali prostřednictvím vašeho IDE. Nemyslím si, že by pro vás mělo smysl přepínat.

39
PeterAllenWebb

Používám emacs 5 a více let. Už vám nemohu říct, jaké kombinace kláves používám, prsty si pamatuji a musím se podívat na klávesnici, abych viděl, co moje ruce píšou.

Před několika lety jsem začal používat Eclipse, a není žádná šance, že se vracím k emacs volně. Omlouváme se svalová paměť, i když vám chybí stará C-x r SPC 1, Eclipse je pro mě mnohem produktivnější a to se počítá.

Ne, nemyslím si, že byste měli přepnout, ale měli byste se věnovat pár hodin naučit se základy vim, takže už nemusíte hledat.

16
Martin Wickman

Proč bych měl přejít na vim nebo emacs?

S největší pravděpodobností byste neměli přepínat . Vim je vynikající, výkonný textový editor, ale není náhrada za IDE a nemělo by být ! Eclipse je velmi dobrá v jeho podmnožina věcí specifických pro IDE a vim je velmi dobrá ve své podmnožině věcí specifických pro editaci textu. Každý má své vlastní, jiné zaměření.

Vím, že existují doplňky, které rozšiřují funkčnost vimu, takže dokáže provádět mnoho stejných věcí specifických pro IDE jako IDE může). Stále to však není hlavní síla vimu a IDE bude téměř vždy schopen to udělat lépe. Protože na to se zaměřují.

Ve své každodenní práci dělám použití Visual Studio a vim pro úpravy C #. Funguje to pro mě velmi dobře a nikdy bych nevystříhal jednoho z nich, aby se spoléhal výhradně na druhého.

Pokud jde o emacs, nejsem žádný odborník, ale nemyslím si, že by mohl konkurovat funkcím Eclipse IDE, pokud jde o Java (prosím opravte) pokud se mýlím) Pokud se vyvíjíte v LISP, pak to určitě lze považovat za vynikající IDE, ale nemyslím si, že má stejnou podporu pro Javu.

Pokud tedy chcete, aby se vedle Eclipse používal výkonnější textový editor, určitě bych vám doporučil naučit se vim nebo emacs. Ale jako doplněk, nikoli jako náhrada . Z dlouhodobého hlediska se může skutečně vyplatit, i když žádný z nich nemá zvlášť snadnou křivku učení:)

Tady je pěkné dlouhé čtení o silných stránkách vim. A tady je seznam některých pěkných triků, které můžete udělat.

7
Nick Knowlson

V podstatě si přečtěte toto (PDF), abyste zjistili, proč je Emacs silný. Jakmile znáte LISP, je téměř triviální snadné zapisovat rozšíření (mám několik pracovních toků a implementací řízení zdrojů skriptovaných pomocí doplňku, který jsem napsal pro sebe s názvem employer-mode). Co se týče výše uvedeného seznamu;

  • Chyba zvýraznění bez nutnosti překompilovat projekt. Nedává smysl pro všechny jazyky. Do něj můžete snadno integrovat REPLs mnoha jazyků. Právě teď mám Ruby, python, haskell, common LISP, scheme a erlang všichni připojeni k emacs. Mimochodem, doplněk JavaScript js2-mode má úplnou inkrementální „kompilaci“, takže pro vás upozorňuje na věci, jako jsou chyby syntaxe, takže je to určitě možné, ale nikoli norma
  • Pomoc s kódem. existuje doplněk k tomu, který se jmenuje autocomplete.el, Věřím, zkontrolujte Emacs wiki
  • Refaktoring. Předpokládám, že máte na mysli „automatické refactorování“, což nemá smysl ve všech jazycích. Pravděpodobně existuje pro některé, ale nevím.
  • Zahájení volání hiearchy/prohlášení o zahájení.
  • Plně integrované s řízením zdroje. git-mode vestavěné od Emacsu 22.3, nevíte o jiném řízení zdroje
  • Debugger je v ceně. Jazykový základ zde. Obecně platí, že pokud má integraci REPL), má také ladicí program Emacs, ale není univerzální
  • dostupnost pluginů třetích stran - např. findbugs/checkstyle. nevím o těchto konkrétních, ale je tu spousta doplňků, od proč-není-to-v-základním balíčku-užitečné, až po naprosto lehkomyslné

To znamená, že pokud se vám nelíbí LISP a nechcete se to učit, nemohu upřímně doporučit Emacse. Výhra, kterou z toho získáte, je dozvědět se o tvorbě nástrojů a uplatňování těchto principů, aby se zvýšila vaše vlastní produktivita.

6
Inaimathi

Vidím zde dvě možnosti:

  • Místo toho použijte Nano - je to přesně jako Poznámkový blok ve Windows pro Linux. Nevyžadujete žádné kombinace klávesových zkratek, stačí zadat nano somefile.conf a máte pěkný editor. Můžete dokonce přidat zvýraznění syntaxe
  • Udržujte program lokálně a synchronizujte se přes SCP se serverem - dělám to, když potřebuji pracovat na malém webu, ale nemám dostatek prostředků pro lokální spuštění Apache. Jednoduše vyvolám WinSCP, vyvolám požadované adresáře a použiji "Udržovat vzdálené soubory aktuální". Změny se obvykle projeví v sekundách
  • Pomocí pluginu ve svém editoru/IDE pracujte „přímo“ se vzdáleným souborem - Než jsem se staral o kontrolu revizí, jednoduše jsem spustil Notepad ++ (můj preferovaný editor) a použil NppFTP pro práci se soubory. NppFTP je rychlejší než volba WinSCP, protože Npp to okamžitě informuje, když je soubor uložen, který se okamžitě nahraje. Jak jsem však řekl, ztratíte kontrolu nad revizí. Jsem si jistý, že existuje plugin pro Eclipse, který můžete použít

Snad to pomůže

3
TheLQ

Osobně se mi líbí Vim, protože je to velmi dobře na editaci textu, tj. Velmi ergonomické (keybindings si tolik namáhají ruce a já nemusím používat myš tolik) a efektivní použití, jakmile se dostanete na kloub to (což samozřejmě bude vyžadovat čas a trpělivost, protože to není nejintuitivnější editor pro začátečníky).

Já bych však raději Eclipse pro rozsáhlý vývoj Java vývoj v důsledku mnoha funkcí, které jsou snadno dostupné. Samozřejmě existují některé pluginy , které mohou Eclipse trochu vylepšit snášenlivější.

2
user7908

V současné době se pokouším přepnout z NetBeans na vim. Učení vimu vyžaduje čas a praxi, ale vidím jeho výhody, v některých případech jim říkáme „editory GUI“.

Ale na rozdíl od vás kóduji většinou Ruby a nepotřebuji všechno to kouzlo generující kód, automatické dokončení, kouzlo refactor-my-code, které nabízejí NetBeans a Eclipse. Kdybych kódoval Java nebo C #, určitě bych se nepokusil přepnout vůbec).

1
Mladen Jablanović

Jako dlouhodobý uživatel emacs považuji emacs za docela pohodlný jako editační a vývojové prostředí (a do jisté míry se také integruje s procesem sestavování, řízení verzí, rychlým kontextovým vyhledáváním apod., Takže myslím, že se kvalifikuje jako „IDE“).

Jsem také realisticky pohodlný s používáním editorů vi a vi (začínal jsem používat ed, protože jsem si myslel, že emacs je příliš složitý; v retrospektu to je zpětně, ale to mi poskytlo pevný základ pro budoucí učení se vi). Používám vi především pro „malé rychlé úpravy“, především na vzdálených počítačích, kde není nainstalován emacs.

Pro váš scénář „I občas potřebuji ssh na server a nechat se hádat s konfiguračními soubory; pro tento scénář používám vi“ bych doporučil malou sadu příkazů a některé obecné myšlenky kolem vi:

  • Vi není modální, má příkazy „a“ ​​(připojit), „A“ (připojit na konec řádku), „i“ (vložit) a „I“ (vložit na začátek řádku) a vložit text jako argument a signalizaci "end-of-command" s Esc
  • h, j, k a l jsou pohybové klávesy. Může to fungovat pomocí kláves se šipkami, ale protože obvyklá sekvence VT ve stylu „Jsem klávesa se šipkou“ začíná Esc, dojde k přerušení příkazu k vložení textu, na který nemyslíte.
  • : linenum vás přesune na řádek linenum , řádek 1 je nejvyšší nejvíce řádek a řádek $ je nejspodnější řádek
  • . je příkaz "opakovat poslední příkaz" (viz první odrážka)

Nemělo by to trvat déle než dvě nebo dvě hodiny, než jsme si hráli s vi, než jsme byli u „mohu s jistotou editovat textový soubor, ale možná s tím nebudu efektivní“ a to je stejně dobré, jako byste asi potřebovali . V opačném případě by měl být jakýkoli editor, který nemá o automatickém převodu mezi kartami a mezerami, dostatečně „dobrý“ pro vaše účely. Pokud je Eclipse nainstalován na všech vašich vzdálených serverech, nevidím to jako velký problém.

1
Vatine

Pokud jste s Eclipse spokojeni, pak nepřepínejte.

Pokud můžete Eclipse používat kdekoli potřebujete, nepřepínejte.

Pokud váš projekt/společnost téměř výhradně používá Eclipse, nepřepínejte.

Pokud potřebujete jen zřídka něco jiného, ​​vytiskněte cheat-sheet pro jednoho z editorů a vytáhněte jej ze zásuvky, když je potřebujete, a pak se vraťte k používání Eclipse.

Podívejte se na (stejnou) otázku na SO: https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-Eclipse

Pokud jde o odpověď: „Pracují lidé, kteří ji používají, ve složitých objektově orientovaných projektech ve velkých organizacích?“ - Drž se svého syna, ale odpověď zní "ano". Pracoval jsem na projektech s desítkami milionů řádků kódu použitých v kritické cestě návrhu samotného procesoru, na kterém běží počítač, který používáte, abyste položili tuto otázku. A lidé Eclipse vyzkoušeli, ale zjistili, že je příliš pomalý a neohrabaný (i když, samozřejmě, nepoužívali jsme Javu).

1
Trey Jackson

Jsem velmi Emacs chlap. Používám jej pro veškeré své programování a aktivně vybízím své spolupracovníky, aby ho také používali (a aktivně mě ignorují). Připadá mi to mnohem produktivnější než jakékoli IDE a nikdy bych se nezměnil.

Pokud nepíšu Java nebo C # (a představuji si, že v této kategorii jsou i jiné jazyky). Mají tak velké knihovny stuff s dlouhými jmény, že zisky - I dostat se z používání Emacsu se úplně ztratí ve snaze zapamatovat si všechno.

Určitě vás vyzývám, abyste zkuste vim a/nebo Emacs. Ale pravděpodobně skončíte v Eclipse pro Javu.

1
MattBelanger

Emacs i vim jsou velmi konfigurovatelné a výkonné editory a oba poskytují velkou produktivitu, jakmile jsou uchopeny základní pojmy.

Vi vyhrává s tím, co jsou operace založené na zásadách. Například změna všech instancí „foo“ na „bar“ v definici třídy je jednostranná.

Emacs je stejně silný, ale musíte se naučit Emacs LISP, abyste jej mohli plně využít.

V obou případech se vyplatí přepnout, pouze pokud plánujete používat emacs nebo vi pro všechno.

1
Larry Coleman

Nejlepší nástroj (v krátkodobém horizontu) je ten, se kterým jste velmi dobře znalí.

Lidé používají 30letou technologii, protože s ní jsou velmi zdatní. Postavili svůj pracovní postup a zvyky kolem těchto nástrojů. Pokud jste více obeznámeni s moderním IDE jako Eclipse), není mnoho důvodů k přechodu. Naučit se, jak efektivněji využívat Eclipse, je lepší investice vašeho času (např. Použití - Mylyn ).

1
dbkk

Osobně mě oba programy zavedou na zeď. Problém s Eclipse je ten, že je pomalý jako snot, když pracujete na velkém projektu, a to když nedělá „indexování DGLP“ nebo cokoli jiného. chcete obnovit úložiště? máš 15 minut? Jo a co ten šikovný trik, kde Ctrl-C nějaký text, pak Ctrl-P to někde, ale místo toho, aby to šlo tam, kam jsi to chtěl, otevírá úplně jiný soubor a minulost nad něčím jiným a ty jsi nechal přemýšlet wtf tam byl na prvním místě. Jo a zmínil jsem se o spolupráci s Eclipse na velkém projektu přes vpn? prakticky nemožné.

Pokud jde o vim, jeho pěkný a rychlý předpoklad, že znáte množství naprosto nesmyslných klávesových kombinací, aby se něco stalo a hodně štěstí, pokud se náhodou ocitnete v neznámém režimu. Také s vim musíte hodně znát celou vaši adresářovou strukturu projektů v hlavě, abyste mohli otevřít správné soubory. Hlavní výhodou Vim je, že teoreticky můžete kód vytvářet rychleji, protože jeho všechny klíče, ale ve skutečnosti je mi jedno, kolik textu píšu, není to objem textu, na čem záleží jeho kvalita kódu a často kvalita kód vyžaduje zírat na desítky souborů celé hodiny, dokud nenajdete přesnou správnou věc, kterou chcete napsat (což je obvykle velmi krátké).

Chtěl bych, aby někdo napsal program příkazového řádku, například vim, který má ve skutečnosti adresářovou strukturu jako Eclipse na straně nebo něco, z čeho byste mohli rozbalit/sbalit a otevřít soubory. Ví někdo něco takového?

0
Dallas Caley

Nemám problém s různými dostupnými editory UNIX, ale používám je pouze na protest. Ne, jak říkám, protože s nimi mám problém, ale proto, že pokud je budu muset použít, znamená to, že náš proces nasazení nějakým způsobem chybí.

To si pravděpodobně zaslouží trochu více kontextu: Pracuji na rozsáhlých řešeních elektronického obchodování, vše, co řídí chod našich systémů, je generováno jedním kliknutím na proces sestavení/nasazení. Máme řadu testovacích prostředí, takže v kterémkoli okamžiku mohu provést změnu pomocí Eclipse, zkontrolovat ji do cvs a spustit sestavení/nasazení, abych dokázal, že moje oprava funguje. Takže - pokud jsem hacknut v 'vi', pak je to proto, že nemůžeme čekat na 1-hodinový obrat nasazení nebo protože nasazení nepokrývá soubory, které upravuji, a je třeba ho rozšířit ano (v opačném případě budu hackovat vi, až se příště bude muset změnit příslušný soubor).

0
DanW