Re: bind (map) F9 to make !make run

2007-03-17 Thread Jonathan D Johnston

Hi Tony  Rafal,

A.J.Mechelynck wrote:

Rafal Maj wrote:


A.J.Mechelynck wrote:


:map F9 :wall Bar !clear ; make  make run

Method II: intermixing internal and external commands

:map F9 :wall Bar exe !clear Bar exe make Bar !make run

Note: Method II does not intercept the return status from the first 
make.


Method III (untested) try to fool bash

:map F9 :wall bar exe !clear Bar make  make run


Hmm no, I ment to do following:

1. execute vim's command:  make
if the return code is zero (ok) then
2. execute vim's command: !make run


I don't know how to get the return status from the external make invoked 
by internal :make.


Try the following (untested) function.  I used a function since the 
commands were getting a bit long to comfortably fit in one line.


fun s:MakeAndRun()
wall
!clear
make
if !v:shell_error
!make run
endif
endfun

nnoremap F2  :call SIDMakeAndRun()CR

Note the use of v:shell_error .  Hopefully that variable will contain 
the return status from the make subprocess.


:help v:shell_error

Sorry for the delay in response - I'm not very good at keeping up with 
my email.


HTH,
Jonathan D Johnston



bind (map) F9 to make !make run

2007-03-10 Thread Rafal Maj

How to map F9 key to following action:
1. run buildin make (!make)
2. run shell command make run


I tried:


map F9 F2:wallCR:!clearCR:make  !make runCR

but then the F9 key results in:

Press ENTER or type command to continue
g++ a.cpp -o a.elf -lboost_thread -s -pthread
/bin/bash: !make: command not found

so the make part works, but !make run  fails... why is it so?





Re: bind (map) F9 to make !make run

2007-03-10 Thread A.J.Mechelynck

Rafal Maj wrote:

How to map F9 key to following action:
1. run buildin make (!make)
2. run shell command make run


I tried:


map F9 F2:wallCR:!clearCR:make  !make runCR

but then the F9 key results in:

Press ENTER or type command to continue
g++ a.cpp -o a.elf -lboost_thread -s -pthread
/bin/bash: !make: command not found

so the make part works, but !make run  fails... why is it so?






What is F2 mapped to? In the following I ignore it.

Whatever follows the internal make command is passed to bash as parameters, 
including in this case the exclamation mark.


Method I: run external make twice

:map F9 :wall Bar !clear ; make  make run

Method II: intermixing internal and external commands

:map F9 :wall Bar exe !clear Bar exe make Bar !make run

Note: Method II does not intercept the return status from the first make.

Method III (untested) try to fool bash

:map F9 :wall bar exe !clear Bar make  make run


See
:help map_bar
:help :bar


Best regards,
Tony.
--
Every successful person has had failures but repeated failure is no
guarantee of eventual success.


Re: bind (map) F9 to make !make run

2007-03-10 Thread A.J.Mechelynck

Rafal Maj wrote:

A.J.Mechelynck wrote:


:map F9 :wall Bar !clear ; make  make run

Method II: intermixing internal and external commands

:map F9 :wall Bar exe !clear Bar exe make Bar !make run

Note: Method II does not intercept the return status from the first make.

Method III (untested) try to fool bash

:map F9 :wall bar exe !clear Bar make  make run


Hmm no, I ment to do following:

1. execute vim's command:  make
if the return code is zero (ok) then
2. execute vim's command: !make run





I don't know how to get the return status from the external make invoked by 
internal :make.



Please use Reply to List or Reply to All (whichever is available on your 
mailer) in preference to Reply to Sender.



Best regards,
Tony.
--
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
   -- Dave Parnas