If editing some script in vim, a file with .py or .sh extension, is it any build-in vim command that allows to run such file? I know it's a lot of IDE-like addons for VIM that allows to execute files vim edit, but is it possible without addons?

link|improve this question

feedback

1 Answer

up vote 6 down vote accepted

I hope I'm not offending you by answering, that to run the current file (not buffer) you just

:!%

UPD: To run buffer to interpreter's standard input (without saving to a file first):

:w !/bin/sh

The latter can be also used with python, perl -w, etc.

By the way, a super useful technique is to filter a buffer through external command:

1G!Ggrep -v unwanted_regex
link|improve this answer
Thanks! I suppose vim don't know about file extension and #!/bin/python in order to run file via correct interpreter? – Eye of Hell Jun 22 '09 at 9:34
Updated with additional tip. Of course, the "#!/xxx" header is parsed inside execve() system call (i.e. when you run an executable file), so it will definately work with the :!% way. But I don't know how to script vim to automatically execute the proper interpreter in the :w !interpreter way. This can be trivially done with external shell script. File extension does not matter in these cases at all. – kubanczyk Jun 22 '09 at 9:51
Fantastic idea! Simple too - one of those "Why didn't I think of that?" moments.... – David Jun 23 '09 at 18:22
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.