diff options
author | HiPhish <hiphish@posteo.de> | 2019-12-22 13:41:46 +0100 |
---|---|---|
committer | HiPhish <hiphish@posteo.de> | 2019-12-22 13:41:46 +0100 |
commit | db3ba136bec38361dce57e0e5ee6e6523a17b89e (patch) | |
tree | 479409cd4ea2aa90dcdc84e1f766568ff759897a /vimscript.html.markdown | |
parent | 1372e8a5a90fbcb4ea107173ca1db03c92acd840 (diff) |
Add space between separator and comment
Makes the comments get properly syntax-highlighted
Diffstat (limited to 'vimscript.html.markdown')
-rw-r--r-- | vimscript.html.markdown | 272 |
1 files changed, 136 insertions, 136 deletions
diff --git a/vimscript.html.markdown b/vimscript.html.markdown index da26e37b..8e023713 100644 --- a/vimscript.html.markdown +++ b/vimscript.html.markdown @@ -40,7 +40,7 @@ pwd " Displays the current working directory " Except for some commands it does not; use the command delemiter before the " comment (echo assumes that the quotation mark begins a string) -echo 'Hello world!' |" Displays a message +echo 'Hello world!' | " Displays a message " Line breaks can be escaped by pacing a backslash as the first non-whitespace " character on the *following* line. Only works in script files, not on the @@ -67,23 +67,23 @@ echo { " Numbers (|expr-number|) " ####### -echo 123 |" Decimal -echo 0b1111011 |" Binary -echo 0173 |" Octal -echo 0x7B |" Hexadecimal -echo 123.0 |" Floating-point -echo 1.23e2 |" Floating-point (scientific notation) +echo 123 | " Decimal +echo 0b1111011 | " Binary +echo 0173 | " Octal +echo 0x7B | " Hexadecimal +echo 123.0 | " Floating-point +echo 1.23e2 | " Floating-point (scientific notation) " Note that an *integer* number with a leading `0` is in octal notation. The " usual arithmetic operations are supported. -echo 1 + 2 |" Addition -echo 1 - 2 |" Subtraction -echo - 1 |" Negation (unary minus) -echo + 1 |" Unary plus (does nothing really, but still legal) -echo 1 * 2 |" Multiplication -echo 1 / 2 |" Division -echo 1 % 2 |" Modulo (remainder) +echo 1 + 2 | " Addition +echo 1 - 2 | " Subtraction +echo - 1 | " Negation (unary minus) +echo + 1 | " Unary plus (does nothing really, but still legal) +echo 1 * 2 | " Multiplication +echo 1 / 2 | " Division +echo 1 % 2 | " Modulo (remainder) " Booleans (|Boolean|) " ######## @@ -92,19 +92,19 @@ echo 1 % 2 |" Modulo (remainder) " converted to numbers (see below). There are two pre-defined semantic " constants. -echo v:true |" Evaluates to 1 or the string 'v:true' -echo v:false |" Evaluates to 0 or the string 'v:false' +echo v:true | " Evaluates to 1 or the string 'v:true' +echo v:false | " Evaluates to 0 or the string 'v:false' " Boolean values can result from comparison of two objects. -echo x == y |" Equality by value -echo x != y |" Unequality -echo x > y |" Greater than -echo x >= y |" Greater than or equal -echo x < y |" Smaller than -echo x <= y |" Smaller than or equal -echo x is y |" Instance identity (lists and dictionaries) -echo x isnot y |" Instance non-identity (lists and dictionaries) +echo x == y | " Equality by value +echo x != y | " Unequality +echo x > y | " Greater than +echo x >= y | " Greater than or equal +echo x < y | " Smaller than +echo x <= y | " Smaller than or equal +echo x is y | " Instance identity (lists and dictionaries) +echo x isnot y | " Instance non-identity (lists and dictionaries) " Strings are compared based on their alphanumerical ordering " echo 'a' < 'b'. Case sensitivity depends on the setting of 'ignorecase' @@ -118,19 +118,19 @@ echo 'a' <? 'B' | " True echo 'a' <# 'B' | " False " Regular expression matching -echo "hi" =~ "hello" |" Regular expression match, uses 'ignorecase' -echo "hi" =~# "hello" |" Regular expression match, case sensitive -echo "hi" =~? "hello" |" Regular expression match, case insensitive -echo "hi" !~ "hello" |" Regular expression unmatch, use 'ignorecase' -echo "hi" !~# "hello" |" Regular expression unmatch, case sensitive -echo "hi" !~? "hello" |" Regular expression unmatch, case insensitive +echo "hi" =~ "hello" | " Regular expression match, uses 'ignorecase' +echo "hi" =~# "hello" | " Regular expression match, case sensitive +echo "hi" =~? "hello" | " Regular expression match, case insensitive +echo "hi" !~ "hello" | " Regular expression unmatch, use 'ignorecase' +echo "hi" !~# "hello" | " Regular expression unmatch, case sensitive +echo "hi" !~? "hello" | " Regular expression unmatch, case insensitive " Boolean operations are possible. -echo v:true && v:false |" Logical AND -echo v:true || v:false |" Logical OR -echo ! v:true |" Logical NOT -echo v:true ? 'yes' : 'no' |" Ternary operator +echo v:true && v:false | " Logical AND +echo v:true || v:false | " Logical OR +echo ! v:true | " Logical NOT +echo v:true ? 'yes' : 'no' | " Ternary operator " Strings (|String|) @@ -140,9 +140,9 @@ echo v:true ? 'yes' : 'no' |" Ternary operator " depends on the option |'encoding'|. " Literal constructors -echo "Hello world\n" |" The last two characters stand for newline -echo 'Hello world\n' |" The last two characters are literal -echo 'Let''s go!' |" Two single quotes become one quote character +echo "Hello world\n" | " The last two characters stand for newline +echo 'Hello world\n' | " The last two characters are literal +echo 'Let''s go!' | " Two single quotes become one quote character " Single-quote strings take all characters are literal, except two single " quotes, which are taken to be a single quote in the string itself. See @@ -150,21 +150,21 @@ echo 'Let''s go!' |" Two single quotes become one quote character " String concatenation " The .. operator is preferred, but only supported in since Vim 8.1.1114 -echo 'Hello ' . 'world' |" String concatenation -echo 'Hello ' .. 'world' |" String concatenation (new variant) +echo 'Hello ' . 'world' | " String concatenation +echo 'Hello ' .. 'world' | " String concatenation (new variant) " String indexing -echo 'Hello'[0] |" First byte -echo 'Hello'[1] |" Second byte -echo 'Hellö'[4] |" Returns a byte, not the character 'ö' +echo 'Hello'[0] | " First byte +echo 'Hello'[1] | " Second byte +echo 'Hellö'[4] | " Returns a byte, not the character 'ö' " Substrings (second index is inclusive) -echo 'Hello'[:] |" Copy of entire string -echo 'Hello'[1:3] |" Substring, second to fourth byte -echo 'Hello'[1:-2] |" Substring until second to last byte -echo 'Hello'[1:] |" Substring with starting index -echo 'Hello'[:2] |" Substring with ending index -echo 'Hello'[-2:] |" Substring relative to end of string +echo 'Hello'[:] | " Copy of entire string +echo 'Hello'[1:3] | " Substring, second to fourth byte +echo 'Hello'[1:-2] | " Substring until second to last byte +echo 'Hello'[1:] | " Substring with starting index +echo 'Hello'[:2] | " Substring with ending index +echo 'Hello'[-2:] | " Substring relative to end of string " A negative index is relative to the end of the string. See " |string-functions| for all string-related functions. @@ -176,23 +176,23 @@ echo 'Hello'[-2:] |" Substring relative to end of string " objects. " Literal constructor -echo [] |" Empty list -echo [1, 2, 'Hello'] |" List with elements -echo [1, 2, 'Hello', ] |" Trailing comma permitted -echo [[1, 2], 'Hello'] |" Lists can be nested arbitrarily +echo [] | " Empty list +echo [1, 2, 'Hello'] | " List with elements +echo [1, 2, 'Hello', ] | " Trailing comma permitted +echo [[1, 2], 'Hello'] | " Lists can be nested arbitrarily " List concatenation -echo [1, 2] + [3, 4] |" Creates a new list +echo [1, 2] + [3, 4] | " Creates a new list " List indexing, negative is relative to end of list (|list-index|) -echo [1, 2, 3, 4][2] |" Third element -echo [1, 2, 3, 4][-1] |" Last element +echo [1, 2, 3, 4][2] | " Third element +echo [1, 2, 3, 4][-1] | " Last element " List slicing (|sublist|) -echo [1, 2, 3, 4][:] |" Shallow copy of entire list -echo [1, 2, 3, 4][:2] |" Sublist until third item (inclusive) -echo [1, 2, 3, 4][2:] |" Sublist from third item (inclusive) -echo [1, 2, 3, 4][:-2] |" Sublist until second-to-last item (inclusive) +echo [1, 2, 3, 4][:] | " Shallow copy of entire list +echo [1, 2, 3, 4][:2] | " Sublist until third item (inclusive) +echo [1, 2, 3, 4][2:] | " Sublist from third item (inclusive) +echo [1, 2, 3, 4][:-2] | " Sublist until second-to-last item (inclusive) " All slicing operations create new lists. To modify a list in-place use list " functions (|list-functions|) or assign directly to an item (see below about @@ -206,14 +206,14 @@ echo [1, 2, 3, 4][:-2] |" Sublist until second-to-last item (inclusive) " are implicitly converted to strings). " Dictionary literal -echo {} |" Empty dictionary -echo {'a': 1, 'b': 2} |" Dictionary literal -echo {'a': 1, 'b': 2, } |" Trailing comma permitted -echo {'x': {'a': 1, 'b': 2}} |" Nested dictionary +echo {} | " Empty dictionary +echo {'a': 1, 'b': 2} | " Dictionary literal +echo {'a': 1, 'b': 2, } | " Trailing comma permitted +echo {'x': {'a': 1, 'b': 2}} | " Nested dictionary " Indexing a dictionary -echo {'a': 1, 'b': 2}['a'] |" Literal index -echo {'a': 1, 'b': 2}.a |" Syntactic sugar for simple keys +echo {'a': 1, 'b': 2}['a'] | " Literal index +echo {'a': 1, 'b': 2}.a | " Syntactic sugar for simple keys " See |dict-functions| for dictionary manipulation functions. @@ -225,14 +225,14 @@ echo {'a': 1, 'b': 2}.a |" Syntactic sugar for simple keys " When stored in a variable the name of the variable has the same restrictions " as a function name (see below). -echo function('type') |" Reference to function type() +echo function('type') | " Reference to function type() " Note that `funcref('type')` will throw an error because the argument must be " a user-defined function; see further below for defining your own functions. -echo funcref('type') |" Reference by identity, not name +echo funcref('type') | " Reference by identity, not name " A lambda (|lambda|) is an anonymous function; it can only contain one " expression in its body, which is also its implicit return value. -echo {x -> x * x} |" Anonymous function -echo function('substitute', ['hello']) |" Partial function +echo {x -> x * x} | " Anonymous function +echo function('substitute', ['hello']) | " Partial function " Regular expression (|regular-expression|) @@ -254,12 +254,12 @@ substitute/hello/Hello/ " number becomes its decimal notation as a string. A string becomes its " numerical value if it can be parsed to a number, otherwise it becomes zero. -echo "1" + 1 |" Number -echo "1" .. 1 |" String -echo "0xA" + 1 |" Number +echo "1" + 1 | " Number +echo "1" .. 1 | " String +echo "0xA" + 1 | " Number " Strings are treated like numbers when used as booleans -echo "true" ? 1 : 0 |" This string is parsed to 0, which is false +echo "true" ? 1 : 0 | " This string is parsed to 0, which is false " ########### " Variables @@ -269,41 +269,41 @@ echo "true" ? 1 : 0 |" This string is parsed to 0, which is false " chosen by Vim. Use `:let` and `:const` to bind a value and `:unlet` to unbind " it. -let b:my_var = 1 |" Local to current buffer -let w:my_var = 1 |" Local to current window -let t:my_var = 1 |" Local to current tab page -let g:my_var = 1 |" Global variable -let l:my_var = 1 |" Local to current function (see functions below) -let s:my_var = 1 |" Local to current script file -let a:my_arg = 1 |" Function argument (see functions below) +let b:my_var = 1 | " Local to current buffer +let w:my_var = 1 | " Local to current window +let t:my_var = 1 | " Local to current tab page +let g:my_var = 1 | " Global variable +let l:my_var = 1 | " Local to current function (see functions below) +let s:my_var = 1 | " Local to current script file +let a:my_arg = 1 | " Function argument (see functions below) " The Vim scope is read-only -echo v:true |" Special built-in Vim variables (|v:var|) +echo v:true | " Special built-in Vim variables (|v:var|) " Access special Vim memory like variables -let @a = 'Hello' |" Register -let $PATH='' |" Environment variable -let &textwidth = 79 |" Option -let &l:textwidth = 79 |" Local option -let &g:textwidth = 79 |" Global option +let @a = 'Hello' | " Register +let $PATH='' | " Environment variable +let &textwidth = 79 | " Option +let &l:textwidth = 79 | " Local option +let &g:textwidth = 79 | " Global option " Access scopes as dictionaries (can be modified like all dictionaries) " See the |dict-functions|, especially |get()|, for access and manipulation -echo b: |" All buffer variables -echo w: |" All window variables -echo t: |" All tab page variables -echo g: |" All global variables -echo l: |" All local variables -echo s: |" All script variables -echo a: |" All function arguments -echo v: |" All Vim variables +echo b: | " All buffer variables +echo w: | " All window variables +echo t: | " All tab page variables +echo g: | " All global variables +echo l: | " All local variables +echo s: | " All script variables +echo a: | " All function arguments +echo v: | " All Vim variables " Constant variables -const x = 10 |" See |:const|, |:lockvar| +const x = 10 | " See |:const|, |:lockvar| " Function reference variables have the same restrictions as function names -let IsString = {x -> type(x) == type('')} |" Global: capital letter -let s:isNumber = {x -> type(x) == type(0)} |" Local: any name allowed +let IsString = {x -> type(x) == type('')} | " Global: capital letter +let s:isNumber = {x -> type(x) == type(0)} | " Local: any name allowed " When omitted the scope `g:` is implied, except in functions, there `l:` is " implied. @@ -419,8 +419,8 @@ endtry " Unscoped function names have to start with a capital letter function! AddNumbersLoudly(x, y) " Use a: scope to access arguments - echo 'Adding' .. a:x .. 'and' .. a:y |" A side effect - return a:x + a:y |" A return value + echo 'Adding' .. a:x .. 'and' .. a:y | " A side effect + return a:x + a:y | " A return value endfunction " Scoped function names may start with a lower-case letter @@ -448,7 +448,7 @@ endfunction " Aborting functions, abort once error occurs (|:func-abort|) function! SourceMyFile() abort - source my-file.vim |" Try sourcing non-existing file + source my-file.vim | " Try sourcing non-existing file echo 'This will never be printed' endfunction @@ -460,11 +460,11 @@ function! MakeAdder(x) return funcref('Adder') endfunction let AddFive = MakeAdder(5) -echo AddFive(3) |" Prints 8 +echo AddFive(3) | " Prints 8 " Dictionary functions, poor man's OOP methods (|Dictionary-function|) function! Mylen() dict - return len(self.data) |" Implicit variable self + return len(self.data) | " Implicit variable self endfunction let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")} echo mydict.len() @@ -486,7 +486,7 @@ call sign_undefine() " The call() function calls a function reference and passes parameters as a " list, and returns the function's result. -echo call(function('get'), [{'a': 1, 'b': 2}, 'c', 3]) |" Prints 3 +echo call(function('get'), [{'a': 1, 'b': 2}, 'c', 3]) | " Prints 3 " Recall that Vim script is embedded within the ex-commands, that is why we " cannot just call a function directly, we have to use the `:call` ex-command. @@ -547,10 +547,10 @@ autocmd BufWritePost $MYVIMRC source $MYVIMRC " without deleting the old ones, causing auto-commands to pile up over time. " Use auto-groups and the following ritual to guard against this. -augroup auto-source |" The name of the group is arbitrary - autocmd! |" Deletes all auto-commands in the current group +augroup auto-source | " The name of the group is arbitrary + autocmd! | " Deletes all auto-commands in the current group autocmd BufWritePost $MYVIMRC source $MYVIMRC -augroup END |" Switch back to default auto-group +augroup END | " Switch back to default auto-group " It is also possible to assign a group directly. This is useful if the " definition of the group is in one script and the definition of the @@ -570,8 +570,8 @@ autocmd auto-source BufWritePost $MYVIMRC source $MYVIMRC " Sometimes we need to construct an ex-command where part of the command is not " known until runtime. -let line = 3 |" Line number determined at runtime -execute line .. 'delete' |" Delete a line +let line = 3 | " Line number determined at runtime +execute line .. 'delete' | " Delete a line " Executing normal-mode commands " ############################## @@ -579,11 +579,11 @@ execute line .. 'delete' |" Delete a line " Use `:normal` to play back a sequence of normal mode commands from the " command-line. Add an exclamation mark to ignore user mappings. -normal! ggddGp |" Transplant first line to end of buffer +normal! ggddGp | " Transplant first line to end of buffer " Window commands can be used with :normal, or with :wincmd if :normal would " not work -wincmd L |" Move current window all the way to the right +wincmd L | " Move current window all the way to the right " ########################### @@ -591,38 +591,38 @@ wincmd L |" Move current window all the way to the right " ########################### " Feature check -echo has('nvim') |" Running Neovim -echo has('python3') |" Support for Python 3 plugins -echo has('unix') |" Running on a Unix system -echo has('win32') |" Running on a Windows system +echo has('nvim') | " Running Neovim +echo has('python3') | " Support for Python 3 plugins +echo has('unix') | " Running on a Unix system +echo has('win32') | " Running on a Windows system " Test if something exists -echo exists('&mouse') |" Option (exists only) -echo exists('+mouse') |" Option (exists and works) -echo exists('$HOSTNAME') |" Environment variable -echo exists('*strftime') |" Built-in function -echo exists('**s:MyFunc') |" User-defined function -echo exists('bufcount') |" Variable (scope optional) -echo exists('my_dict["foo"]') |" Variable (dictionary entry) -echo exists('my_dict["foo"]') |" Variable (dictionary entry) -echo exists(':Make') |" Command -echo exists("#CursorHold") |" Auto-command defined for event -echo exists("#BufReadPre#*.gz") |" Event and pattern -echo exists("#filetypeindent") |" Auto-command group -echo exists("##ColorScheme") |" Auto-commnand supported for event +echo exists('&mouse') | " Option (exists only) +echo exists('+mouse') | " Option (exists and works) +echo exists('$HOSTNAME') | " Environment variable +echo exists('*strftime') | " Built-in function +echo exists('**s:MyFunc') | " User-defined function +echo exists('bufcount') | " Variable (scope optional) +echo exists('my_dict["foo"]') | " Variable (dictionary entry) +echo exists('my_dict["foo"]') | " Variable (dictionary entry) +echo exists(':Make') | " Command +echo exists("#CursorHold") | " Auto-command defined for event +echo exists("#BufReadPre#*.gz") | " Event and pattern +echo exists("#filetypeindent") | " Auto-command group +echo exists("##ColorScheme") | " Auto-commnand supported for event " Various dynamic values (see |expand()|) -echo expand('%') |" Current file name -echo expand('<cword>') |" Current word under cursor -echo expand('%:p') |" Modifier are possible +echo expand('%') | " Current file name +echo expand('<cword>') | " Current word under cursor +echo expand('%:p') | " Modifier are possible " Type tests -echo type(my_var) == type(0) |" Number -echo type(my_var) == type('') |" String -echo type(my_var) == type([]) |" List -echo type(my_var) == type({}) |" Dictionary -echo type(my_var) == type(function('type')) |" Funcref +echo type(my_var) == type(0) | " Number +echo type(my_var) == type('') | " String +echo type(my_var) == type([]) | " List +echo type(my_var) == type({}) | " Dictionary +echo type(my_var) == type(function('type')) | " Funcref " Format strings echo printf('%d in hexadecimal is %X', 123, 123) @@ -647,5 +647,5 @@ let g:loaded_my_plugin = v:true " Get a default value: if the user defines a variable use it, otherwise use a " hard-coded default. Uses the fact that a scope is also a dictionary. -l +let s:greeting = get(g:, 'my_plugin_greeting', 'Hello') ``` |