Portál AbcLinuxu, 29. května 2024 10:19

Vim 7.0

19. 5. 2006 | Jan Fuchs
Články - Vim 7.0  

Co nového nám přináší verze Vim 7.0 vydaná 8. května? V článku najdete základní popis nových funkcí a návod k jejich ovládání.

Obsah

gvim 7.0

Podpora tabů

Tato novinka mě potěšila ze všeho nejvíce. Chceme-li např. otevřít v tabech všechny zdrojové kódy v aktuálním adresáři, stačí zadat:

vim -p *.c *.h

Maximální počet otevřených tabů se nastavuje pomocí:

set tabpagemax=20

Nyní se ukážeme, jak s taby pracovat.

V případě, že již nemáme zájem se souborem pracovat, nepoužijeme příkaz pro zavření tabu, ale příkaz pro odstranění bufferu :bd, který nám zároveň zajistí zavření tabu. Pro uzavření všech tabů a ukončení editoru použijeme :qa. Chceme-li uzavřít pouze aktuální tab a uložit změny, přijde mi jako nejrychlejší řešení ZZ.

Kontrola pravopisu

Z ftp://ftp.vim.org/pub/vim/runtime/spell/ si stáhneme spell soubory, o které máme zájem (cs.iso-8859-2.spl, cs.utf-8.spl, cs.cp1250.spl). A uložíme si je do ~/.vim/spell/ nebo {runtimepath}/spell/. Soubor se hledá dle vzoru {runtimepath}/spell/{spelllang}.{encoding}.spl.

Vylepšené doplňování kódu

Je k dispozici vyskakovací nabídka s možnostmi pro doplnění; viz obrázek. Jsme-li ve vkládacím režimu, můžeme použít Ctrl+x Ctrl+o pro doplňování dle použitého jazyka. Např. nám Vim může radit s HTML, C, PHP, SQL atp.

Rozšíření možností vracení změn

Rozšířená podpora Unicode

Zvýrazňování páru

Tím myslím např. kulaté závorky, závorky vyznačující funkce, cykly, podmínky atp.

Interní grep

Prohledává i komprimované soubory (*.gz atp.) a nedělá mu problémy různé kódování.

A další...

Vylepšeny možnosti pohybu (asi jako more -> less) v případě, že se výpis příkazu (např. :ls) nevejde na jednu obrazovku. Více viz :help more-prompt. V případě, že ukončíme procházení výpisu příkazu, tak si můžeme zobrazit poslední stránku tohoto výpisu g<.

Nastavení :set virtualedit=onemore umožní posouvat kurzor o jeden znak za konec řádku.

Nezmínil jsem úplně všechny novinky, takže máte-li zájem o kompletní seznam, zkuste :help version7.

Závěr

Nová verze Vimu mě mile překvapila, dočkal jsem se vylepšení, která mi chyběla.

BTW: Stále jsem se vyhýbal GUI verzi a používal výhradně ncurses, ale podpora tabů byla poslední kapička, která mě přiměla začít používat gvim. V této souvislosti jsem si vytvořil následující aliasy v ~/.bashrc:

alias vim="gvim --servername INDEX --remote-send '<C-\><C-N>:tabnew<CR>' --remote "
alias view="gview --servername INDEX --remote-send '<C-\><C-N>:tabnew<CR>' --remote "

A přidal řádek do ~/.muttrc:

set editor="gvim --servername INDEX --remote-send '<C-\\><C-N>:tabnew<CR>' --remote-wait"

Nyní po spuštění X provedu i spuštění GVimu:

gvim --servername INDEX

Poté stačí stačí vesele pracovat v terminálu dle zvyku, ale veškerá editace všech souborů a e-mailů probíhá v jedné instanci GVimu.

Související články

Editor VIM prakticky - I
Editor VIM prakticky - II
Emacs - jak začít
Mutt - jak začít
Seriál: BASH
Srovnání HTML editorů
Na XML s XXE
Textové hudební přehrávače
Textové hudební přehrávače - II

Odkazy a zdroje

vim.org

Další články z této rubriky

Praktický test komprese ZPAQ v programu lrzip
Porovnávání souborů PDF
Microsoft rozdává zadarmo stovky e-knih
Minimalistické prezentace s Markdown
Kde hledat Creative Commons a alternativy

Diskuse k tomuto článku

19.5.2006 00:27 Goffix | skóre: 25 | blog: Powered by ArchLinux | Hradec Králové
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
No, takovýhle článek jsem potřeboval... poslední kapka abych ho šel konečně nainstalovat.. Hezky napsané a ty funkce jdu hned prubnout ;-)
19.5.2006 01:42 washeck | skóre: 4
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Mně se líbí hlavně ta fuknce later. Příjdu do práce, udělám :later 8h a můžu jít domů :)

