More updates
This commit is contained in:
parent
d6e7a7976b
commit
86e99f4e42
158
vimscript.md
158
vimscript.md
|
@ -10,7 +10,7 @@ let var = "hello"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Variable prefixes
|
### Variable prefixes
|
||||||
The `s:` prefix is also available in function names.
|
The `s:` prefix is also available in function names. See `:help local-variables`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
let g:ack_options = '-s -H' " g: global
|
let g:ack_options = '-s -H' " g: global
|
||||||
|
@ -31,7 +31,7 @@ echo $PATH " $ env
|
||||||
```
|
```
|
||||||
|
|
||||||
### Vim options
|
### Vim options
|
||||||
Prefix with `&`.
|
Prefix with `&`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
echo 'tabstop is ' . &tabstop
|
echo 'tabstop is ' . &tabstop
|
||||||
|
@ -53,8 +53,9 @@ let var += 5
|
||||||
let var .= 'string' " concat
|
let var .= 'string' " concat
|
||||||
```
|
```
|
||||||
|
|
||||||
### [Strings](http://learnvimscriptthehardway.stevelosh.com/chapters/26.html)
|
## [Strings](http://learnvimscriptthehardway.stevelosh.com/chapters/26.html)
|
||||||
Also see `:help literal-string` and `:help expr-quote`.
|
|
||||||
|
Also see `:help literal-string` and `:help expr-quote`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
let str = "String"
|
let str = "String"
|
||||||
|
@ -67,7 +68,7 @@ echo "result = " . re " concatenation
|
||||||
```
|
```
|
||||||
|
|
||||||
### [String functions](learnvimscriptthehardway.stevelosh.com/chapters/27.html)
|
### [String functions](learnvimscriptthehardway.stevelosh.com/chapters/27.html)
|
||||||
Also see `:help functions`.
|
Also see `:help functions`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
strlen(str) " length
|
strlen(str) " length
|
||||||
|
@ -123,13 +124,35 @@ function! myfunction() abort
|
||||||
endfunction
|
endfunction
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dynamic arguments
|
### [Var arguments](http://learnvimscriptthehardway.stevelosh.com/chapters/24.html)
|
||||||
|
See `:help function-argument`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
function! infect(...)
|
function! infect(...)
|
||||||
echo a:0
|
echo a:0 "=> 2
|
||||||
echo a:1
|
echo a:1 "=> jake
|
||||||
|
echo a:2 "=> bella
|
||||||
|
|
||||||
|
for s in a:000 " a list
|
||||||
|
echon ' ' . s
|
||||||
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
infect('jake', 'bella')
|
||||||
|
```
|
||||||
|
|
||||||
|
Loops
|
||||||
|
-----
|
||||||
|
|
||||||
|
```vim
|
||||||
|
for s in list
|
||||||
|
echo s
|
||||||
|
continue " jump to start of loop
|
||||||
|
break " breaks out of a loop
|
||||||
|
endfor
|
||||||
|
|
||||||
|
while x < 5
|
||||||
|
endwhile
|
||||||
```
|
```
|
||||||
|
|
||||||
Custom commands
|
Custom commands
|
||||||
|
@ -180,10 +203,62 @@ else
|
||||||
endif
|
endif
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### [Truthiness](http://learnvimscriptthehardway.stevelosh.com/chapters/21.html)
|
||||||
|
No booleans. `0` is false, `1` is true.
|
||||||
|
|
||||||
|
```vim
|
||||||
|
if 1 | echo "true" | endif
|
||||||
|
if 0 | echo "false" | endif
|
||||||
|
```
|
||||||
|
|
||||||
|
```vim
|
||||||
|
if 1 "=> 1 (true)
|
||||||
|
if 0 "=> 0 (false)
|
||||||
|
if "1" "=> 1 (true)
|
||||||
|
if "456" "=> 1 (true)
|
||||||
|
if "xfz" "=> 0 (false)
|
||||||
|
```
|
||||||
|
|
||||||
|
### [Operators](http://learnvimscriptthehardway.stevelosh.com/chapters/22.html)
|
||||||
|
See `:help expression-syntax`
|
||||||
|
|
||||||
|
```vim
|
||||||
|
if 3 > 2
|
||||||
|
if a && b
|
||||||
|
if (a && b) || (c && d)
|
||||||
|
if !c
|
||||||
|
```
|
||||||
|
|
||||||
|
### Strings
|
||||||
|
|
||||||
|
```vim
|
||||||
|
if name ==# 'John' " case-sensitive
|
||||||
|
if name ==? 'John' " case-insensitive
|
||||||
|
if name == 'John' " depends on :set ignorecase
|
||||||
|
|
||||||
|
" also: is#, is?, >=#, >=?, and so on
|
||||||
|
```
|
||||||
|
|
||||||
|
### Identity operators
|
||||||
|
Checks if it's the same instance object
|
||||||
|
|
||||||
|
```
|
||||||
|
a is b
|
||||||
|
a isnot b
|
||||||
|
```
|
||||||
|
|
||||||
|
### Regexp matches
|
||||||
|
|
||||||
|
```vim
|
||||||
|
"hello" =~ /x/
|
||||||
|
"hello" !~ /x/
|
||||||
|
```
|
||||||
|
|
||||||
### Single line
|
### Single line
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
if empty(a:path) | return [] | endif
|
if empty(a:path) | return [] | endif
|
||||||
|
a ? b : c
|
||||||
```
|
```
|
||||||
|
|
||||||
### Boolean logic
|
### Boolean logic
|
||||||
|
@ -252,6 +327,8 @@ call filter(files, 'v:val != ""')
|
||||||
Dictionaries
|
Dictionaries
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
See `:help dict`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
let colors = {
|
let colors = {
|
||||||
\ "apple": "red",
|
\ "apple": "red",
|
||||||
|
@ -263,8 +340,27 @@ echo get(colors, "apple") " supress error
|
||||||
|
|
||||||
remove(colors, "apple")
|
remove(colors, "apple")
|
||||||
|
|
||||||
|
" :help E715
|
||||||
|
if has_key(dict, 'foo')
|
||||||
|
if empty(dict)
|
||||||
keys(dict)
|
keys(dict)
|
||||||
len(dict)
|
len(dict)
|
||||||
|
|
||||||
|
max(dict)
|
||||||
|
min(dict)
|
||||||
|
|
||||||
|
count(dict, 'x')
|
||||||
|
string(dict)
|
||||||
|
|
||||||
|
map(dict, '<>> " . v:val')
|
||||||
|
```
|
||||||
|
|
||||||
|
### Iteration
|
||||||
|
|
||||||
|
```vim
|
||||||
|
for key in keys(mydict)
|
||||||
|
echo key . ': ' . mydict(key)
|
||||||
|
endfor
|
||||||
```
|
```
|
||||||
|
|
||||||
### Prefixes
|
### Prefixes
|
||||||
|
@ -290,8 +386,34 @@ str2nr("3")
|
||||||
float2nr("3.14")
|
float2nr("3.14")
|
||||||
```
|
```
|
||||||
|
|
||||||
Math
|
[Numbers](http://learnvimscriptthehardway.stevelosh.com/chapters/25.html)
|
||||||
----
|
-------
|
||||||
|
|
||||||
|
See `:help Number`
|
||||||
|
|
||||||
|
```vim
|
||||||
|
let int = 1000
|
||||||
|
let int = 0xff
|
||||||
|
let int = 0755 " octal
|
||||||
|
```
|
||||||
|
|
||||||
|
### Floats
|
||||||
|
See `:help Float`
|
||||||
|
|
||||||
|
```vim
|
||||||
|
let fl = 100.1
|
||||||
|
let fl = 5.4e4
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arithmetic
|
||||||
|
|
||||||
|
```vim
|
||||||
|
3 / 2 "=> 1, integer division
|
||||||
|
3 / 2.0 "=> 1.5
|
||||||
|
3 * 2.0 "=> 6.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Math functions
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
sqrt(100)
|
sqrt(100)
|
||||||
|
@ -308,7 +430,7 @@ Vim-isms
|
||||||
--------
|
--------
|
||||||
|
|
||||||
### [Execute a command](http://learnvimscriptthehardway.stevelosh.com/chapters/28.html)
|
### [Execute a command](http://learnvimscriptthehardway.stevelosh.com/chapters/28.html)
|
||||||
Runs an ex command you typically run with `:`. Also see `:help execute`.
|
Runs an ex command you typically run with `:`. Also see `:help execute`
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
execute "vsplit"
|
execute "vsplit"
|
||||||
|
@ -325,6 +447,16 @@ normal! G " skips key mappings
|
||||||
execute "normal! gg/foo\<cr>dd"
|
execute "normal! gg/foo\<cr>dd"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Getting filenames
|
||||||
|
|
||||||
|
```vim
|
||||||
|
echo expand("%") " path/file.txt
|
||||||
|
echo expand("%:t") " file.txt
|
||||||
|
echo expand("%:p:h") " /home/you/path/file.txt
|
||||||
|
echo expand("%:r") " path/file
|
||||||
|
echo expand("%:e") " txt
|
||||||
|
```
|
||||||
|
|
||||||
### Silencing
|
### Silencing
|
||||||
See `:help silent`
|
See `:help silent`
|
||||||
|
|
||||||
|
@ -335,6 +467,10 @@ silent g/Aap/p
|
||||||
### Echo
|
### Echo
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
|
echoerr 'oh it failed'
|
||||||
|
echomsg 'hello there'
|
||||||
|
echo 'hello'
|
||||||
|
|
||||||
echohl WarningMsg | echomsg "=> " . a:msg | echohl None
|
echohl WarningMsg | echomsg "=> " . a:msg | echohl None
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue