Newsgroup: it.comp.os.linux.software
Titolo: Map <F7> to ddd in gVim

Dato che finalmente sono riuscito a trovare un po' di tempo per dare una
occhiata a gvim, mi sto leggendo la documentazione, e devo dire che lo
trovo incredibilmente potente.
Ad ogni modo sto cercando di configurare l'ambiente a mo' di ide, mappando
alcuni tasti funzione a tool che servono per lo sviluppo, in particolare
per il debugging, testing ... 
Qui pero' e' sorto un problema: quando cerco di mappare <F7>
all'esecuzione di ddd, devo prima lanciare la shell sh. Questo mi
impedisce di fare qualsiasi altra cosa finche' dalla linea di comando non
do' exit.
In pratica scrivendo :map <F7> <ESC>:sh<CR>ddd<CR>
invece che lanciarmi ddd si ferma alla proposizione della shell dei
comandi nella linea di comando.
Se invece scrivo :map <F7> <ESC>:sh<CR>:ddd<CR>, mi esegue ddd solo dopo
che ho dato l'exit alla shell dei comandi e quindi l'errore dato che non
si puo' eseguire ddd direttamente dalla linea di comando.
Ovviamente tutto cio' ha molto senso, e in effetti e' proprio il
comportamento che ci si aspetta ...
La domanda quindi e' questa: esiste un modo per dare un comando come
argomento a sh oppure quello che sto cercando di fare e' impossibile e
bisogna passare attraverso altri modi (ad esempio uno script, che pero'
devo ancora guardarmi bene come funzionano)?
Grazie in anticipo a chi mi rispondera'.
ciao, Michele

 devo ancora guardarmi bene come funzionano)?
Tipicamente (almeno per bash) è:
bash -c "comando"
Credo funzioni anche con sh. Ciao.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

 Credo funzioni anche con sh. Ciao.
Il problema e' che quando entri in linea di comando su gvim, battendo ":",
gvim non accetta qualsiasi comando (ad esempio non accetta bash), e quindi
bisogna prima dargli sh<CR>, entrare nella shell dei comandi, e infine
scrivere il comando che iteressa, ad esempio ddd. Io avrei voluto evitare
il doppio passaggio e mappare la sequenza con un tasto funzione, ma
purtroppo, una volta che si e' entrati nella shell dei comandi, il
controllo non e' piu' di gvim (per lui sh e' un'azione atomica, e il
controllo ritorna solo quando si e' finita la sessione) e quindi non si
puo' ordinargli di lanciare ddd.
Ad ogni modo ho fatto una ricerca su internet e' ho trovato un plug-in che
sembrerebbe trasformare gvim in una specie di ide (in pratica aggiunge un
menu project e uno debug), che mi pare interessante (idevim). Ora lo
provero' e in caso mi accontentero' di scrivere  qualche carattere in piu'
per lanciare ddd.
grazie comunque
ciao, Michele

do' exit.
prova:
:map <F7> :!ddd
dovrebbe funzionare.
-- 
The linuX Files -- The Source is Out There.
Maurizio - Tannoiser - Lemmo
Founder Member of ERLUG (Emilia Romagna Linux User Group)
http://erlug.linux.it

dovrebbe funzionare.
aggiungo e correggo:
:map <F7> :!ddd % <CR>
per eseguire ddd sul file che stai editando.
-- 


 per eseguire ddd sul file che stai editando.
Grazie mille "!" ;-)
GVim mi piace sempre di piu'! :-)
ciao, Michele