Ten napad se zvyraznenyma mezerama je moc pekny, co ho dat na vim.sf.net do sekce tips&tricks, at ho zna vic lidi nez ctenari roota?
Kdyz uz ocima vidim, kam chci skocit, bylo by dobre, kdyby editor tam skocit UMEL. Proto moje troska do mlyna:
Pokud jsem s kursorem v bloku a chci na jeho konec, funguje
]}
Pokud chci skocit na konec bloku nade mnou (tj. mam
for() { if() { ... } } , stojim nekde v podmince a chci skocit na konec bloku pro for), funguje
2]}
Pokud chci o vice urovni, funguji dalsi cisla.
Snad to nekomu take pomuze v orientaci, muzete to kombinovat s tim napadem zminenym v clanku nebo samostatne.
To ano, ale ]} (<hranataprava><slozenaprava>) je skok na konec bloku, lepe receno na prislusnou slozenou zavorku. Ta prava hranata zavorka je jako prefix, lze k ni pridat i jine zavorky.
:help ]
Chapu, ze ten font v diskusich roota je tezko citelny. Navic nejde zadat vic mezer vedle sebe (pro priklady odsazeni). Zkuste si ten text prispevku oznacit a prenest do editoru - samozrejme do vim :-) Tam bude pravdepodobne citelnejsi font.
Neptal se na to uz nekdo u minuleho dilu? Tam jsem take odpovidal. Staci pridat do formatoptions priznak "a" :
:set formatoptions+=a
a mit dostatecne novou versi vim, protoze tato vlastnost je az v nekterem patchi pro 6.1 (nekde mezi 18 a 174 :-)) - nejlepe tedy rovnou stahnout versi 6.2
V prve rade podle pravidel na tom kterem projektu. Nicmene i o tom uz se vedla debata u minulych dilu.
Nejde o to, co ma byt vysledkem [ :-) ] jde o to, jak si v editoru usnadnit praci co nejvic, at je pozadovany vystup jakykoliv.
Doporucuji:
:help smarttab
:help softtabstop
Napr. muzes zkusit moje oblibene nastaveni (pokud si urcujes vystup sam):
:set ts=8 sts=3 noexpandtab
StandarDní (krucinál, co pořád máte proti té češtině, vždyť je to takový pěkný jazyk) je vybrat si z několika málo zavedených (obvykle bývají v přílohách učebnic programovacích jazyků apod.) stylů formátování sdrojového kódu ten, který nejlépe vyhovuje, a pak jej pokud možno důsledně dodržovat. Samozřejmě jsou výjimky (Makefile aj.), kde je to či ono formátování předepsáno "natvrdo".
Diky za ohlasy a odkazy na clanky o tab vs mezery, tak ja osobne budu pouzivat TABulator ... . a kdyz to bude nekdo chtit neni problem to pro nej prevest na mezery.
Osobne ted pouzivat :set ts=3 :)
Mimochodem jeste pred pul rokem jsem nechapal jak se da vicko pouzivat a zacina se mi cim dal tim vice libit
Naprostý souhlas. Tabelátor má (měl) snad smysl pro vytváření tabulek v ASCII, ale jeho použití k odsazování je omyl, o formátování ani nemluvě. Je to slepá vývojová větev a patří na smetiště dějin spolu se znaky jako ENQ a DCL3. Kdo používá formfeed nebo vertikální tabelátor? Ale ten normální stále ne a ne vyhynout.
Musím se přiznat, že také moc nechápu výhodu používání tabulátorů. Rychlejší mazání? To je ve vimu o tolik rychlejší napsat x, než 4x nebo 8x? Chápu používání tabulátoru ve "WYSIWYG" editorech s proporcionálním písmem. Ale ve zdrojácích podle mého názoru nadělá tabulátor víc škody než užitku.
A kdo potrebuje standard? Je prece mnohem lepsi nastavit si odsazeni tak, jak se to libi mne, ale ostatnim nechat volnost v tom, kolik mezer preferuji oni. Neni nic horsiho, nez pracovat se zdrojakem nejakyho mezernikovyho cunete, co se zrovna blbe vyspal a libilo se mu pet mezer na "tab" a ja uz nemam sanci s tim cokoliv udelat...
A k tomu, kdyz pisu program, odsazeni bloku je LOGICKE a nema vyznam esteticky...
Mezerniky jsou prezitek a mely by se zahodit... :-)
To je naprostý omyl.
Kód programu není volný text vysázený proporcionálním písmem. Je neproporcionálním písmem právě proto, aby existovalo jednoznačné členění do sloupců (obvykle 80). Jeden sloupec má šířku jednoho znaku a o jeden sloupec vpravo se proto posunu mezerníkem. [Neexpandující se] tabelátor je naproti tomu jakási navíc zavedená jednotka odsazení, a to velmi nestabilní, tudíž k ničemu.
Mozna bychom tu debatu meli ukoncit, protoze jeden druheho stejne nepresvedcime... :-)
Ja jen proste vidim odsazeni jako "logickou" vec, tudiz by melo byt reprezentovano nejakym metaznakem pro odsazeni (tabem), ktere pak vyjadri treba "3x odsazeno" -> 3x tab. Vy to vidite jako zalezitost vizualniho vzhledu, proto chcete,a by to vsude vypadalo stejne (3x dvoj/troj/n-mezera). I kdyz nevidim jediny duvod, proc by mel nekdo chtit, aby kod vypadal vsude stejne, respektuji vas pohled.
Mluvim jen ze zkusenosti. Uz mnohokrat jsem byl nucen hrabat se v cizim kodu a kdyz autor pouzival mezerniky, byla pro mne orientace mnohem narocnejsi, protoze jsem absolutne ztratil moznost nastavit si sirku odsazeni tak jak JA chci... :-(
Naprosty souhlas, kod budiz vzdy neproporcionalni.
Je ale nutno rozlisovat tabelator coby znak (ten by mel vyhynout) a tabelator klavesu (uzitecna zalezitost, expanduje-li se do mezer :-)
Jeste bych chtel v teto souvislosti pripomenout, ze tabelator-znak ma nekdy bohuzel i syntakticky vyznam (napr. Makefile). Nastesti jde cim dal vice o historii.
Chm, chm. Když odsazuji
dlouhé_jméno_funkce_třeba_z_gtk(argumenty, ...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>argumenty, ...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>argumenty);
(zobáčky jsou tam kvůli nemožnosti formátování příspěvku) tak chci, aby mi i ty následující argumenty lícovaly s prvním. Totéž u dlouhých matematických výrazů, kde pak je poznat z fyzické logická úroveň zanoření.
Když je odsazeno pomocí mezer, všichni vidí totéž (někomu se nemusí líbit počet mezer na jednu úroveň odsazení, ale aspoň nevidí nesmysly).
Když je to odsazeno pomocí tabelátorů, mám tyto možnosti: (a) nastavit si tabelátor na stejnou velikost jako autor (takže když se mi jeho velikost odsazení nelíbí, tak jsem stejně utřel), (b) klít, protože se rozhodí formátování a já se v tom nevyznám.
Takže IMHO je to přesně naopak, než píšete vy.
rad bych se zeptal, kdyz pisu php, tak bych mel rad nekde seznam funkci a pripadne na ne kliknutim preskocil. existuje neco takoveho?
jeste druhy dotaz: casto pisu v LaTeXu a bohuzel pro tyto ucely vzdy presedlavam do emacsu pro jeho reftex modul (kontrola nad krizovymi odkazy, toc, lof, ....) existuje neco takoveho pro vim?
dik
Ad LaTeX: Nieco co by skutocne bolo analogicke s reftexom podla mna neexistuje. Ked sa mi bude chciet,
spravim extra balik, ktory bude implementovat to, co
mne osobne chyba najviac; auto-completion pre
\cite{} a \ref{}. Uz mam maly skript, ktory doplni
matchujuci \end{...}, ale este nie je celkom korektny.
Auto-completion pre \cite{} riesim pomocou
dictionary, do ktoreho si vyfiltrujem tagy z
.bib suboru.
Osobne mi vadia aj nietore vlastnosti zvyraznovania syntaxe TeXu; napr. $($ totalne rozhodi syntax a nemalo by. Patche ktore to riesili by boli prilis mohutne (v podstate je totiz cely syntax.vim dost blbo spraveny).
nebo set makeprg=ant
kdyz uz jsme u toho, pouzivam
function JavaInit()
. . . set java_allow_cpp_keywords=1
. . . set si sm
. . . set suffixes+=.class
. . . set makeprg=ant
. . . abbrev sop System.out.println
. . . abbrev sep System.err.println
endfunction
(ty tecky na zacatcich radku jsou samozrejme jenom kvuli odsazeni)
Docela casto taky pouzivam % (skoc na odpovidajici parovou zavorku).
Toto se resilo/resi na http://www.vim.org/tips/tip.php?tip_id=3
Ja osobne na jednoduchou kompilaci (bez anta pouzivam nasledujici)...
if has('unix')
set dictionary=$VIM/vim61/syntax/java.vim
set makeprg=javac\ %
elseif has("gui_win32")
set dictionary=$VIM\vim61\syntax\java.vim
set makeprg=cmd\ /c\ \"cmd\ \/c\ javac\ %\ 2>&1\"
endif
set errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#
map <F9> :!java %<<CR>
map <M-F9> :write<CR>:make<CR>
map <S-F9> :!javac -deprecation %<CR>
map <C-S-F9> :write<CR>:make<CR>:!java %
myslim si, ze jen to, ze napisu oteviraci zavorku stejne jako zaviraci mi moc v citelnosti nepomuze. pokud mam cyklus pres celou obrazovku (nebo vic) a uvnitr nejake dalsi vetveni, je to jedno. oko se nema ceho chytit a je zmatene... pokud nekdo tvrdi opak, pak bud neni clovek nebo nikdy neprogramoval nic vetsiho ;-)
Já taky píšu závorky pod sebe. Pokud napíšu cyklus přes jednu obrazovku, používám foldy na "zavření" úrovní cyklu.
Osobně mi přijde používání závorek pod sebe jako bloků mnohem čitelnější, než ten styl, kdy otevírací závorka se píše hned za podmínku. Ale uznávám, že je to věc názoru.
Pořád mě osobně přijde, že při závorkách pod sebe se u kratších či delších cyklů oko chytá lépe, než při druhém stylu.
A snad jen poznámku, že jakékoli delší cykly nezávisle na stylu se hůř chytají okem. Proto existují různé pomocné nástroje, zvýrazňování, komentování, atd.., aby tuto věc trochu zmírnily.