Friday, January 14, 2011

Can vim execute buffer without addons?

Hello.

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?

  • 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
    
    Eye of Hell : Thanks! I suppose vim don't know about file extension and #!/bin/python in order to run file via correct interpreter?
    kubanczyk : 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.
    David : Fantastic idea! Simple too - one of those "Why didn't *I* think of that?" moments....
    From kubanczyk

0 comments:

Post a Comment