While I was at Microsoft, I hardly ever used Visual Studio. I edited my C/C++ code with Vim, I compiled and linked it with the NT Build Environment and I debugged it with WinDbg/ntsd/kd. I was hardly alone in this. In the Windows division, your code has to build with the NT build environment, and the Windows debuggers are much better supported than the Visual Studio debugger for developing the OS.:-)))
1. Tento editor musím použít z nouze a prakticky nic o něm nevím. Pak si, jak někdo správně poukázal, vystačím s jeho vestavěnou dokumentací, protože pro zeditování konfiguráku apod. toho moc nepotřebuju.
2. Chci použít některou mně dosud neznámou funkci editoru. V tomto případě si ji prostě někde najdu, ať už v menu (typicky práce s okny, tisk, nastavení zvýraznění syntaxe) nebo v dokumentaci nebo pomocí Google. Protože takovou funkci budu zřejmě používat znovu a znovu, zapíšu si ji nebo hned zapamatuju - Vim se člověk učí inkrementálně a zapamatovat si jednu fintu není těžké. Kdybych ji měl hledat pořád dokola v menu, nemělo by to moc smysl.3. Nelíbí se mi standardní chování, chci si ho změnit. Pak si najdu, jak na to a zapíšu si to nastavení do konfiguračního souboru a už nikdy to nebudu muset znovu hledat, ať už pomocí Google nebo jinak. Konfigurační soubory si migruju ze stroje na stroj. Je to dnadné, je to rychlé, je to univerzální.
Nevidím důvod nad takovýmto způsobem práce ohrnovat nos a neberu nepoučené výtky od člověka, který tento editor nepoužíval alespoň půl roku den co den.S tím blábolením brzděte, nebo to přeženete. Chceme přece udržet diskuzi slušnou.
Po precitani Vasich vylevov na temu Perl, Siemens a Ctrl-Shift naozaj neviem, co mam povedat... "Blabotanie" je na to naozaj najslusnejsie slovo.
Na Vasom nazore na regexy vidno ako rozmyslania. Nadavate, ze su zlozite, no vobec si neuvedomujete, kolko prace s textom usetria. S takymto pristupom nikdy nepochopite, v com moze byt sila vi a zostanete uvazneny vo svojom svete desiatich prikazov Ctrl-Shift.
Na com sa ale zhodneme, ze clovek by si mal dobre rozvrhnut svoj cas. A ja uz neobetujem ani sekundu na zbytocne handrkovanie s niekym, kto ma fundamentalne problemy s regexami.
Takže když edituji soubor, tak místo kouknutí do menu otevřu dokumentaci, a budu v ní hledat funkci, o které ani nevím, jestli tam je. Až jí najdu, tak si jí zapamatuji, nebo napíšu na papírek-helpáček. Super, skvělé. Máte další nápady, jak učinit práci efektivní?
Prave ste popisali jedinecny sposob ako ucinit pracu efektivnou -- ucit sa. Ucenie Vim prebieha presne ako ste popisali.
Mylite si efektivitu prace s jednoduchostou ovladania.
Takže podle vás je ten proces efektivnější, než "kouknu do menu, a když se tam dívám potřetí, tak si zapamatuji klávesu"? A je také pohodlnější?
Ano, podla mna je efektivnejsi. Neviem, preco do toho pletiete pohodlnejsi, ale ak chcete, aby bol pohodlnejsi, zozente si sekretarku.
Když jsme u toho, proč si myslíte, že vi nepoužívá prakticky nikdo?
Ale ja si to nemyslim.
Nepoužívá ho téměř nikdo mimo platformu unix, a ani unixáci, kterým ovládání vi nacpali ve škole do hlavy násilím, se k němu mohdy nehlásí.
Ako hladam, tak hladam, ziadne statistiky o pouzivanych textovych editoroch som nenasiel. Ak ich mate, prosim, zverte sa nam. V opacnom pripade zostava verit tomu, ze ste v tejto diskusii jeden z mala, co Vim vobec nepozna.
Proč jste naprostou výjimkou, když vám jeho ovládání vyhovuje?
Myslim, ze som skor uplnou vynimkou z nas dvoch -- vy ste lenivy nieco sa ucit, ja nie. Vy mudrujete o veciach, o ktorych nic neviete, ja nie. Vy si vymyslate neskutocne bludy, ja nie.
Zato já si všiml řady problémů. Například mezery v názvech řada skriptů nezpracuje
Tento problém neznám, asi vám ty skripty píší nějaká děcka?
Podobně s češtinou v názvech souborů, která působí tolik problémů, že jí uživatelé unixů raději nepoužívají
Lež jako věž :D
A sám můžete vidět, že řada uživatelů unixů dodnes píše příspvěky a maily bez diakritiky
Asi to jsou programátoři, na rozdíl od mraku sekretářek na Windows.
Takže ano, i já mám tyhle problémy.
Mnohem větší než tušíte...
Za daleko větší problém považuji fakt, že na unixech není zachování korektního názvu souboru zaručeno ani na lokálním systému, protože se názvy v různých kódováním mohou volně míchat na FS."Že by PEBKAC? Pokud mi nějaký program uloží na disk soubor s non-UTF-8 názvem, tak jakmile opadne moje počáteční chuť zabít jeho autora tupým předmětem, poletí ten program vesele z disku. Zatím se tak ale nestalo. S mapováním názvů z oddílů Windows tak nějak problémy taky nemám.
Víte, vy tu stále argumentujete BFU. Ale já i přes veškerou skromnost nejsem BFU a se mnou tisíce jiných. Co vyhovuje BFU nemusí nutně vyhovovat zkušenějším či vyhraněnějším lidem. A UI je přesně jednou z těchto věcí. Pro mne je jednodušší a přirozenější zadávat počítači příkazy, jež mají nějakou logiku a dají se skládat v složitější celky, podobně, jako se dají skládat elementy lidského jazyka. Taková forma komunikace mi připadá mnohem přirozenější, nežli nějaké klikání po obrazovce s myší, kdy si práci můžu ulehčit maximálně tím, že si mohu zapamatovat pro ty nejelementárnější příkazy jakési, často nelogické, klávesové zkratky, nebo si jich pár vytvořit."Na tohle téma mě napadá jeden moc pěkný citát... "A picture is worth 10K words - but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures." Jakékoli grafické ovládání stylem [podstatné_jméno] sloveso (což je asi tak maximum, co klasické windowsoidní GUI umi, i po započtení klávesových zkratek) bude žalostně neúplné proti složitosti úkonů, které ve skutečnosti chce člověk dělat. Pro příklady určitě není třeba chodit daleko. :]
...command line interface, natož třeba Perl, není přirozené komunikaci nijak blízko.
To je zajímavé, Perl navrhl profesionální lingvista, a jako programovací jazyk založený na přirozeném způsobu komunikace ho navrhl zcela úmyslně. Zajímavé, že i Microsoft něco z toho převzal. :-)
Zato Vám přijde jako přirozenější způsob komunikace myš a ikonky. Mně tedy ne, já si svého času přestal hrát s omalovánkami v pěti letech a v sedmi jsem začal programovat. Nikoli ovšem myší. Jiní lidé třeba neprogramují, ale mluví česky, nikoli piktografickými posunky.
:-)))One evening, Master Foo and Nubi attended a gathering of programmers who had met to learn from each other. One of the programmers asked Nubi to what school he and his master belonged. Upon being told they were followers of the Great Way of Unix, the programmer grew scornful.
“The command-line tools of Unix are crude and backward,” he scoffed. “Modern, properly designed operating systems do everything through a graphical user interface.”
Master Foo said nothing, but pointed at the moon. A nearby dog began to bark at the master's hand.
“I don't understand you!” said the programmer.
Master Foo remained silent, and pointed at an image of the Buddha. Then he pointed at a window.
“What are you trying to tell me?” asked the programmer.
Master Foo pointed at the programmer's head. Then he pointed at a rock.
“Why can't you make yourself clear?” demanded the programmer.
Master Foo frowned thoughtfully, tapped the programmer twice on the nose, and dropped him in a nearby trashcan.
As the programmer was attempting to extricate himself from the garbage, the dog wandered over and piddled on him.
At that moment, the programmer achieved enlightenment.
Jestli vám jako těžkopádné řešení připadá například mít API pro poskytování informací o systému (včetně seznamu procesů), ktežto jako elegantní vám připadá v případě potřeby prostě zavolat shell a příkaz ps, tak máme velmi odlišný pohled na věc.To by samozřejmě bylo těžkopádné, proto to nikdo nedělá, a používá se tradiční kernelové API, které používá sám nástroj ps. :-) Více viz 'man 5 proc'. Mimochoem, jen tak bokem - co Vás vede k představě, že exec() spouští nehjprve shell a až potom spouštěný program?
Unixy mají velké problémy s mezerami a diakritikou v názvech souborů. Viz fakt, že Oracle nelze nainstalovat do adresáře s mezerou v názvu.Oracle je Unix? Jestli ne, co z jeho vlastních problémů vyplývá pro Unix? Znám aplikace, které doporučují ve Windows, aby se neinstalovaly do adresářů s mezerou v názvu, znamená to snad, že i Windows mají velké problémy s mezerami?
A co se stane, když Qt aplikace dostane název souboru zapsaný v ISO 8859-2 (tedy dostane neplatnou UTF-8 sekvenci, přičemž Qt počítá se všemi názvy souborů v UTF-8, a převádí je do UTF-16), to mi také nikdo nevysvětlil.V tom případě má uživatel závažně rozbitý setup a možná by bylo dobré, kdyby si spravil?
Uživatelé unixů mě trvale přesvědčují, že s GUI neumí zacházet. Kolikrát jsem jen tady v diskuzi četl věci typu "s vi vyberu jednoduše text mezi závorkami, v GUI bych musel sundat ruku z klávesnice a označovat ho myší", a všichni mohutně přikyvovali.
Jednak nechápu, jak můžete vidět, jak mohutně kdo přikyvuje, a jestli vůbec kdo přikyvuje, jednak mě udivuje, že dokážete ignorovat takhle jasný selection bias. Lidé, kteří se takhle ozývají, težko budou reprezentativní skupina, protože *tolik* uživatelů Vimu dneska zase není ani mezi unixáři. Na přidání tří set uživatelů - to jen tak mimochodem - není zapotřebí psát skript. Na to bohatě stačí one-liner tak na dvě minuty, a dokonce k tomu člověk ani nemusí být uživatel Vimu.
A vzhledem k tomu, že cílem není ani umět jenom GUI, ani umět jenom CLI (obojí jsou jen nástroje, ne náboženství), ale udělat potřebnou práci v co nejkratším čase, tak mi asi uniká pointa. Většina rozumných lidí včetně mně pro každý úkol používá nástroj, co je nejrychleji dopraví k cíli, jestli je to zrovna CLI, tak použijí CLI, a jestli to volá po GUI nástroji, použijí GUI. Z toho, jak zlomek uživatelů zakládá hromadně účty, extrapolovat, jak všichni uživatelé dělají všechno ostatní a jak snad i vaří kafe, mi přijde trošku odvážné.
Ve výsledku když chcete vkládat čárové kódy do faktur, což neuděláte na command line ani v GUITeď jsem napsal
zypper in barcode barcode-devel
a během deseti sekund jsem měl nainstalovaný generátor čárkových kódů jednak jako knihovnu, jednak jako konzolový nástroj. Proč by kvůli tomu měl člověk kupovat komponentu? :-)
Takže vaše CTRL+klávesa je často na stejné úrovni, jako u vi ESC+příkaz.Já hlavně nechápu, proč se absence CTRL+Backspace zmiňuje jako nevýhoda Vimu, když Cream to umí a v "plain Vimu" jsem si to nakonfiguroval a namapoval tak maximálně za patnáct sekund. Vim *umí* CUA, pokud to někdo chce.
Dějiny se klidně učte. Patří to k všeobecnému rozhledu. Nám zase na hodinách literatury nikdy neřekli, jakým způsobem vlastně v Eposu o Gilgamešovi tento tyranizoval své poddané a urucké ženy a proč tím tolik proti sobě popudil bohyni Aruru a jakým způsobem zvítězil nad bytostí Enkidu, poštvanou na něj touto bohyní. A proč tuto operaci s Enkiduem, kterou provedla Šamchat, nazývají polidštění. A jaké že to ta Šamchat uměla vlastně řemeslo...Pche, Sumerové...ale takoví Egypťané, panečku. :o) Ale do svého Gardinera zatím jen smutně koukám. ;/ Chvílemi mi přijde, že na semitské jazyky jsem tupý. (Rozhodně víc, než na anglosaštinu.)
Z historického hlediska jsou dnes unixy ve fázi posledního výprodeje zdarma. Jak jinak chcete říkat tomu, že tržní podíl unixů od uvedení NT neustále padá, a situace došla tak daleko, že je unix (Linux) už dokonce zdarma?Unixy byly odsouzené ke ztrátě velké části tržného podílu především proto, že jejich dodavatelé byli arogantní náfukové. Proto ani Windows, ani Linux neměly problém se zabráním slušné části serverového trhu. Podobně to přeci dopadlo i na poli hardwaru - kdo vyloženě nemusí, koupí PC server, a k iSeries nebo podobným strojům se sahá vlastně v případě nutnosti.
A co vás více přesvědčí, než fakt, že lidé dávají přednost placenému OS před unixem zdarma.A o čem by nás měla přesvědčit skutečnost, že firmy vyžadují určitou úroveň podpory, který je placená? To zní skoro jako tautologie. :-) To u systému zdarma samozřejmě nedostanete, pokud si to nezařídíte třeba u dodavatele HW, jak to nabízí Hewlett-Packard s Debianem. Jinak firmy většinou samotný OS kupují.
...že Windows NT nepřinesly v podstatě nic radikálně nového...V mnoha směrech nic nového nepřinesly, spíš uřezávaly. Ale protože ten systém, ze kterého bylo uřezáváno, byl VMS, tak jim to na použitelnosti jen prospělo. (Pokud Unix považujete za systém, který se člověk musí rok učit, než přidá uživatele, co řeknete na VMS? :o) VAX jsem svého času bez manuálu ani nedokázal nabootovat...) Já tedy WinNT nepovažuju za špatný systém, to jen aby nedolo k nedorozumění. :-)
Vi(m) bez manuálu dokonce nemáte šanci ani ukončit(!)ja vam nevim, kdyz spustim vim, tak to pise:
type :q<enter> to exitkdyz dam ctl+c
Type :quit<enter> to exit Vima kdyz dam F1, tak se doctu
Close this window: Use ":q<enter>nicmene, myslel jsem, ze schopnost cist (a psat) je docela zasadni prekondici pro pouzivani textoveho editoru
.PropertyValue
nepíšu, když už, tak spíš mapM
nebo foldl
. Mimochodem, prozradím Vám sladké tajemství: Doplňování kódu se nemusí nutně jmenovat IntelliSense, aby i přesto fungovalo. A už máte ve Visual Studiu taky fuzzy doplňování? Nedal bych bez něj ani ránu. Prefixové doplňování je "soooo 90's", jak by řekli Američané. :]
"Podpora doplňování ve VS je holt výrazně dále, než ve vimu."Ehm, "holt je dál?" Tak mně spíš přijde, že podpora (rozšiřitelného) doplňování je ve Vimu i ve Visual Studiu na přesně téže úrovni, totiž na té, že je - ona buď může být, nebo není, víc možností člověk nevymyslí :-). Jak daleko jsou jednotlivá doplňování, to je otázka jiná. Out-of-the-box bez doplňků bude Visual Studio mít lepší doplňování C#, a Vim zase bude mít lepší doplňování Pythonu, přičemž do obou se dá jako add-on přidat to, co umí ten druhý. Co myslíte tou "úrovní VS?"
"V případě non-GUI to je typicky TeX, což je obrovsky mocný nástroj, ale má tak zásadní omezení, že ho nelze nasadit na většinu činností."Pro každého je ta "většina" jiná množina. Sázíte Ženu a život? :-) Rozumná použitelnost TeXu IMHO končí někde na půl cesty mezi matematickými pracemi a Ženou a život. Kdysi jsem myslel, že je to víc posunuté k tomu prvnímu, ale Hagenův ConTeXt a XeTeX od SILu mě přesvědčily, že TeX zdaleka ještě nenatáhl brka. Záleží asi na tom, co člověk dělá. Dříví na táborkák asi nemá smysl řezat motorovou pilou. :-)
Ten princip je i v jiných programech, InDesign není první na světě (vývojová prostředí to mají už dávno)Nepříliš překvapivě, první program, který tohle měl, byl Emacs, což není zrovna dedikované vývojové prostředí. Hned pak zřejmě Vim. :-) Ale souhlas, program, který má nabídky, efektivní klávesové zkratky, a ještě tenhle třetí ("příkazový"?) způsob, je takřka dokonalý. (Tím spíš, pokud program podobně jako třeba Emacs po spuštění příkazu tímhle způsobem navíc ještě na okamžik napíše nápovědu typu "You can run the command 'fill-paragraph' with M-q", stejně jako jsou klávesové zkratky indikovány v nabídkách, a člověk si to zapamatuje.)
Někteří zastánci *vi* už dávno znají programy s možnostmi podobnými výše zmíněným vlastnostem InDesginu a někteří z nich je dokonce i umí ocenit (což je skutečně velká poklona - nikdo není tak konzervativní jako programátor).To je jednoduché, podobné možnosti, jako popisujete, má právě Vim. Alespoň konfigurační balík Cream z něj dělá praticky to, co popisujete - od bohatých nabídek, přes CUA("Windows-like") zkratky (stylu Ctrl+X, Ctrl+V) a modální/jednoklávesové zkratky ("Vi-like") až po příkazový režim. Takže jestli to popisujete věrně, věřím, že uživatel Vimu by se cítil v Indesignu CS3 právěže jako doma.