I am trying to run a shell script from a .vimrc file (three issues noted in the script):
function! CheckMe(file)
let shellcmd = 'checkme '.a:file
" Start the command and return 0 on success.
" XXX: How do you evaluate the return code?
execute '!'.shellcmd
if !result
return 0
endif
" Ending up here, the command returned an error.
" XXX: Where to you get the output?
let pair = split(output, '\S')
let line = pair[0]
let char = pair[1]
" Jump to the errenous column and line.
" XXX: Why does this not work?
normal '/\%'.line.'l\%'.char.'c'
return 1
endfunction
So, to summarize how you get the result / output of the script, and why does the transition statement not work?
Additional Information:
- The shell script returns 0 on success and 1 on failure. On error, the script prints two numbers (row and column number) in stdout, separated by a space character.
- According to Vim docs, the argument of the “normal” keyword is “executed as it is typed,” but apparently this is not the case. It works fine when I print it (in normal command mode without specifying ":"), but not in the script ("E78: Unknown label").