I’m trying to define a new command in Vim that calls an external script with the name of the current file, but slightly modified. Here’s how I defined the command:
:command MyNewCommand !/tmp/myscript.sh substitute(expand("%:p"), "-debug", "", 'g')
In other words, myscript.sh takes one parameter, which is the full pathname of the file being edited, with the string -debug in the pathname removed. My command definition doesn’t work because rather than passing the pathname, Vim seems to pass to myscript.sh the entire string itself, beginning with the word substitute. How do I define the command to do what I want? Thanks :).
You can use the
system()function to execute the script.Change the command definition as follows:
To see the output of the command, replace
callwithecho.