VIM: Workflow pro práci s projekty & soubory rubrika: Administrace: Software

1 nanuqcz
položil/-a 15.12.2014

Ahoj,
zkouším (zase :-)) přejít ze SublimeTextu na gVim. Chtěl bych se vás zeptat na vaše workflow, jaké používáte pro práci s projekty a se soubory:

  1. Jakým způsobem ukládáte a přepínáte se mezi různými projekty? V SublimeTextu je na to geniální funkce CTRL+ALT+P. Pro Vim jsem objevil rozšíření Sessionman, ale zatím jsem nepřišel na to, jakou klávesovou zkratkou zobrazit seznam projektů. Nejlépe s podobně šikovným vyhledáváním, jako má SublimeText. V práci jsem totiž nucen se během dne přepínat mezi desítkami různých projektů, plus ještě moje osobní projekty... A vždy chci mít otevřeny všechny záložky jako minule, nejlépe i s neuloženými změnami, jako to umí SublimeText. Taky jsem četl, že Sessionman má problém s některými dalšími rozšířeními, např. NERDTree. ---
  2. Jakým způsobem řešíte rychlé a efektivní otevírání souborů v projektu (tzn. zřejmě v aktuálně nastaveném working directory)?
    1. Zatím jsem se dopracoval k použití pluginu CtrlP, které mi ale vůbec nevyhovuje: Pokud chci otevřít nový soubor, nejdřív si otevřu nový tab (:tabe), pak aktivuju CtrlP, vyhledám soubor a potvrdím enterem. Přijde mi to moc těžkopádné.
    2. Podobné to pak je s použitím integrovaného file exploreru: Otevřu nový tab s explorerem (:tabe.). Zde najdu požadovaný soubor a enterem otevřu. Toto je přímočařejší, ale hledání souboru je oproti CtrlP pomalejší a otravnější.
    Zároveň, pokud takovýmto způsobem otevřu soubor, který už otevřený mám, gVim mě na to neupozorní a v klidu mě nechá stejný soubor otevřít třeba ve třech panelech najednou. Navíc mě v gVimu mate nejednoznačnost aktuálního working directory. Když v nějakém tabu spustím :cd /path/to/my/project/, pak kouknu do jiného tabu, a tam je working directory pořád starý. Čehož se drží i oba zmíněné pluginy (CtrlP a Explorer), a tak v každém tabu fungují jinak. Dokonce i v jednom tabu v rámci více "windows" jsou často nastaveny různé pracovní adresáře.
    1. Jak se s těmito problémy ve Vimu vypořádáváte? Případně poskytuje Vim pro tyto úkoly nějaké jiné/lepší workflow, než na jaké jsem si zvykl ze SublimeTextu? Díky za vaše tipy.

Komentáře

  • nanuqcz : A teď jsem si všiml, že v gVimu nejde přesouvat taby? Nebo mi něco uniká? :-( 15.12.2014
odkaz
12 Kit
odpověděl/-a 16.12.2014
  1. Spustím si tolik Vimů, kolik projektů potřebuji mít otevřených naráz. Zpravidla jeden.
  2. :sp cesta/soubor
  3. :cd nikdy nedělám. Není důvod.

Komentáře

  • nanuqcz : ":sp cesta/soubor" - Doufal jsem, že ve Vimu existuje nějaký příjemnější způsob, než si pamatovat cesty ke všem souborům, které chci editovat. 16.12.2014
  • Kit : Ano, k doplnění cesty funguje tab a šipka nahoru kontextově listuje v zásobníku. Pamatování cesty není problém, vždyť koresponduje s namespace. Zpravidla tedy funguje jedno písmeno + tab. Další tab listuje. Pro mne je to mnohem příjemnější, než hledání v seznamu souborů. 16.12.2014
  • nanuqcz : Když chci například otevřít soubor `app/AdminModule/Presenters/BasePresenter.php`... V SublimeTextu: `<CTRL+P>admbapre<ENTER>` (i.imgur.com/hvqmYhp.png). Ve Vimu: `:tabe a<TAB><ENTER>a<TAB><ENTER>p<TAB><ENTER>bas<TAB><ENTER>` (i.imgur.com/MxzEv15.png). Vidíš ten rozdíl v efektivnosti, že? Podobné efektivity se snažím dosáhnout i ve Vimu. 16.12.2014
  • Kit : Nedělám tak hlubokou strukturu aplikace, proto tyhle problémy nemám. Zejména když od počátku tu strukturu mívám zcela plochou a člením ji teprve při refaktorování. 16.12.2014
  • siq : tak toto je vec Nette frameworku. Ty ziaden framework nepouzivas. Teda pouzivas "Kitov specialny metajazyk" (c)(tm), takze je to ina situacia. 17.12.2014
  • Kit : V případě takové struktury bych asi ten Vim spouštěl rovnou v adresáři app/AdminModule/Presenters/ nebo app/AdminModule/ a bylo by po srandě. EDIT: Zkusil jsem si příkazy :cd a :pwd - to jejich chování není zrovna nepříjemné. 17.12.2014

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.