Ako dlhorocny uzivatel Vimu mozem zodpovedne vyhlasit:
Emacs is better.
Rad si prectu rozumne vyjadreni duvodu proc. Obzvlast prosim z pohledu uzivatele, co umi psat deseti prsty, a Ctrl a Alt povazuje za nastroj na lamani prstu.
Jen jsem si tak vzpomel - uz ma Elisp aspon jmenne prostory? Nebo jsou funkce a promenne globalni?
No on ten Elisp je docela peknej hnuj, vubec Stalmanovo mladi v AI labu ma na nej spatny vliv :)
Asi jak pro koho. Nedávno jsem udělal další pokus o sblížení s Emacsem prostřednictvím Spacemacsu a když odmyslím ty problémy s fungováním některých režimů, je pro mě skutečnost, že editor nabíhá až 20 sekund na poměrně silném stroji, dost neakceptovatelná. Zlatý Vim.
Řekl bych, že máte špatné komentáře u těchto funkcí:
" Zobrazeni predchoziho slajdu
function! s:ShowNextSlide()
" Zobrazeni nasledujiciho slajdu
function! s:ShowPrevSlide()
Proč je u deklarací funkcí vykřičník umožňující jejich přepisování? Není lepší, když vás při výskytu duplicitní funkce interpret upozorní, že jsme udělali chybu, než aby tiše pokračoval prováděním funkce, kterou jsme třeba ani nechtěli?
Tak ony to jsou lokalni funkce, tam je to jedno (navic se o tom v clanku pise, proc u globalnich funkci je ! spatne). Docela bych i rekl, ze v tomto Vim Script zaspal dobu, jsou lepsi reseni.
Mně se třeba <SID> líbí moc :). Je to skvěle průhledné. Prostě se to jen při uložení do 'zásobníku funkcí' rozvine na číslo skriptu a prefix <SNR>. Čímž se de facto udělá název funkce jedinečný. Číslo je snadno dohledatelné pomocí :scriptnames. A v případě výpisu funkcí a namapovaných příkazů je pak také jasné, ze kterého skriptu funkce pochází.
Jj tak je to lepší než jeden flatspace, ale podpora pro skutečné jmenné prostory by se hodila, už jen kvůli možnosti snadné vzájemné integrace dvou pluginů atd. Jak se možnosti pluginů zvětšují, tak to možná začne být větší problém, ale uvidíme, zatím Vim Script "škáluje" požadavky dost dobře.
No, já jsem rád, že je to zatím ještě pořád editor a ne operační systém.
Jen doplním, že <SID> se nechá použít pro funkce mimo skript, ale ne pro proměnné. Proměnnou je možné takto použít jen jako globální anebo jí obalit a přistupovat k ní přes funkci (jako je to zde).
Hádám, že ten weakPoint byl použitý na téhle přednášce: