If you're using the VS Code extension that I think you are then my understanding is that it supports at least some plugins and one of those is vim-surround. If that's the case and you're open to using plugins just jump to the last paragraph. Otherwise, read on.
From Normal mode with the cursor on the first character of the word you could do...
i"<C-O>f<Space>"<Esc>
Ctrl-O
, from Insert, let's you enter one Normal mode command before returning to Insert.
f<Space>
goes to the next space character on the line (after the word).
Problem with this is if the word is not followed by a space (e.g you are at the end of the line or it's followed by a punctuation mark). You'd need to adjust the Normal mode command (e.g. to f.
or $<Left>
).
That's just one example of how to accomplish this but I think rather than try to optimize a manual command you should use something more robust (but complicated) and put it in a mapping. For instance this substitution command:
:%s/\<\w*\%#\w*\>/"&"
That says take the cursor position (\%#
) and any word characters surrounding it (both \w*
) and replace with itself surrounded by quotes.
A Normal mode mapping for this:
:nnoremap <leader>q :%s/\<\w*\%#\w*\>/"&"<CR>
Now you've optimized things down to a key press or two...whatever the length of the mapping you choose.
What I'd really suggest, though, is that you just get the vim-surround plugin. Then you can easily wrap words (and more) with anything that you'd usually wrap words with (e.g. parens).