Jinak Vim 7 používám od poslední beta verze a nejvíc oceňuju integrovaný spell checker. To mi opravdu chybělo. Škoda jen, že to není integrováno s databází aspellu, ale o tom se tu už mluvilo...
19.5.2006 02:24 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Skvělý článek. Já jsem vim 7 nainstaloval ve windows a stále přemýšlím, jestli se mám vrátit k šestce, nebo ne. na jedné straně jsou taby, na druhé straně zmršené doplňování, které ale v šestce funguje dobře. Když dám Ctrl-P, nebo Ctrl-N a chci třeba doplňovat česká slova, vim 7 to nezvládne. Třeba nedoplní slovo "chybí", ale pouze "chyb". Navíc bych se rád zbavil toho seznamu, který se objeví při doplňování, protože mě ruší a v šestce to není.
http://ponkrac.net
Nejsemtu avatar 19.5.2006 08:48 Nejsemtu | skóre: 14 | blog: Nejde Smazat
Rozbalit Rozbalit vše Re: Vim 7.0
Tohle mi dělá i poslední 6. Spíš jsem doufal, že v 7 to bude fungovat :-/.
19.5.2006 09:17 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Vim 7.0
Hrubé řešení:
set completeopts-=menu
set iskeyword+=199-255
David Watzke avatar 19.5.2006 05:18 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Fajn článek, děkuju. Za tabíky jsem taky rád :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
19.5.2006 10:28 MaraCh
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Děkuji za článek - díky němu jsem se rozhodl již vim 7 nainstalovat na svůj Debian (již je v unstable).

Zejména si slibuji hodně od tabů. Váš příklad uvedený v závěru měl pro mne několik chyb: Tak jsem chvíli pátral a zjistil jsem, že existuje přepínač --remote-tab a díky němu to vypadá, že vše bude fungovat dle mojich představ.
19.5.2006 11:17 MaraCh
Rozbalit Rozbalit vše Re: Vim 7.0
Zatím to vypadá, že budu spokojen s následujícím alias:

alias vi="gvim --servername $USER@`hostname` --remote-tab-silent"

Řeší mi to i problémy na vzdáleném terminálu, když něco edituji lokálně či vzdáleně či jsem přes ssh jako jiný uživatel. Bohužel nevýhoda je, že je vyžadováno, aby vždy za "vi" byl uveden název souboru - prostě při čistém "vi" se vim nerozjede.
19.5.2006 10:53 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokial si otvorim viac tab-ov, zvyraznovanie syntaxe mam len v prvom.
Takisto - pokial dam v hociktorom z nich :syntax off, v prvom tabe sa zvyraznovanie zrusi
Project Satan infects Calculon with Werecar virus
19.5.2006 11:01 MaraCh
Rozbalit Rozbalit vše Re: Vim 7.0
Tento problém u sebe nepozoruji (vim 7.0.17). Zvírazněnou syntax vidím ve všech tabech a pokud dám :syntax off tak ve všech tabech zmizí.
19.5.2006 11:06 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Vim 7.0
Jasne, beriem spat - prvy subor bol perl a ostatne boli ine (pre vim6x mam k nim slovnik) ;-)
Project Satan infects Calculon with Werecar virus
19.5.2006 12:29 utri | skóre: 6
Rozbalit Rozbalit vše kontrola pravopisu a zvyrazneni prvniho slova
Odpovědět | Sbalit | Link | Blokovat | Admin
zdravim,

