Newsgroup: it.comp.os.linux.development
Titolo: VIM: identazione automatica a seconda del linguaggio

Ciao a tutti.
Sto cercando un editor free o open source che pero' abbia l'identazione 
automatica (non solo la sintassi colorata-evidenziata) a seconda del 
linguaggio utilizzato. Ad esempio, con le recenti versioni di UltraEdit 
e' di una comodita' mostruosa la disposizione automatica quando ci sono 
vari cicli annidati (credo che in questo, UEdit non sia battibile da 
nessuno sotto Win).
Il punto e' che pero' UltraEdit e' shareware e io avrei bisogno di 
passare a strumenti free e/o open source.
L'attuale Vim 6.1 sarebbe in grado di essere cosi' efficiente a seconda 
del linguaggio utilizzato (ho provato context ma non e' ancora al livello 
di Uedit)?
Ciao e grazie per eventuali risposte.
marco

 sotto Win).
Emacs c'e` anche per Windows. :-)
Massimiliano

 Emacs c'e` anche per Windows. :-)
Che danno........(dai che scherzo)  :)
Ciao e grazie per la reply.
marco


I'm not prejudiced, I hate everyone equally.

) lo fa :-) Non solo fa 
quello che chiedi (anche se molti dei lexer sono un po' buggati), ma io 
l'ho anche settato per farmi il rientro con uno spazio per C/C++, 
Javascript e Visual Basic (questione d'abitudine), tre spazi con Pascal 
(convenzioni Borland), tab per i makefile (lo richiede la sintassi), e 
due spazi per tutto il resto. Comunque, SciTE è un editor di poche 
pretese, quindi se ce la fa lui, ViM dovrebbe farlo tranquillamente (a 
proposito, è appena uscito un bel libro su ViM)
Ma ora basta, che sennò facciamo diventare questo thread un "salve, vi 
presento il mio editor preferito" ;-)
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.20. C, C++ and ASM developers
                              and beta testers are welcome!

 di Uedit)?
Vim e' SUPREMO, non ti serve nient'altro, VIM VIM VIM.
Scaricalo, Compilalo, leggi la documentazione (F1 quando lo avvii o per
un primo approccio dai 'vimtutor'), e poi torna a dire quanto e' bello.
Ciao
-- 
[*] writing from `proximus' -*- Linux 2.4.18 -*- Salvo B In The Place To Be
[*]  17:40:01 up  7:01,  2 users,  load average: 0.38, 0.22, 0.11
[*] salvob @ 
emuita.it
 -*- GnuPG\PGP Private Key >> LOST << (6C4517DE)

 in grado di fare cio' che ho chiesto, giusto?
No, dalla mia risposta e` giusto che sembri solo che non ho la piu`
pallida idea se ViM lo faccia o meno. :-) Comunque prova a dare
un'occhiata a 
vim.sourceforge.net
.
Massimiliano
-- 
The Practical Penguin's Notebook - 
http://practicaltux.sourceforge.net
Guide per newbie pratiche al 100%: configurazione della posta
(Postfix, Fetchmail e Procmail), tutorial da zero su Mutt ed Emacs.

 del file .... e poi vim ha un bel po' di funzioni interessanti,
Lasciando un momento da parte il discorso macro, sei sicuro che Vim sia 
veramente anche "code sensitive" e non solo "syntax highlight"?
Sto puntualizzando perche' prima di scaricare-installare-mettermi a 
studiare per bene (sto tenendo su mille cose, devo focalizzare i 
compiti.....), vorrei essere sicuro che il tutto possa essere cosi' 
efficiente (se possibile) come con UltraEdit (esempio: sono in piu' cicli 
annidati, mi dimentico una parentesi graffa o ne metto una in piu', lui 
in real-time mi fa tutte le identazioni necessarie affinche' capisca 
visualmente subito a quale blocco appartiene quell'istruzione, ecc.).
Naturalmente prima di venire a chiedere a voi mi sono spulciato i 
principali siti di vim e ho letto le varie info sull'ultima versione 6.1, 
ma non ho trovato niente che mi indicasse chiaramente quanto cerco 
(sempre e solo syntax highlight).
Andrebbe bene anche tramite l'uso di una delle tante estensioni scritte 
da altri, ma la domanda e' sempre questa: alla fine si riuscirebbe con 
Vim ad ottenere un qualcosa di affidabile-produttivo simile al 
summenzionato comportamento di UltraEdit? Se si' mi metto al lavoro, 
nonostante scommetto che con Vim ci si debba sbattere un bel po' di piu'  
(rispetto all'"installa e parti subito intuitivamente" di UEdit)  :)
Per Maya:
1- SciTE non mi sembra affatto male, da tener d'occhio.
2- Mi forniresti per favore titolo-casa editrice del recente libro su Vim 
(fino a che versione lo copre?)?
Un grazie di nuovo a tutti.
marco

 marco
ciao ...


 veramente anche "code sensitive" e non solo "syntax highlight"?
Si. :)
-- 
[*] writing from `proximus' -*- Linux 2.4.18 -*- Salvo B In The Place To Be
[*]  01:36:01 up 14:57,  3 users,  load average: 0.17, 0.22, 0.09


     fprintf (stderr, "\n");
[...]
Non avendolo mai incontrato né usato, volevo sapere che valore ha quel
"register" sulla dichiarazione di int conta;
Grazie
Matic

 Matic


 usarle ...
In generale, a meno che non ci siano dei problemi molto specifici, conviene
lasciare fare queste cose al compilatore senza preoccuparsene troppo.
Ho fatto una prova (decisamente semplice) con un ciclo, un contatore
dichiarato register e una printf.
Con l'ottimizzazione "maximize speed" di VC++ il sorgente e l'assembler
generato non erano nemmeno lontanamente parenti.
Alla printf veniva spedito direttamente il risultato dell'incremento senza
nessun ciclo di incremento, come si vede nell'estratto di sotto.
; 21   : 
; 22   :    for(; count1 < 7; count1++)
; 23   :       pippo++; 
; 24   :    printf("pippo = %d\n", pippo);
	push	7
	push	OFFSET FLAT:??_C@_0M@FPAF@pippo?5?$DN?5?$CFd?6?$AA@ ; `string'
	call	_printf
	add	esp, 8
count1 era dichiarata "register int", ma il codice generato era lo stesso sia
con register che senza register.
In casi piu' complicati potrebbe capitare che il compilatore lasci in un
registro una variabile per tutto il blocco della funzione anche se non
esiste la necessita' per farlo, sottraendolo ad un altra variabile e
peggiorando le prestazioni globali del programma.
Se il compilatore e' furbo questo non dovrebbe accadere, ma se il compilatore
e' furbo perche' preoccuparsi di usare register? :-)
C:\>iao Angelo

 compilatore e' furbo perche' preoccuparsi di usare register? :-)
Infatti, se non sbaglio viene indicato anche nel K&R di non usare lo 
specificatore register a meno di non essere proprio certi di cosa si sta 
facendo. Decidere quali variabili vanno in registro e quali no per 
ottimizzare il codice spetta in genere ai compilatori. Piu' che altro serve 
per compilatori poco ottimizzati.
Il discorso si ribalta per lo specificatore di tipo volatile, che va' usato 
per *evitare* che il compilatore ottimizzi alcune variabili :)
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 Mox


 registro ... mi sbaglio ??
Se ci sono abbastanza registri, tutte le variabili "piccole" (int,
char, enum, puntatori, ...) stanno nei registri.
Se ci sono pochi registri, il compilatore sceglie quali variabili
tenere nei registri e quali no usando un suo algoritmo per ottimizzare
l'uso dei registri.  Puo` capitare che una variabile venga messa in un
registro per un po', poi in memoria, poi in un registro diverso, ...
        Mauro

 Mauro
grazie mille per la spiegazione ;-))
