OK, I feel myself empowered enough to actually write a "Hello World!" in VIM.
function Hello(wrld)
let hw = "Hello ".a:wrld."!"
echo hw
endfunction
call Hello("World")
Save that to
hw.vim
and run this:
$ vim -u hw.vim -c ":q"
It should print "Hello World!" and wait for you to press
Enter
before quiting. (
-u hw.vim
tells vim to load hw.vim as substitute of ~/.vimrc and
-c ":q"
tells vim after loading ~/.vimrc (which is substituted with hw.vim) to execute ":q" to terminate.)
Dissection.
:function
&
:endfunction
are start and end of function definition.
:let
creates new variable
hw
which contains string "Hello " concatenated with
a:wrld
(function argument) and "!". (
:help :let
describes operator '.' which is string concatenation operator.)
:echo
is used to print the value contained in variable
hw
to screen. If we pass as parameter "World" to the function,
hw
would contain "Hello World!" string.
N.B. Colon ':' before command names, when is inside of script file - e.g. ~/.vimrc - is optional and used by me here merely to highlight that commands are all from normal mode. Also when you say to VIM
:help :let
, colon before
let
would tell vim that you are interested precisely in
let
command of normal mode - not something else. (Just like in
:help 'ts'
, where single quotes tells vim to look for
ts
only amongst settable options.)
P.S. Adding that function to you ~/.vimrc with
call Hello($LOGNAME)
would greet you with silly "Hello <Your-Login-Name-Here>!" message every time you would launch vim.