Úplným začátečník s linuxem doporučuji používat jako editor mcedit, který je součástí balíčku mc (midning commander - obdoba starého známého norton commander pro MSDOS) a lze je též vyvolat klávesou F4 po najetí na soubor, který chcete editovat. mcedit nainstalujete přikazen aptitude install mc
Pokud to s Linuxem myslíte vážnějí, naučte se program Vim. Návodů je na internetu celá řada, zde popsané typy jsou užitečné spíše mírně pokročilým, kteří si již nějaký ten základní návod alespoň jednou přečetli. Můžete též začít tím, že se podíváte na náš filmeček.
Plnou verzi editoru Vim nainstalujete příkazem
aptitude install vim
Defaultně je přítomna jen verze základní, která neumí například zvýraznění syntaxe.
Dalším krokem je vytvoření si vlastního konfiguračního souboru. Tím docílíte, že po spuštění bude vim nastaven jak, je vám pohodlné. (např. se syntax highliting)
Příklad konfiguračního souboru:
" řádek s poznámkou začínám uvozovkou " po startu je zapnuto zvýrazňování syntaxe syntax on " pokud mám v normal režimu českou klávesnici, může být zadávání čísel nebo : značně nepohodlné set langmap=ě2,š3,č4,ř5,ž6,ý7,á8,í9,é0,ů: "\":,-/,_?,ů: - tohle je ale už zavádějící " edituji-li přímo webové stránky, může být dobré z bezpečnostních důvodů vypnout swapovací soubory, které by mohly odkrýt zdrojový kód "set noswapfile " chci li něco pástnout přepnu se do paste režimu, abych tím vypnul automatické odsazování set pastetoggle=<F11> " vlevo uvidíme čísla řádek - vypnout se to dá napsáním :set nonumber set number " uložit soubor bude možné i zmáčknutím klávesy F2, jak jsme zvyklí z editoru mcedit map <F2> :w<CR> imap <F2> <Esc>:w<CR>i " vše níže je užitečné, jen pokud chcete provádět zaheslování textových souborů pomocí :X " -------------------------------------------------------------------------------------------- " soubory s koncovkou zip mohou být textové soubory pro vim zašifrovane pomocí blowfish " více info šifrování souborů :h :X (informace na webu jsou zastaralé) " Koncovka zip je vybrána jako kamufláž, může být libovolná jiná. function! HeadlineDelimiterExpression(lnum) if a:lnum == 1 return ">1" endif return (getline(a:lnum)=~"^\\s*==.*==\\s*$") ? ">1" : "=" endfunction set cm=blowfish autocmd BufReadPost,FileReadPost *.{zip} set viminfo= autocmd BufReadPost,FileReadPost *.{zip} set foldexpr=HeadlineDelimiterExpression(v:lnum) autocmd BufReadPost,FileReadPost *.{zip} set foldlevel=0 autocmd BufReadPost,FileReadPost *.{zip} set foldcolumn=0 autocmd BufReadPost,FileReadPost *.{zip} set foldmethod=expr autocmd BufReadPost,FileReadPost *.{zip} set foldtext=getline(v:foldstart) autocmd BufReadPost,FileReadPost *.{zip} nnoremap <silent><space> :exe 'silent! normal! za'.(foldlevel('.')?'':'l')<CR> autocmd BufReadPost,FileReadPost *.{zip} nnoremap <silent>q :q<CR> autocmd BufReadPost,FileReadPost *.{zip} highlight Folded ctermbg=red ctermfg=black autocmd BufReadPost,FileReadPost *.{zip} set updatetime=300000 " Když nikdo dlouho nehejbe kurzorem, zavřu foldy a vim ukončíme autocmd CursorHold *.{zip} normal zm autocmd CursorHold *.{zip} redraw autocmd CursorHold *.{zip} quit " Pokud dám :q , před odchodem z vimu, zavřeme všechny foldy autocmd VimLeavePre *.{bfa,fish} normal zm autocmd VimLeavePre *.{bfa,fish} redraw
První nevýhoda editoru mcedit, která může být dost dobře důvodem, proč přejít na vim, je to, že mcedit neumožňuje mít ovtevřených více souborů zároveň.
V editoru vim otevřete více souborů v různých tabech (pane- proto p) příkazem.
vim -p index.html index2.html readme.txt
Příkaz otevře 3 soubory, mezi kterými můžeme přecházet zadáním gt nebo gT v normálním režimu. Další soubor můžete otevřít pomocí
:tabnew nazev_soboru.txt
Pokud chceme zavřít další tab, použijeme
:bdelete
což je buffer delete nebo
:bdelete!
pokud nechceme výsledek uložit. Tab je možné zavřít i pomocí :q, ale je to nebezpečné, protože soubor stále zůstane v paměti. (není pak možné jej otevřít pomocí jiného vim. Navíc pokud jsme zavřeli tab, ve kterém jsou neuložené změny pomocí :q! , tak vim nejde pak vůbec ukončit, jedině příkazem :qall!)
Pokud chcete porovnávat dva podobné soubory, použijte
vimdiff index.html index2.html
Soubory se v tomto případě otevřou vedle sebe a rozdíly budou zvýrazněny. Přepínat se můžete mezi jednotlivými sloupečky pomocí ctrw+w
mazání v normal režimu = vkládání do zásobníku
foldy - záhyby - je způsob jak můžeme zpřehlednit soubor tím, že umožním skrýt jistou jeho část.
Rozevřený fold
Část níže se skryje {{{ - tohle značí začátek 3 závorky za sebou tohle je část, kterou pak mohu skrýt, aby vše bylo přehlednější }}} - tohle značí konec foldu - tři závorky
zavřený fold
Část níže se skryje +-- 4 řádků:- tohle značí začátek foldu----------------------------------
Pokud chci něco najít, napíši lomítko / a slovo, které hledám Enter. Hledané slovo pak bude zvýrazněno a já mohu procházet jednotlivými výskyty mačkáním n- n jako next N - velké N jako opak next tedy předchozí
příklady nahrazování:
:12,31s/\$oper\[/ /g :%s/,\(2720[0-9]\{5\}\)\/\(.\{8\}\)/register => \1:\2@mujtel\/00420\1/gc :1,3s/\([0-9]\{9\}\)/insert into VTAs set cislo='\1';/g :10,20s/.*=> \([0-9]\{9\}\):.*/insert into vd_cisla set id='00420\1'/ # nebo % na začátku :%s/ *$//gc # smaže prázdné konce řádků v celém souboru - může vzniknout nechtěně, když provedeme paste :%s/^\([0-9]\{9\}\)$/insert into VTAs set cislo='\1';/g # na každém řádku najdu devítimístné číslo, udělám z něj sql dotaz :%s/^\([0-9]\{12\}\) *\([^ ]*\)/insert into ukr_acc set number="\1",pass="\2";/gc # vloží jméno a heslo do databáze :26,40s/^| \([0-9]\{6\}\).*\([0-9]\{9\}\)$/update `lines` set emergency_callerid='00420\2' where id=\1 limit 2;/gc :%s/^\([0-9]*\),\([0-9]\{6\}\)$/update `lines` set callerid="\1" where id="\2" and user_id='7011685'; :%s/^\([0-9]*\),\([0-9]\{6\}\)$/INSERT INTO queue_pending_jobs SET created_on=NOW(), job_type='proxy_clip_reload', params='[\2,"\1"]';
hinty % - značí, že se provádí na celém souboru, 1,3 - značí, že se provádí od řádky 1 do řádky 3,
$/^ - konec/začátek řádku
g - provádíme globálně tedy vícekrát ne jen jednou
c - confirm - budeme dotázání- zda-li si záměnu přejeme provést.
Instalace českého slovníku:
cd /usr/share/vim/vim71/spell/ wget ftp://ftp.vim.org/pub/vim/runtime/spell/cs.utf-8.spl
Zapínání, vypínání, volba jazyka
:set spell spelllang=cs :set spell spelllang=en :set nospell :syntax off # - zvýrazňování syntaxe může být někde nepřehledné, když je používáno dohromady s kontrolou pravopisu :syntax on
Nastavení si můžete uložit do svého konfiguráku /etc/vim/vimrc.local (tam se ale píše bez dvojteček na začátku) já tam mám též pozměněné barevné rozlišení:
highlight clear SpellBad highlight SpellBad term=standout ctermfg=1 term=underline cterm=underline highlight clear SpellCap highlight SpellCap term=underline cterm=underline highlight clear SpellRare highlight SpellRare term=underline cterm=underline highlight clear SpellLocal highlight SpellLocal term=underline cterm=underline
:!echo %:p
Nyní, když už umíme pracovat s editorem vim, nastavíme si jej jako defaultní editor pro Midning commander
vim /usr/share/mc/mc.ext # Default target for anything not described above default/* Open= View= Edit=%var{EDITOR:vim} %f
Přidám řádek Edit=%var{EDITOR:vim} %f
Interní editor to přestane používat, i když je nastaveno v menu Nastavení, Konfigurace, že se má používat interní editor.