- 最好將vim9script放在第一行
- 注釋以
#
開頭笔呀,而不是"
echo "hello" # comment
- 幾乎不需要使用反斜杠
\
作為續(xù)行符:
echo "hello "
.. yourName
.. ", how are you?"
雙句點(diǎn)的前后都必須有空格。
- 許多地方需要空格以提高可讀性髓需。
- 不需要使用
:let
來賦值许师,使用:var
來聲明變量:var count = 0 count += 3
- 可以使用
:final
和:const
來聲明常量:final matches = [] # add to the list later const names = ['Betty', 'Peter'] # cannot be changed
- 不能使用
:finally
的縮寫:final
。 - 默認(rèn)情況下僚匆,變量和函數(shù)都是script-local (并非global)的微渠。
- 聲明函數(shù)時(shí)需要指定參數(shù)類型和返回類型(
number
和string
以及bool
是類型):def CallMe(count: number, message: string): bool
- 不需要使用
:call
來調(diào)用函數(shù):writefile(['done'], 'file.txt')
- 不能使用舊的Ex命令,例如:
:Print :append :change :d directly followed by 'd' or 'p'. :insert :k :mode :open :s with only flags :t :xit
- 某些命令(特別是用于流程控制的命令)不能縮寫咧擂。
- 不能使用花括號(hào)名稱(curly-braces names)逞盆。
- 在命令之前的范圍必須以冒號(hào)為前綴:
:%s/this/that
- 使用
@r
執(zhí)行寄存器不起作用,可以在前面加上冒號(hào)或使用:exe
::exe @a
- 除非特別說明松申,否則使用最高的
scriptversion
云芦。 - 定義表達(dá)式映射時(shí),表達(dá)式將在定義它的腳本上下文中進(jìn)行評(píng)估(be evaluated )贸桶。
以#
開頭的注釋
在舊版Vim腳本中舅逸,注釋以雙引號(hào)開頭。在Vim9腳本中皇筛,注釋以#
開頭琉历。
# declarations
var count = 0 # number of occurrences
這是因?yàn)殡p引號(hào)也可以是字符串的開頭標(biāo)志。在許多地方水醋,特別是在具有換行符的表達(dá)式的中間旗笔,很難判斷其含義,因?yàn)樽址妥⑨尪伎梢院蟾我馕谋局糇佟榱吮苊饣煜瘢挥?code>#注釋是被識(shí)別的。這與shell腳本和Python程序相同惶桐。
為了提高可讀性艘包,命令與以#
開頭的注釋之間必須有空格:
var name = value # comment
var name = value# error!
在開始閱讀腳本文件時(shí)的猛,Vim不知道它是Vim9腳本,直到找到vim9script
命令為止想虎。在那之前卦尊,您需要使用舊版注釋:
" legacy comment
vim9script
# Vim9 comment
這看起來很丑,最好將vim9script
放在第一行:
vim9script
使用%%代替#作為備用文件名(alternate file name)
- 在舊版Vim腳本中舌厨,
#
也用于備用文件名岂却。在Vim9腳本中,您需要使用%%
代替裙椭。而##
則使用%%%
代替(表示所有參數(shù))躏哩。