Vimscript: Run Command in Terminal
~ 2 minute read.
A more recent vim feature is :term
, the ability to have a terminal
inside vim. This super useful feature now allows you to switch between
your code and asynchroneously run compile commands very easily.
Since I use Visual C++ on Windows, I need to run vcvarsall.bat
in
my console to allow CMake to properly find the compiler. To do so I
now set up a vim command :Vcvarsall
which does this for me so that
I don’t have to remember the path. Using term_sendkeys(buf, keys)
,
you can easily send text into the terminal from a vim command:
let $VCVARSALL = 'C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat' command! Vcvarsall call term_sendkeys(bufnr("%"), "\"%VCVARSALL%\" x64\<CR>")
The first line is the “easy way”, just an environment variable containing the path.
Since that still requires a bit of awkward % typing, I defined the command to do it
for me. bufnr("%")
is just a way to get the current buffer. Hence this command
only works through C-W :
in a terminal buffer.
Written in 5 minutes