Home Explore Blog CI



neovim

1st chunk of `runtime/doc/usr_41.txt`
d69efc20e63cc7c9a07afb6f9aa07b62196391e8db80b2150000000100000fa3
*usr_41.txt*	Nvim

		     VIM USER MANUAL - by Bram Moolenaar

			      Write a Vim script


The Vim script language is used for the startup vimrc file, syntax files, and
many other things.  This chapter explains the items that can be used in a Vim
script.  There are a lot of them, thus this is a long chapter.

|41.1|	Introduction
|41.2|	Variables
|41.3|	Expressions
|41.4|	Conditionals
|41.5|	Executing an expression
|41.6|	Using functions
|41.7|	Defining a function
|41.8|	Lists and Dictionaries
|41.9|	Exceptions
|41.10|	Various remarks
|41.11|	Writing a plugin
|41.12|	Writing a filetype plugin
|41.13|	Writing a compiler plugin
|41.14|	Writing a plugin that loads quickly
|41.15|	Writing library scripts
|41.16|	Distributing Vim scripts

     Next chapter: |usr_42.txt|  Add new menus
 Previous chapter: |usr_40.txt|  Make new commands
Table of contents: |usr_toc.txt|

==============================================================================
*41.1*	Introduction				*vim-script-intro* *script*

Your first experience with Vim scripts is the vimrc file.  Vim reads it when
it starts up and executes the commands.  You can set options to values you
prefer.  And you can use any colon command in it (commands that start with a
":"; these are sometimes referred to as Ex commands or command-line commands).
   Syntax files are also Vim scripts.  As are files that set options for a
specific file type.  A complicated macro can be defined by a separate Vim
script file.  You can think of other uses yourself.

	If you are familiar with Python, you can find a comparison between
	Python and Vim script here, with pointers to other documents:
	   https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
	And if you are familiar with JavaScript:
	   https://w0rp.com/blog/post/vim-script-for-the-javascripter/

Let's start with a simple example: >

	:let i = 1
	:while i < 5
	:  echo "count is" i
	:  let i += 1
	:endwhile
<
	Note:
	The ":" characters are not really needed here.  You only need to use
	them when you type a command.  In a Vim script file they can be left
	out.  We will use them here anyway to make clear these are colon
	commands and make them stand out from Normal mode commands.
	Note:
	You can try out the examples by yanking the lines from the text here
	and executing them with :@"

The output of the example code is:

	count is 1 ~
	count is 2 ~
	count is 3 ~
	count is 4 ~

In the first line the ":let" command assigns a value to a variable.  The
generic form is: >

	:let {variable} = {expression}

In this case the variable name is "i" and the expression is a simple value,
the number one.
   The ":while" command starts a loop.  The generic form is: >

	:while {condition}
	:  {statements}
	:endwhile

The statements until the matching ":endwhile" are executed for as long as the
condition is true.  The condition used here is the expression "i < 5".  This
is true when the variable i is smaller than five.
	Note:
	If you happen to write a while loop that keeps on running, you can
	interrupt it by pressing CTRL-C (CTRL-Break on MS-Windows).

The ":echo" command prints its arguments.  In this case the string "count is"
and the value of the variable i.  Since i is one, this will print:

	count is 1 ~

Then there is the ":let i += 1" command.  This does the same thing as
":let i = i + 1".  This adds one to the variable i and assigns the new value
to the same variable.

The example was given to explain the commands, but would you really want to
make such a loop, it can be written much more compact: >

	:for i in range(1, 4)
	:  echo "count is" i
	:endfor

We won't explain how |:for| and |range()| work until later.  Follow the links
if you are impatient.


FOUR KINDS OF NUMBERS

Numbers can be decimal, hexadecimal, octal or binary.

A hexadecimal number starts with "0x" or "0X".  For example "0x1f" is decimal
31.

An octal number starts with "0o", "0O" or a zero and another digit.  "0o17" is
decimal 15.

A binary number starts with "0b" or "0B".

Title: Introduction to Vim Scripting
Summary
This chapter introduces Vim scripting, used for configuration, syntax highlighting, and custom functionality. It covers variables, expressions, conditionals, functions, lists, dictionaries, and exceptions. It also provides examples of using loops and printing output, and distinguishes between decimal, hexadecimal, octal, and binary numbers.