Portál AbcLinuxu, 21. května 2025 14:08

Editor Vim a přepínání stavového řádku

28.2.2005 15:38 | Přečteno: 1854× | © | poslední úprava: 1.3.2005 02:03

Protože ne každý má textový režim nastavený na více jak 80 znaků šířky, na stavový řádek Vimu se toho moc nevejde. Existuje ale možnost přepínat mezi různými stavovými řádky. Jak se to dělá vám rád ukáži (poněkud vylepšená verze je nyní k prostudování také zde, chcete-li vidět, co reálně používám já, tak se podívejte sem).

Do svého ~/.vimrc dejte následující kód a pak klávesou F3 můžete v normálním módu Vimu přepínat mezi různými stavovými řádky. Uvedený kód je jen příklad!

Nejprve uvedu pro pořádek několikero funkcí, které jsou v příkladu použity.

"Par funkci, ktere jsou pouzity v prikladech 

"Spocita procenta

fu! Percent()

  let byte = line2byte( line( "." ) ) + col( "." ) - 1
  let size = (line2byte( line( "$" ) + 1 ) - 1)

  return (byte * 100) / size

endf

"Vrati hodnotu kodovani souboru anebo textik

fu! FileEncoding()

  if &fileencoding == ''
    return "is not set"
  else
    return &fenc
  endif

endf

" Vrati hodnotu globalniho kodovani anebo textik

fu! GlobalEncoding()

  if &fileencoding == ''
    return "is not set"
  else
    return &enc
  endif

endf

A nyní již samotný příklad na implementaci přepínání více druhů stavového řádků v editoru Vim. Podotýkám, že uvedený příklad lze snadno přetransformovat i na použití s rulerem Vimu.

"A samotna implementace prepinani stavoveho radku

"Nadefinujeme si jednotlive statusline

let g:StatusLines{0}='[%03bD | %5(0x%02BH%)] [%8oC=%3{Percent()}%%] [%8c] : [%8l/%8L = %3p%%]'
let g:StatusLines{1}='[GENC %10(%{GlobalEncoding()}%)] [FENC %10(%{FileEncoding()}%)]'
let g:StatusLines{2}='[%n] %F'
let g:StatusLinesCurrent=-1

"Namapujeme si klavesu

map <F3> :call ToggleStatusLine()

"Funkce, ktera prepina jednolive statusline

fu! ToggleStatusLine()
  let g:StatusLinesCurrent=g:StatusLinesCurrent+1
  if (!exists("g:StatusLines" . g:StatusLinesCurrent))
    let g:StatusLinesCurrent=0
  endif
  let &statusline=g:StatusLines{g:StatusLinesCurrent}
endf

"Nakonec jeste zapneme prvni variantu

call ToggleStatusLine()

Velice jednoduché... Tak co? Není to přesně to, po čem ste už dlouho toužili??

       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

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