Portál AbcLinuxu, 9. listopadu 2025 07:03
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í.
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.
:tabnew -> otevře nový prázdný tab:tabnew soubor -> otevře nový tab s definovaným souborem:tabnew +Ex -> otevře nový tab a v něm spustí interaktivní výběr souborugt nebo Ctrl+PageDown -> následující tabgT nebo Ctrl+PageUp -> předchozí tab4gt -> skočí na 4. tab2gT -> skočí o 2 taby zpětgF -> otevře v aktuálním tabu soubor na kurzoru:tab sp -> otevře aktuální okno v novém tabu:tab help version7 -> otevře v novém tabu nápovědu k verzi 7Ctrl+w T -> osamostatní aktuální okno v nového tabutabm1 -> přesune tab před 1. tabtabo -> zavře ostatní tabytabc2 -> zavře 2. tabtabdo $s/Bill/kill Bill/g -> provede nahrazení ve všech tabechV 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.
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.
:set spell spelllang=cs -> zapnutí kontroly českého pravopisu:set nospell -> vypnutí kontroly pravopisu]s -> následující chyba[s -> předchozí chybazg -> slovo pod kurzorem je správně (ukládá do ~/.vim/spell/{spelllang}.{encoding}.add*)zG -> jako předchozí, ale po ukončení Vimu je vše zapomenuto (ukládá do /tmp/v*/*)zw -> slovo pod kurzorem je špatnězW -> jako předchozí, ale po ukončení Vimu je vše zapomenutoz= -> vypíše možnosti opravy chybného slovaJe 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.
:earlier 10m -> vrať se do stavu před 10 minutami:later 10m -> vrať se do stavu po 10 minutách:undolist -> seznam změng+ -> novějsí stavg- -> starší stavga -> vytiskne ASCII hodnotu znaku pod kurzorem a jeho desítkovou, šestnáckovou a osmičkovou hodnotug8 -> vytiskne šestnáctkovou hodnotu znaku pod kurzorem8g8 -> hledá neplatné sekvence UTF-8 bytůTím myslím např. kulaté závorky, závorky vyznačující funkce, cykly, podmínky atp.
:NoMatchParen -> vypnutí:DoMatchParen -> zapnutí:hi MatchParen ctermbg=blue guibg=lightblue -> nastavení barvy pozadí tohoto typu zvýraznění pro barevný terminál a pro GUIProhledává i komprimované soubory (*.gz atp.) a nedělá mu problémy různé kódování.
:cd src -> nastaví src jako pracovní adresář:vimgrep /vzor/ *.c *.h *.gz -> v definovaných souborech v pracovním adresáři hledá vzor:1vimgrep /vzor/ * -> po nalezení první shody ukončí vyhledávání:copen -> otevře okno s výsledky, na nalezené pozice se přesuneme buď najetím kurzoru a stisknutím klávesy Enter nebo kliknutím myšiCtrl+w Ctrl+w -> přepínání mezi okny:cclose -> zavře okno s výsledky:cp -> následující nalezená pozice:cn -> předchozí nalezená poziceVylepš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.
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.
set completeopts-=menu set iskeyword+=199-255
:he hl-SpellCap :hi SpellCap
diky, to je ono, nenapadlo me, ze na zacatku vety musi byt velke pismenoV češtině je velké písmeno na začátku věty celkem běžné
Poradi nekdo?
:he 'fileencodings'
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
Ale škola to nemusí být špatná, aspoň se tam učí i praxe a ne jen teoretické žvásty...
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
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.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.