pokud si zapnu kontrolu pravopisu, tak se mi prvni slovo vzdy zvyrazni modre (v gvim podvlnovkuje), nevite jak to vypnout?, moc se mi to nelibi, diky
19.5.2006 13:04 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: kontrola pravopisu a zvyrazneni prvniho slova
Co tohle?
:he hl-SpellCap
:hi SpellCap
19.5.2006 14:28 utri | skóre: 6
Rozbalit Rozbalit vše Re: kontrola pravopisu a zvyrazneni prvniho slova
diky, to je ono, nenapadlo me, ze na zacatku vety musi byt velke pismeno (pisu jen malyma)
19.5.2006 17:55 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: kontrola pravopisu a zvyrazneni prvniho slova
diky, to je ono, nenapadlo me, ze na zacatku vety musi byt velke pismeno
V češtině je velké písmeno na začátku věty celkem běžné :-)
19.5.2006 12:44 pp_jj | skóre: 8 | blog: kdysi jsem tu psal
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
kdyz otevru soubor, Vim automaticky rozpozna kodovani. Ale ne v pripade, pokud ten soubor je v utf-8. A to ja potrebuju :-( Poradi nekdo?
Best viewed in Mozilla Explorer.
19.5.2006 13:03 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Vim 7.0
Co tohle?
:he 'fileencodings'
19.5.2006 18:26 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak to je poslední kapka k tomu, abych začal používat vim. Zatím jsem byl zbabělý. Takže můj letošní plán:
Pochybnost, nejistota - základ poznání
Josef Kufner avatar 19.5.2006 18:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Vim 7.0
Máš to ve špatném pořadí :-D
Hello world ! Segmentation fault (core dumped)
Ku8aZ avatar 19.5.2006 19:31 Ku8aZ | skóre: 17
Rozbalit Rozbalit vše Re: Vim 7.0
Myslíte jako:
Naučit se vim
Dostat se na VŠ
Zmaturovat
? :-D
Čeho se vlastně člověk bojí, když se bojí tmy...? jabber: ku8az AT jabbim.cz
David Watzke avatar 19.5.2006 19:34 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Vim 7.0
Ne; naučit se vim, naučit se vim, naučit se vim :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
22.5.2006 16:49 Jiří Daněk | skóre: 12 | blog: muj_blogisek
Rozbalit Rozbalit vše Re: Vim 7.0
Ne:

Maturita

VIM
Byl jeden pán a ten měl psa. HAFUŠA se jmenoval.
Kolegove teoretici, mohu vedet kteryzto slavny ustav prijima uchazece bez radne slozene maturitni zkousky?
Ku8aZ avatar 24.5.2006 10:14 Ku8aZ | skóre: 17
Rozbalit Rozbalit vše Re: Vim 7.0
Třeba tenhle :-D Osobně jsem zažil, že kamarád rupnul z matiky, takže musel na maturu až po reparátu, a stejně ho vzali bez přijímaček :-D

Ale škola to nemusí být špatná, aspoň se tam učí i praxe a ne jen teoretické žvásty...
Čeho se vlastně člověk bojí, když se bojí tmy...? jabber: ku8az AT jabbim.cz
Fuky avatar 19.5.2006 19:50 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Řešení problému s BackSpace
Odpovědět | Sbalit | Link | Blokovat | Admin

Málem bych zapomněl, při přechodu na novou verzi se začala chovat jinak klávesa BackSpace. Umazávala znaky pouze z aktuálně psaného textu. Např. vkládací režim, pišu text, posunu se o znak doleva a v tuto chvíli již nemohu umazat znak pomocí BackSpace. Řešení:

:set backspace=indent,eol,start

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
kyknos avatar 20.5.2006 11:20 kyknos | skóre: 18 | blog: Quid novi? | Ranša Rosa
Rozbalit Rozbalit vše Re: Řešení problému s BackSpace
tak se choval vim odjakziva. zrejme se ti zmenily konfiguraky, tu volbu si v nekterem musel mit i drive
So the Nationalists and the Socialists have the same policy on Brexit. They should get together and form a...
Fuky avatar 20.5.2006 12:49 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Řešení problému s BackSpace

Máš pravdu, ta volba byla v systémovém konfiguráku /usr/share/vim/vimrc, novéhu Vima jsem instaloval do /usr/local/share/vim/, ale již jsem tam nevytvořil vimrc. Raději mám veškeré nastavení v $HOME, kvůli snadnějšímu přenesení konfigurace prostředí na cizí počítače.

kyknos avatar 20.5.2006 11:08 kyknos | skóre: 18 | blog: Quid novi? | Ranša Rosa
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Sedmička je ještě úžasnější než šestka. Nechápu proč ještě existují jiné editory :)
So the Nationalists and the Socialists have the same policy on Brexit. They should get together and form a...
22.5.2006 07:53 Martin Lebeda | skóre: 22 | blog: Martinuv_blog | Plzeň
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
elegantní přehled novinek, něco takového mi chybělo...díky
24.5.2006 18:33 ho.ho
Rozbalit Rozbalit vše Re: Vim 7.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobré.. právě jsem si to nainstaloval a nastavil podle Vašeho návodu. Jediné, co mi chybí ke štěstí, je, aby se gvim s nově otevřenou záložkou stal aktivním oknem, abych ho nemusel po zadání příkazu z konzole kdesi dolovat.. Nevíte někdo, jak se s tímhle vypořádat? Díky

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.