Tak trochu nadrzo vyuziji tento clanek, abych upozornil na sve stranky, kde se VIMu take trochu venuji a kde mam ukazku pokrocilejsi konfigurace, ktera by se mohla mnohym libit. Napr. prepinani kodovani a prekodovani dokumentu z menu, vcetne trvale indikace, jake kodovani je zrovna zapnuto a pod.
Názory k článku
VIM na plný výkon: .vimrc
Re:
celé vláknomam oatzku k diakritice.
pracuji na win, putty a nastaveni cp1250. Edituji soubor na serveru (je zakodovan v 1250) a vse je ok az na tech 6 znaku (myslim s,z,d s hackem ze). Ostatni veci napr. u s krouzkem a jine jsou na obrazovce OK a take v souboru. Nevite cim to je? Spravi to vas plugin?
Re:
celé vláknoPodle toho, co to dělá. Pokud je problém v tom, že ve vašem locale nejsou znaky v rozsahu 128-159 vůbec považována za písmena, tak si nastavte set termencoding=iso-8859-2, v putty překódování do téhož a set fileencoding=windows-1250.
Jedině, že byste editoval různě kódované soubory a/nebo v různých prostředích, pak je třeba to řešit flexibilněji ... já jsem např. vim nahradil skriptem, který zjistí kódování pomocí enca (http://trific.ath.cx/software/enca/) a podle toho se zařídí (např. pro UTF-8 používám jiný font, kde je i azbuka ;-) Milovníci bloatware by si mohli detekci přidat do nějakého autocommandu.
Re:
celé vláknoA neni to nahodou nastavenim Putty? V konfiguraci je mozne nastavit prekladani znaku z 1250 na 8859-2 coz by celkem odpovidalo...
Re:
celé vláknonastavenim putty to nemuze byt, protoze v joe a v bash je vsechno OK pri jednom a to samem putty nastaveni.
Ve vim-u se misto 'z s hackem' objevi '~N'. Vim tyto znaky rozumi take spravne (napr. pri kopirovani bufferu) a ve vyslednem filu jsou spravne znaky odpovidajici sade. Vypada to tak, jak uvedl Yeti, ze znaky z nezobrazitelneho rozsahu vim patrne konvertuje jak od putty tak k ni.
Vypada to halt jenom blbe na obrazovce a nevim proc tam neni nekde prepinac, ktery by zamezil, aby vim s tema znakama nic nedelel.
Re:
celé vláknoA nechces napsat nejaky pekny clanek, az tenhle serial dojede? :)
Re:
celé vláknoPridavam se k prosbe. Wraitha sleduji jiz delsi dobu a je vecna skoda, ze zatim o Vimu nic nikam nenapsal ;-) (nepocitam-li jeho web :)
Re:
celé vlákno...stejne vsichni vsechno vedi; ten web je akosi zatuhly delsi dobu: neni se holt v pruzracnem VIMu na co ptat...
A takze jak to tu ctu, pujde se na rootu cestou clanku vysvetlujicich vimrc jednoho kazdeho uzivatele? jojoj...
zdravim
_J
Re:
celé vláknoTo si pletes s jinym webem :-).
Pro ostatni: http://mageo.cz/.chatroom/39103
Diskuzni forum, kde se resi problemy s vimem. Neni potreba se tam logovat.
Re:
celé vláknoJá tedy nevím, ale zkoušel jsem se na tuhle úžasnou diskusi na mageu už podívat mockrát, ale odkazy, co tu občas někdo plácne, mi vrací 403-Forbidden, včetně pokusu přístupu na www.mageo.cz (Dnes je to už změna - taky 403. Dříve nenalezena vůbec). Ještě jsem nenarazil na odkaz, skrze který bych se tam mohl dostat... Řekne mi někdo, o co tu jde? Nebo je nějaká chyba na židli? Jaká?
Re:
celé vláknoNevím jak ve vašem případě, ale já se na mageo nedostanu proto, že naše proxy je na toto slovo "mageo" alergická. (Ano, ano, jeden z nejdebilnějších způsobů přístupové politiky proxy.)
Re:
celé vlákno...tak to leda jit za vysnenou VIM diskuzi pres nejaky anonymizer ;-)))
UTF-8
celé vláknoja mam podobny problem. Ked pisem, potrebujem aby to bolo kodovane v utf-8. mam nastavene:
:set fileencoding=utf-8 no nefunguje to. Stale to savuje asi v ISO-8859-1(alebo v niecom podobnom). neviete pomoct?
Re: UTF-8
celé vláknoUTF mi funguje, akorat je potreba jeste nastavit font (v gvim pomoci set guifont, ve vim se musi nastavit spravny font v konzoli-xterm/konsole/eterm/*term) a zrejme musi byt podpora pro UTF8 zakompilovana ve vimu.
Re: UTF-8
celé vláknoNevim, jaky pouzivate OS a typ VIMu (graficky nebo bez grafiky). Ja pouzivam VIM bez grafiky (terminalovy) v okne xterm nebo rxvt na Linuxu. V tomto pripade pouzivam na prekodovani nasledujici postup (popsany v helpu):
let &tenc=&enc
set enc=utf-8
Coz po rade znamena: nastav promennou terminalencoding na soucasnou hodnotu encoding (kdyz se nelisi, je tenc vypnute, proto se musi rucne nastavit) a pote nastav encoding (kodovani, ktere vim pouziva pri praci s timto souborem) na utf-8.
Zasadni rozdil mezi encoding a fileencoding je v tom, ze fileencoding se pouziva jen pri vystupu (:w), zatimco kdyz mate rozdilne tenc a enc, tak se "preklad" dela interaktvne pri vstupu z klavesnice a vystupu na obrazovku - podobny system jako kdyz takovy preklad dela napr. emulator terminalu (PuTTY na windows apod.)
Jedina chybka, na kterou jsem pri takove praci narazil, je pri otevreni dalsiho souboru v novem okne (mysleno vim okno, ne okno xterm-u). Promenne se tvari nastavene spravne, ale prekodovani je provedeno chybne, na obrazovce je rozsypany caj. Pomuze v takovem okne zadat
:e!
a soubor se "reloadne" uz se spravnym prekodovanim na terminal.
Problem s langmap a par dotazu
celé vláknoClanek dobrej. Zkousel jsem langmap, ale jelikoz mojim default kodovanim je UTF-8 tak mi to moc nepomuze (nebo mi to aspon nefunguje).
Dale jsem se chtel zeptat, jestli nejde nejak ve Vimu nastavit, aby se pri editaci souboru vetsich nez nejaka mez (MAX) nevytvarel swap soubor (ci backup). Strasne to zdrzuje a dost casto to vede k vycerpani prostredku systemu a k ZZZPPPPPOOOOOMMMMAAAALLLLLEEEENNNNIIIII :-).
Diky Dave
Re: Problem s langmap a par dotazu
celé vláknoObavam se, ze automaticky to nepujde, leda pres nejakej bash wrapper neco jako if [ $( du "$1" ) -gt 100000 ];then vim -n "$1";else vim "$1";fi
jinak se sam podivat, jak je soubor velkej a dyztak dat -n prepinac
pisanie diakritiky
celé vláknoAk potrebujete vkladat diakritiku v iso8859-2, cp-1250, TeXu, alebo unicode kodovani (so specialnym prepisom hexa kodov znakov pre WML), tak odporucam vyskusat imap.vim plugin (insert map plugin), ktory je zaintegrovany do mojej volne pristupnej konfiguracie vimu na adrese:
http://platon.sk/projects/vimconfig/ s CVS rozhranim na
http://platon.sk/cvs/cvs.php/vimconfig/
Proste sa uz netrapite tym, ze ci ste na MS platforme alebo na Linuxe (X alebo konzola), aku klavesnicu pouzivate a ako sa vam zobrazuju fonty, proste iba pisete a viete, ze to bude OK. ;-)
midnight commander
celé vláknoZvykl jsem si pouzivat mcedit z midnight commanderu.
Neni nad normalni textovy editor :)
Re: midnight commander
celé vláknotyto editory jsou obvzlast vyhodne, kdyz poslete firemniho technika k zakaznikovi a po telefonu mu reknete, aby udelal crontab -e a prepsal nejake nastaveni. Pote se z takoveho vyletu k zakaznikovi stava okamzite i interni skoleni. A take kdyz clovek administruje ruzne systemy, (SUN) kde se vi editor normalne nevyskytuje ale mcedit je na kazdem pocitaci ze zakona nainstalovan.
Re: midnight commander
celé vláknoMozna blbe ctu, ale mam tomu rozumet tak ze na SUNu (Solarisu) neni vi? Odkdy?
Re: midnight commander
celé vláknoMáš vadný detektor ironie. Doporučuji upgrade na vyšší verzi.
Re: midnight commander
celé vláknoNerikejte ze se v tom da programovat :)
(a vim -y je taky "normalni" textovy editor)
Re: midnight commander
celé vláknoZdá se, že se snažíš vyvolat flame. OK. Pokud potřebuješ mlátit spousty textu, tak potřebuješ skutečně pořádný textový editor a ne nějakou nedomrlou náhražku. Next flame: mě stačí pořádný editor, nepotřebuji rovnou celý nový operační systém :-) (tak emacsisti, kde jste?)
Re: midnight commander
celé vlákno"mě stačí pořádný editor, nepotřebuji rovnou celý nový operační systém"
Zvlast kdyz tomu novemu OS chybi poradny textovy editor...
Re: midnight commander
celé vláknoVi neni poradny textovy editor? Jelikoz (jak jste spravne pripomeli) je emacs cely operacni system, muze na nem bezet i vi, a skutecne je pro nej portovan.
Bez titulku
celé vláknoS automatickým skokem na pozici kurzoru uloženou v okamžiku zavření bufferu či ukončení VIMu jsem měl jisté problémy. V některých verzích mi to fungovalo, v jiných (či na jiných platformách) nikoliv, až jsem nakonec někde našel tento příkaz do .vimrc:
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"z." | endif
(na jeden řádek). Od té doby mi to šlape všude bez problémů. Možná to jde i nějak elegantněji, ale nevím o tom.
Re:
celé vláknodekuji dekuji dekuji, presne to se snazim uz nakou chvili nastavit :)
Re:
celé vláknoNo konecne, super uz to ide aj mne (a to som sa s tym natrapil)
VIM je humus
celé vláknovim je fakt totalny humus. farby, zvyraznovanie a vseljake zbytocnosti, ktore len komplikuju pracu.
navyse vo vim funguju odporne kurozorove klavesove sipky, ktore cloveka odnaucia normalne pracovat s hjkl! potom taky clovek sadne za solaris,hpux a pod. a nevie editovat lebo nefunguju sipky. katastrofalna degradacia celeho it odvetvia!
skratka, klasici pouzivaju nvi.
Re: VIM je humus
celé vláknoTak s takhle ubohym prispevkem zadny flame nevyvolas!
Re: VIM je humus
celé vláknoNesnaz se, nejsi ani vtipny ani k veci. A kdyz uz, tak klasici pouzivaji zasadne bud pero, nebo psaci stroj, nebo cat. Maximalne ed.
-djz
Re: VIM je humus
celé vláknoTu degradaci začal už Guttenberg v roce 1444...
Re: VIM je humus
celé vláknoNaprosty blud. Knihtisk vynalezli buddhisticti mnisi v Koreji o vice nez 500 let drive. Vi ovsem ve stare Cine jeste nemeli - na kulickovem pocitadle by asi nebezel.
Re: VIM je humus
celé vláknoJasne, cekal jsem, ze zrovna ty sem napises zrovna neco takovehoto, ale v patek jsi mel s edem celkem problemy :-) cat+sed RULEZ! ed RULEZ!
Re: VIM je humus
celé vláknoJo, on se totiz ed pekelne blbe zapomina kdyz ho clovek nepouziva, grrr :-( A v patek byl cat rychlejsi nebo jak sme to resili ne? :-) Mno, nastuduj si ed a dame soutezeni v edu hihi.
-djz
Uložení historie per file
celé vláknoPracuji ve vimu už dlouho, ale stále jsem nepřišel na to, jak ukládat historii (undo) pro každý editovaný soubor zvlášť. Typický příklad použití je práce na projektu: opravuji první bug a edituji soubory A, B a C, pak je zavřu, kouknu (třeba až zítra) na další bug, edituji soubory B,C a D a v souboru C si všimnu, že bych se rád vrátil - i k nějakému mezistavu neuloženém v CVS. Máte někdo tip?
Re: Uložení historie per file
celé vláknoUkládat mezistavy v CVS (nebo čemkoliv podobném). vim je editor CVS je správa verzí, tak proč to míchat?
Re: Uložení historie per file
celé vláknoMyslim, ze v skutocnosti chcete to, co je popisane
v :help session-file. Plus samozrejme by asi bolo treba nejake tie premapovania a aliasy.
Per file history sa mi ale zda dost overkill, nestaci Vam per-working-directory history? To sa da vyriesit jednoducho, stacit spustat vim takto
vim -i ".viminfo" ...
a je to.
vyborny clanek
celé vláknoDiky za vyborny clanek, ktery resi mnoho mych soucasnych problemu s VIMem. Myslim, ze po doplneni meho .vimrc z toho bude uplne jiny editor :-). Tesim se na pokracovani.
Vimu není nikdy dost
celé vláknoaneb já nemít ten vim, tak nevim :-)
Re: Vimu není nikdy dost
celé vláknoAneb, jak rika klasicky vtip:
Otazka: Vis, jaky je nejlepsi editor?
Odpoved: Vim.
:-)
Re: Vimu není nikdy dost
celé vláknoA nebo taky:
Vím. Emacs.
Neberte si to nějak osobně, já používám obojí, každý na něco jiného.
Mapovací dvojice
celé vláknoSkvělý článek, jen malý návrh: myslím, že mapovací dvojice typu:
nmap <F5> :make<CR>
imap <F5> <Esc>:make<CR>
je lepší psát jako:
nmap <F5> :make<CR>
imap <F5> <Esc><F5>
či - je-li příkaz dostatečně atomický - ještě lépe:
nmap <F5> :make<CR>
imap <F5> <C-o><F5>
pochopitelně kvůli snadnějším změnám.
poznamky ve ~/.vimrc
celé vláknojakym zpusobem si mohu opoznamkovat soubor ~/.vimrc?
Re: poznamky ve ~/.vimrc
celé vlákno" toto je ma uzasna poznamka
" toto je pokracovani poznamky
" :)
Skákání po slovech
celé vláknoVim používám každý den, ale zatím se mi nepodařilo zjistit následující nastavení:
Ve vizuálním režimu chci označit/zkopírovat třeba dvě slova. Použiji tedy příkaz w, jenže ten mi označí i první písmeno následujícího slova. Při označování zpět (b) je samozřejmě vše OK.
Díky za radu.
Pavel Hofman.
Re: Skákání po slovech
celé vláknoOdpoved na Vasu otazku je:
e
(Vid :help motion.txt)
Re: Skákání po slovech
celé vláknoDíky moc, tak to jsem fakt slepej.
Re: Skákání po slovech
celé vláknonebo taky zkus v2iw v2iW v2aw v2aW
TECO
celé vlákno<flame> skutecni programatori pouzivaji TECO </flame>
<reality> 30 let stary TECO je lepsi, nez M$ notepad </reality>
Dobra vec je zkusit zmacknout v insert modu Ctrl a k nemu 'x', pak 'f' a pak pustit Ctrl ... hadejte, co to udela, treba v tomto miste (dvojznak [] nahrazuje kurzor):
/etc/pass[]
ostatne Ctrl-xl ma take sve vyhody
kdybych tento text psal ve vimu a na nasledujici radce bych ho pouzil, dostal bych kopii teto
kdybych tento tex[]
muzete 3x hadat proc :-).
int this_is_better_function_which_can_do_nothing_in_six_different_ways(){
//some code
return -1;
}
...
nothing=this_is_bet[]
//o radek vyse zmackni ctrl-p, mezi alternativami - vybira z predchoziho textu - se rozhoduje ctrl-p a ctrl-n
V kazdem pripade dekuji autorovi za vyborny clanek
Re: TECO
celé vláknoJeee, cekal jsem kdo tu zmini muj oblibeny editor. A zrovna nekdo s tak peknym nickem, zkus hadat co udela kdyz ho napises jako prikaz :-) A kdyz uz jsme u toho, celni panel procesoru jakozto editor je uplne nejlepsi, nic genialnejsiho snad neni a ani uz nikdo nevymysli.
-djz
...
celé vláknonejlepsi na $subj je,ze cokoliv si clovek usmisli,ze by od nej chtel, to si nakonec najde,ze jde.
[]
refill-mode ???
celé vláknoJak přimět VIM, aby my lámal natvrdo (hard wrap) při 80 sloupci, ale tak, jak to dělá Emacs v režimu refill-mode (tzn. jakmile něco v odstavci změním, tak se to automaticky přeformátuje)???
Re: refill-mode ???
celé vláknoNastavis :set textwidth=78
a ked zmenis odstavec, tak sa postavis kurzorom niekam do stredu odstavca a postlacas gombiky <Esc>gqap
Re: refill-mode ???
celé vláknoTo vim taky, ale to neni REFILL-MODE!
To je obycejne rucni formatovani, to je mi na nic.
Re: refill-mode ???
celé vlákno:help fo-table
Podivejte se na polozku "a".
Myslim, ze to bude to, co hledate.
Uhlí do Newcastlu?
celé vláknoTak já si taky přidám link na jeden super_extra_dobrý konednzát vychytávek:
http://www.vim.org/tips/tip.php?tip_id=305
třeba se zvědavcům, co dočtou až sem, bude hodit....
flamesy a argumenty
celé vláknozdravim,
cetl jsem tady v diskusi, ze nektere editory jsou lepsi nez vim a co tady pouzivaji skutecni programatori.
nicmene, nez tady zacne nekdo flamesit, tak by me zajimalo, proc je jejich editor lepsi nez ty ostatni.
tak panove, tady jsou moje argumenty:
http://abclinuxu.cz/clanky/ViewRelation?rid=24013
http://abclinuxu.cz/clanky/ViewRelation?rid=43196
a nevidim jeste ty vase.
bye goldenfish
Člověk se pořád učí něco nového
celé vláknoDíky za moc pěkný článek. Už jsem si myslel, že vim znám dokonale, ale ta informace o langmap mě přesvědčila o opaku. Hodně mi to pomůže, taky často přepínám CZ/EN klávesnici.
btw: já si v command režimu přepínám příkazy : a ; Častěji se používá : a nebaví mě pořád mačkat Shift
btw2: schválně si zkuste otevřít ve vimu http://www.df.lth.se/~lft/vim/mandelbrot
a spustit; to je prostě bomba...
Re: Člověk se pořád učí něco nového
celé vláknoNo ten Mandelbrot je teda neco pro windousy. Bezi to tedka zhruba tak deset minut, gvim ma alokovano 70 MB RAM a celkova alokace pameti je 730 MB a linearne roste s casem. Nevim, co to je, asi swap ci co. Vytizeni 2G6 celerona peknych 100 procent. No co, ale uz mam vykreslenou tretinu fraktalu :o)
Re: Člověk se pořád učí něco nového
celé vláknoJeeeee, ono to spadlo :o((( To abych si to pustil v Unixu :o(((
Dobry, pokracoveni sem!
celé vláknomoc hezky, i kdyz toho spoustu uz znam, dycky se tam najde neco o cem sem nevedel a co potesi ;-)
Ad langmap
celé vláknoJenom k tomu langmapu - spis uprednostnuju nastaveni ě@,š#,..., prece jen napsat na ceske klavesnici @ je nekolikanasobne vetsi problem nez cislici.
OT: Nevite nekdo o klavesnici, ktera umi psat \, @, ... pres AltGr ? Od jiste doby (X 4.1.x ?) ji nejak postradam :-/
Re: Ad langmap
celé vláknoNo mě ta v XF86 4.3.0 vyhovuje.
~~ˇ^˘˚˛`ÿ´˝¨¸|
`!@#$%^&*{}\Ż\
ΩŁ ŽŦĽ↑ıŘŢ÷×
\|€śŧ←↓→řţ[]
ƧЪŊĦ &Ł˝ß
~đĐ[]`'łŁ$'
<>Š`' ş×÷ÿ
°#&@{}^<>*
zdá se že tam některé znaky jsou i víckrát. To měla být mapa znaků s AltGr, ale root je zjevně proti, tak si to neužijete.
BFU vi
celé vláknoMně připadá, že už to vim pěkně BFU-nesní --- barvičky, menu pro výběr souboru, grafické rozhraní...
Používám verzi 4.5 a novou ani instalovat nebudu, protože se mi ty hračičky nelíbí.
Mimochodem, nevíte, jak v nové verzi vim způsobit, aby po stisku 'o' se zapnutým autoindent bylo možno odsazení rušit pomocí backspace? Ve starém 4.5 to jde a v novýchg verzích ne.
A jak se dá vypnout modrá barva pro zobrazování ~ za koncem souboru?
Re: BFU vi
celé vláknoJo, asi VIM opravdu bude BFU-nesni - zalezi ovsem na meritcich. Nabubrelym statnim urednicim se jiste podbizive libivy zdat nebude.
Pokud se ti nove verze zdaji preplacane, zaalias si "vim -u NONE -U NONE" a budes mit ciste berkeleyovske poteseni z klofani.
K dotazum: nevim, priznam se, jestli to bude behat ve 4.5, stale stahovani dev-patchu pro vim mi uz vygumovalo pamet, ale zkus si dat :set bs=indent
~ lze prebarvit zmenou skupiny v barevnem schematu.
Cest praci, VIMu zdar,
_J
"I'm tired of using vi. I get really bored."
-- Bill Joy
Re: BFU vi
celé vláknoUpresnim jeste tu svou odpoved k "~":
hi NonText gui=bold guifg=Yellow
budou vlnovky zluty, pokud mas zluty pozadi, nebudou videt ;)
Re: BFU vi
celé vláknoCo se tyce onoho "o", tak set bs=2 (hm, ted se divam, ze v novejsich verzich mi to zjevne funguje i pri bs=1), pripadne lze pouzit Ctrl-D a Ctrl-T (myslim) pro zmenseni/zvetseni indentu kdekoli na radku.
Ad BFU: Menu apod. neni problem vypnout (guioptions - ja mam v konfiguraku vypnuti amT, ted nevim, co je co ;) ), pripadne zcela vyhodit pri kompilaci. Co se tyce barvicek apod., tak syntax-highlight je IMHO docela pouzitelna vec, to, ze to ma GUI taky, protoze na barevnou konsoli se neda divat... (if !have(gui_running) syntax off rulez...).
Re: BFU vi
celé vláknoono bs=1 znamena ":set backspace=indent,eol" a bs=2 zase "set backspace=indent,eol,start".
Toz tak.
A ano - mas pravdu: barvicky jsou pouzitelne, pekne. Cim me vic poseda infantilita vlivem let stravenych pred kompjutry, tim vic se mi barvicky libi...
Vim a java
celé vláknochtel jsem se zeptat zda je nejake moznost z vimu zadat nejaky prikaz (napr. :javac ) a on by mi prelozil kod? Nevim zda to jde nebo. Jen se chci zeptat.
Diky.
PS: popripadne pokud mate nejake vylepseni pro Javisty, tak mi dejte vedet.
Re: Vim a java
celé vláknoA nebylo by lepší si přečíst help, tutoriál, nebo některý z mnoha návodů na webu?
Takové samozřejmosti vim samozřejmosti umí a dokonce to jde udělat několika způsoby.

