Portál AbcLinuxu, 19. dubna 2024 04:54
Dobrý den,
začínám používat více vim, a trápí mě takový bug / feature s automatickým odsazováním. Mám odsazený řádek, zmáčknu enter, a jsem na novém řádku a vim správně odsadil. Jenže když teď "uhnu" kurzorem na nějaký jiný řádek (nebo zmáčknu znova enter), a vrátím se potom zpátky na odsazený řádek, už odsazený není. Stává se mi to třeba tehdy, pokud někde ve třídě definuji metodu, její tělo nechám prázdné a mám ji v plánu dopsat někdy později (nebo se zrovna chci mrknout na jiné místo ve zdrojáku). Potom ručně klepat do klávesy tab docela naštve .
Jestli někdo ví, co s tím, byl bych vděčný. Spíše si myslím, že je to nějaka feature, ale vyhovovalo by víc chování obvyklé v jiných editorech (napevno se tam strčí taby / mezery, a tak to zůstane). A na nějaký :set, co to změní, prostě nemůžu přijít .
:he autoindent
If you do not type anything on the new line except <BS> or CTRL-D and then type <Esc>, CTRL-O or <CR>, the indent is deleted again. Moving the cursor to another line has the same effect, unless the 'I' flag is included in 'cpoptions'.Takze pokud se presunujete v kodu v insert modu, tak staci nastavit I flag v cpoptions.. Pokud ovsem z insert modu vyskocite do normalu pres ESC, tak se indentace zrusi..
:wq
inoremap <CR> <CR><Space><BS> nnoremap o o<Space><BS> nnoremap O O<Space><BS>Více tady.
o
a budete tam kde chcete byt?function foo() { }najedete na radek se slozenou zavorkou, stisknete
o
a kurzor bude nasledujici.. (pomlcky jsou mezery a | kurzor)
function foo() { ----| }Pridavam se k ostatnim co tu psali, ze nechavat radky obsahujici jen ws je nezadouci ;]
highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/abych viděl, jestli se mám připravit na odsazování nebo ne :) Ale v zaneřáděnějším kódu to může i zbytečně rušit.
No, ja si pri vytvareni prazdne funkce, nebo treba i jen podminene vetve pridavam komentar s textem "TODO:"...
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.