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.
BTW, něco pro pobavení: Lidé z Microsoftu neumějí napsat ani pitomý rekurzivní faktoriál? WTF?
A nakonec, jestli se Vim nebo Emacs (ano, oba fungují trošku jinak :-)) dají něčím opravdu dobře nahradit, tak asi jen IntelliJ IDEA, a to ještě jen pro některé jazyky, tj. především pro Javu. IDEA má editor opravdu docela dost inteligentní. NetBeans 6 se hodně zlepšily, ale taky mi přijde, že tam ještě něco chybí. :-) A hlavně jsou to všechno specializovaná řešení, nikoli univerzální, a tudíž silně záleží na tom, co člověk dělá.
K tej uprave Lorem ipsum.... Ja osobne na editaci vnitrnich casti zavorek (...), {...} a [...] pouzivam sekvenci cib nebo ci( a ci[ a ci{ (misto oteviracich jdou pouzit i zaviraci zavorky). Vyhoda je, ze se kurzor muze nachazet kdekoliv uvnitr bloku a smaze se cely obsah bloku (nechaji se pouze zavorky - to to "i" jako inner) nebo misto "i" pouzit "a", napr. ca( , coz vymaze kompletne cely blok i se zavorkami. Taky docela urychlujici. A ted jsem si vsimnul, ze tohle je zminovany v casti "textove objetky", tak aspon doplneni s tema zavorkama a s tim pismnkem "a".
Prechod do insert modu pomoci S (velke S) - smaze aktualni radku za zacne psat (alias pro 0Di nebo 0C).
Clipboardy: je rozdil mezi "{malepismenko}y a "{velkepismenko}y. Pouziti maleho pismenka prepise puvodni hodnotu v registru (replace), kdezto pouziti velkeho pismenka prida hodnotu ke stavajici (merge) - muzete tak z textu "cut"ovat jednotlive casti do jednoho registru (nejrive male pismenko a pak velka) a pak to vsechno vlozit najednou (obvykle asi nejspis cele radky). Dale taky pozor, ze registry se pouzivaji taky pro makra - pokud si neco ulozite do registru "A" a pak nahrajete makro "A", tak jsem prisli o puvodni hodnotu ulozenou v "A". Na druhou stranu muzete nahrat makro, pak si ho vlozit do editoru, upravit a znovu vlozit do registru a pak pouzivat. Tak u maker je taky zminka.
Priklad s nahrazenim v casti clipboardu by sel lepe resit pomoci prikazu global :g nebo substituci :s : :%g/(/:normal 0f(lci([CTRL-V][CTRL-R]a[CTRL-V][ESC] (na obrazovce by melo byt videt :%g/(/:normal 0f(lci(^Ra^[ nebo lepe :%s/([^)]*)/([CTRL-R]a)/g (na obrazovce bude :%s/([^)]*)/(Nahrazeny text)/g
U maker bych jenom rekl, ze misto psani [CTRL-A][CTRL-A] pro zvetseni o dve by slo take jednoduse napsat cislo "2" pred [CTRL-A]. Jinak co se tyce [CTRL-V] a [CTRL-Q]. Pozor na to! Uvedl bych to na pravou miru. Vychozi chovani je opravdu takove, ze [CTRL-V] a [CTRL-Q] maji stejnou funkcnost - ve Windows instalaci je ale zrejme mapovani [CTRL-V] na paste (me totiz [CTRL-V] ve Windows funguje normalne, ale ja pouzivam vlastni gvimrc z Linuxu). Naopak v konzoli mi ve vimu nefunguje [CTRL-Q], protoze to je standardne pouzivano na povoleni vypisu v konzoli ([CTRL-S] zastavi konzoli, [CTRL-Q] ji zase spusti), takze [CTRL-Q] nefunguje ve vimu v konzoli. Ja osobne vsude pouzivam [CTRL-V] prave diky vlastni konfiguraci na Windows.
K prikazu :retab! - aby se mezery nahradily na TABy, musi byt vypnuta volba expandtab, cili :set noexpandtab nebo kratce :set noet (btw muj default pro ts a sw je 2:-))
A jeste drobnosti na konec. Tenhle post je jenom doplneni, pripadne drobna oprava, ale clanek je super. Pokud upozornuju na neco, co uz ve clanku je nebo to uz nekdo napsal do diskuze, tak sorry, trvalo mi to dlouho, nez jsem to precet a sepsal:-)
Jinak souhlasim, ze ne na vsechny upravy se da pouzit regexp, obcas by byly silene slozity, ale treba prave prikaz global se na to muze hodit - kombinace vyhledani regularu a pak uprava prikazama vimu
Jinak ja osobne deseti nepisu, ale i tak ve vimu pisu docela rychle. Sipky taky pouzivam a proto jsem obcas hodne rozhozenej, kdyz ma nekdo nejakou "super novou klavesnici, se kterou je proste IN". Uz jsem i uvazovalo o zapnuti vi-like chovani v bashi:-) Ale nakonec jsem to vzdal:-)
vimu a ne ve vi), nebo můžu spojit editační příkazy s příkazy pro pohyb v textu (což je právě jedna z důležitých vlastností vimu). Takže dfX vymaže text od místa kurzoru až po nejbližší X včetně, y* okopíruje text až po nejbližší opakování slova, na kterém je kurzor, nebo d`a smaže řádky mezi kurzorem a (dříve vloženou) značkou a. A nemusím nic počítat…