Most vim users are familiar with the man page lookup; K
under the cursor or on visual selection. For anyone who needs a quick
refrersher lets take a look at the help docs (help :K)
K Run a program to lookup the keyword under the
cursor. The name of the program is given with the
'keywordprg' (kp) option (default is "man"). The
keyword is formed of letters, numbers and the
characters in 'iskeyword'. The keyword under or
right of the cursor is used. The same can be done
with the command
:!{program} {keyword}
So we can see that the default program (keywordprg /
kp) is defaulted to “man” and the keyword is determined by
what is right under the cursor when it is used. The other important
thing to not is the fact we could invoke man or whatever program we want
using :!program_name but that’s not as fun as reconfiguring
the default behavior to do what we want.
Let’s imagine that for some reason we find ourselves copying sections
of text and searching google for the results. Rather than doing this
over and over why not just change the keywordprg to a
custom bash script to do what we want. First thing’s first lets write a
simple bash script to open up the browser (I assume every OS has some
way to open a browers with a given URL; This is written on an Ubuntu
machine but if I were on a Mac I’d use open and test /
google to make sure the syntax works as expected)
#!/bin/bash
firefox "https://www.google.com/serach?q=$1"Give it a handy name like googleShit, move it into your
PATH and and pop open that ~/.vimrc to change your default
keywordprg
set keywordprg=googleShitAnd now when you use K inside a new vim session you will
be googling contents rather than looking up the man pages! If you find
yourself repeating a task under the cursor or in visual mode pretty
handy trick to have in the utility belt. Use a little imagination and
you can come up with something to improve your daily workflow.