mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-02 20:30:05 +08:00
docs(guide): Add vim script guide
This commit is contained in:
parent
99d1035c6d
commit
1b82df1510
103
docs/cn/vim-script.md
Normal file
103
docs/cn/vim-script.md
Normal file
@ -0,0 +1,103 @@
|
||||
---
|
||||
title: "Vim 脚本指南"
|
||||
description: "Vim 脚本指南"
|
||||
lang: zh
|
||||
---
|
||||
|
||||
# [主页](../) >> Vim 脚本指南
|
||||
|
||||
使用 Vim 难免会接触到 Vim 脚本语言,本文主要介绍的 Vim 脚本的基本语法和使用技巧。
|
||||
|
||||
<!-- vim-markdown-toc GFM -->
|
||||
|
||||
- [1 基本语法](#1-基本语法)
|
||||
- [1.1 变量的命名](#11-变量的命名)
|
||||
- [1.2 变量的作用域](#12-变量的作用域)
|
||||
- [1.3 变量的定义](#13-变量的定义)
|
||||
- [1.4 变量的类型](#14-变量的类型)
|
||||
- [1.4.1 数字(number)](#141-数字number)
|
||||
- [1.4.2 字符串(string)](#142-字符串string)
|
||||
- [2、循环](#2循环)
|
||||
- [3、流程控制](#3流程控制)
|
||||
- [3.1、if-else 语句](#31if-else-语句)
|
||||
- [4、函数](#4函数)
|
||||
- [4.1、函数的定义](#41函数的定义)
|
||||
- [4.2、函数的作用域](#42函数的作用域)
|
||||
|
||||
<!-- vim-markdown-toc -->
|
||||
|
||||
## 1 基本语法
|
||||
|
||||
### 1.1 变量的命名
|
||||
|
||||
Vim 的变量名称可以使用字母、下划线、数字组成,区分大小写,并且不可以以数字开头。
|
||||
|
||||
### 1.2 变量的作用域
|
||||
|
||||
Vim 脚本中,变量的作用域支持如下类型:
|
||||
|
||||
- `g:`:全局作用域,定义后,在任何地方,脚本内、函数内,都可以调用
|
||||
- `w:`:某个窗口作用域,Vim 中每个窗口都有一个固定的ID,
|
||||
- `b:`:某个缓冲区作用域
|
||||
- `s:`:某个脚本内的作用域
|
||||
|
||||
### 1.3 变量的定义
|
||||
|
||||
|
||||
### 1.4 变量的类型
|
||||
|
||||
同其他大部分语言一样,Vim 脚本支持多种变量类型, 使用函数 `type()` 可以获取变量类型的值,包括:
|
||||
|
||||
- 数字(number):0
|
||||
- 字符串(string):1
|
||||
- 函数(Funcref):2
|
||||
- 列表(list):3
|
||||
- 字典(Dictionary):4
|
||||
- 浮点数(Float):5
|
||||
- 布尔值(Boolean):6
|
||||
- 空(Null):7
|
||||
|
||||
|
||||
#### 1.4.1 数字(number)
|
||||
|
||||
#### 1.4.2 字符串(string)
|
||||
|
||||
|
||||
## 2、循环
|
||||
|
||||
通常当我们需要做一些有规律性的重复操作时,就需要重复执行某一段脚本。
|
||||
|
||||
这些被重复执行的语句就称之为循环体,是否需要继续重复,取决于循环的终止条件。
|
||||
|
||||
循环语句是由循环体及循环的终止条件两部分组成的。
|
||||
|
||||
```plantuml
|
||||
start
|
||||
while (终止条件)
|
||||
endwhile (否)
|
||||
:结束;
|
||||
end
|
||||
```
|
||||
|
||||
## 3、流程控制
|
||||
|
||||
### 3.1、if-else 语句
|
||||
|
||||
```plantuml
|
||||
!pragma useVerticalIf on
|
||||
start
|
||||
if (condition A) then (yes)
|
||||
:Text 1;
|
||||
else (nothing)
|
||||
:Text else;
|
||||
endif
|
||||
```
|
||||
## 4、函数
|
||||
|
||||
在 Vim 脚本中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。
|
||||
|
||||
### 4.1、函数的定义
|
||||
|
||||
Vim 中使用 `function` 地
|
||||
|
||||
### 4.2、函数的作用域
|
114
docs/development/vim-script.md
Normal file
114
docs/development/vim-script.md
Normal file
@ -0,0 +1,114 @@
|
||||
# Vim Script Guide
|
||||
|
||||
|
||||
<!-- vim-markdown-toc GFM -->
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [Syntax](#syntax)
|
||||
- [Basic syntax](#basic-syntax)
|
||||
- [Comments](#comments)
|
||||
- [Variables](#variables)
|
||||
- [Variable Scope](#variable-scope)
|
||||
- [Data Types](#data-types)
|
||||
- [Operators](#operators)
|
||||
- [Loop](#loop)
|
||||
- [for loop](#for-loop)
|
||||
- [while loop](#while-loop)
|
||||
- [Functions](#functions)
|
||||
- [return statement](#return-statement)
|
||||
|
||||
<!-- vim-markdown-toc -->
|
||||
|
||||
## Introduction
|
||||
|
||||
Vim script is the built-in language used in Vim/Neovim editors.
|
||||
|
||||
## Syntax
|
||||
|
||||
### Basic syntax
|
||||
|
||||
### Comments
|
||||
|
||||
## Variables
|
||||
|
||||
Variables are "containers" for storing information. In vim script, a variable starts with the scoop,
|
||||
followed by the name of this variable.
|
||||
|
||||
```
|
||||
let g:foo = 'hello world'
|
||||
```
|
||||
|
||||
### Variable Scope
|
||||
|
||||
In vim script, there are 6 kinds of variable scopes:
|
||||
|
||||
1. `g:` global variable scope
|
||||
2. `s:` local to script
|
||||
3. `l:` local to function, it can be prepended.
|
||||
4. `w:` local to window
|
||||
5. `t:` local to tab
|
||||
6. `b:` local to buffer
|
||||
|
||||
## Data Types
|
||||
|
||||
## Operators
|
||||
|
||||
## Loop
|
||||
|
||||
Often when you write vim script, you want the same code block to run over and over again.
|
||||
Instead of adding several almost equal lines in the script, we can use loops.
|
||||
|
||||
In vim script there are two kinds of lools, `for loop` and `while loop`.
|
||||
|
||||
### for loop
|
||||
|
||||
|
||||
To execute a block of code a specified number of times, you need to use for loop.
|
||||
here is an example of for loop in vim script:
|
||||
|
||||
```vim
|
||||
for n in range(10)
|
||||
echo n
|
||||
endfor
|
||||
```
|
||||
|
||||
### while loop
|
||||
|
||||
While loops execute a block of code while the specified condition is true.
|
||||
|
||||
|
||||
## Functions
|
||||
|
||||
Vim provides many built-in functions, besides the built-in functions,
|
||||
we can also create our own functions.
|
||||
|
||||
```vim
|
||||
function! TestHello() abort
|
||||
echo "hello world"
|
||||
endfunction
|
||||
```
|
||||
|
||||
use `:call TestHello()` to run a function.
|
||||
|
||||
### return statement
|
||||
|
||||
Within a function, we can use return statement to return a variable.
|
||||
if the return statement is prepended. `0` is returned.
|
||||
|
||||
```vim
|
||||
function! Test() abort
|
||||
return 'hello'
|
||||
endfunction
|
||||
|
||||
echo Test()
|
||||
|
||||
" hello
|
||||
|
||||
function! Test() abort
|
||||
|
||||
endfunction
|
||||
|
||||
echo Test()
|
||||
|
||||
" 0
|
||||
```
|
Loading…
Reference in New Issue
Block a user