- % :表示当前编辑的文件名
- %:r : 去掉文件后缀
变量命名
默认:函数内,局部于函数;否则, 全局
buffer-variable b: 局部于当前缓冲区。
window-variable w: 局部于当前窗口。
tabpage-variable t: 局部于当前标签页。
global-variable g: 全局。
local-variable l: 局部于函数。
script-variable s: 局部于 :source 的 Vim 脚本。
function-argument a: 函数参数 (只限于函数内使用)。
vim-variable v: Vim 预定义的全局变量
常见表达式
- 执行冒号命令
:execute "tag" . tag_name
- 执行普通模式下的命令
normal gg
expr2 ? expr1 : expr1 if-then-else
expr3 || expr3 .. 逻辑或
expr4 && expr4 .. 逻辑与
expr5 == expr5 等于
expr5 != expr5 不等于
expr5 > expr5 大于
expr5 >= expr5 大于等于
expr5 < expr5 小于
expr5 <= expr5 小于等于
expr5 =~ expr5 匹配正规表达式
expr5 !~ expr5 不匹配正规表达式
expr5 ==? expr5 等于,忽略大小写
expr5 ==# expr5 等于,匹配大小写
等等 如上,? 忽略大小写,# 则匹配之
expr5 is expr5 相同的 List 实例
expr5 isnot expr5 不同的 List 实例
**算术**
expr6 + expr6 .. 数值加法或列表连接
expr6 - expr6 .. 数值减法
expr6 . expr6 .. 字符串连接
expr7 * expr7 .. 数值乘法
expr7 / expr7 .. 数值除法
expr7 % expr7 .. 数值求余
! expr7 逻辑非
- expr7 一元减法: 取反
+ expr7 一元加法: 原值
expr8[expr1] 字符串里的字节或者 List 的项目
expr8[expr1 : expr1] 字符串子串或 List 的子列表
expr8.name Dictionary 的项目
expr8(expr1, ...) 使用 Funcref 变量的函数调用
"string" 字符串常数,反斜杠有特殊含义
'string' 字符串常数,' 加倍
[expr1, ...] List
{expr1: expr1, ...} Dictionary
&option 选项值
(expr1) 嵌套表达式
variable 内部变量
va{ria}ble 带花括号的内部变量
$VAR 环境变量
@r 寄存器 'r' 的值
function(expr1, ...) 函数调用
func{ti}on(expr1, ...) 带花括号的函数调用
{args -> expr1} 匿名函数表达式
".." 标明这一层上的操作可以连接。比如:
&nu || &list && &shell == "csh"
同一层的表达式从左到右进行分析。
编写函数
- 调用
:call Search("Date:","W")
- 编写
:function {name}({var1}, {var2}, ...)
{函数体}
:endfunction
# 函数名必须以大写字母开始
# 要重定义一个已经存在的函数,在 "function" 命令后加上 !
# echo 可以输出函数结果 echo 函数