Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Textový editor Vim jako IDE (automatické formátování textů: dokončení)

FrostyX
FrostyX (neregistrovaný) 93.185.56.---
6. 10. 2011 14:47 Nový

Přeformátování zdrojového kódu

celé vlákno

Ahoj, zajímalo by mě, jestli někdo nemáte skript, nebo nějaké makro, které mi spraví styl odsazování a odřádkování ve zdrojáku. Lidi často chtějí poradit, ale kódy mají šíleně odsazované a nedá se v tom pořádně vyznat.

Pavel Tišnovský aura:98
6. 10. 2011 14:54 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

S odsazováním by měl pomoci příkaz =, za kterým se udává operátor přesunu, stejně jako u "y", "d", "c" atd. Takže například jsem s kurzorem na otevírací závorce funkce a zadám příkaz:

=%

což mě indentuje celou funkci až po pravou párovou závorku.

Je zapotřebí správně nastavit konfigurační parametry "cindent" popř. "smartindent", podle toho, o jaký jazyk se jedná.

Nebo zavolat externí formátovač. Když mi napíšete konkrétní jazyk, mohl bych možná poradit.

FrostyX
FrostyX (neregistrovaný) 93.185.56.---
6. 10. 2011 15:21 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

Konkrétně jazyky PHP a C#. Ale mě by bohatě stačilo něco jednoduchého. Otevířací složenou závorku { dát na následující řádek než je příkaz a odsadit na jeho úroveň. Ukončující složenou závorku } odsadit také na stejnou úroveň. Blok kódu mezi nimi odsadit o tab, nebo pár mezer doprava. Určitě to nebude nic složitého, ale nechce se mi to psát, protože určitě někdo máte něco podobného.

To znamená když mi někdo pošle (a jakože bohužel posílá):
......function mojeFunkce()
..{
příkaz 1;
--->--->...příkaz2;
}
Abych to protáhl tím skriptíkem a dostal
function mojeFunkce()
{
--->příkaz 1;
--->příkaz 2;
}

*Poznámka - pro ilustraci tečky reprezentují mezery a ---> tab.

Pavel Tišnovský aura:98
6. 10. 2011 15:47 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

Pro PHP existuje makro ulozene ve skriptu $VIMRUNTIME/in­dent/php.vim (pokud mate nainstalovany vim-enhanced).

Bud se natahuje automaticky, nebo lze zadat:

:so $VIMRUNTIME/in­dent/php.vim

a potom pouzivat uz zmineny prikaz =, treba gg=G (skok na zacatek dokumentu a zarovnani az po jeho konec)

Funguje to dobre, pokud je zapnuto:

:syntax on
:set syntax=php

(coz by opet melo byt, pokud neni pouzita volba "compatible" coz moc nedoporucuji :-)

Pavel Tišnovský aura:98
6. 10. 2011 15:49 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

Pro C# existuje podobne makro $VIMRUNTIME/in­dent/cs.vim, ale osobne jsem ho nezkousel.

FrostyX
FrostyX (neregistrovaný) 93.185.56.---
6. 10. 2011 16:43 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

Moc děkuji. Určitě vyzkouším

Culibrk
Culibrk (neregistrovaný) 85.207.23.---
7. 10. 2011 21:31 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

Muzete jeste vyzkouset prikaz indent. To neni soucast vim, ale da se do Linuxu doinstalovat jako balicek, pokud neni v zakladni distribuci. Bohuzel uz nevim, v jakem balicku se nachazi a ted nejsem schopen to zjistit. Pak byste mel reseni nezavisle na editoru. Prikaz ma spoustu voleb, man indent budete urcite potrebovat.

atarist
atarist (neregistrovaný) ---.tmcz.cz
8. 10. 2011 21:49 Nový

Re: Přeformátování zdrojového kódu

celé vlákno

indent funguje uplne korektne jen na ceckovske zdrojaky. Zkousel jsem na nej postvat Javovsky kod a nektere konstrukce spatne pochopil - ono je to vlastne logicke, syntaxe je sice podobna cecku, ale ne stejna. Takze na PHP a C# moc nevim nevim...

Zasílat nově přidané příspěvky e-mailem