Skip to content

Commit 60dcd7d

Browse files
committed
Change until just before *E1034*
1 parent 1223bb1 commit 60dcd7d

File tree

1 file changed

+84
-91
lines changed

1 file changed

+84
-91
lines changed

doc/vim9.jax

Lines changed: 84 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -599,11 +599,11 @@ function() の省略 ~
599599
\ v)
600600
\ => v > 0)
601601
< *vim9-lambda-arguments* *E1172*
602-
旧来の Vim scripy では、ラムダ式は任意の数の追加引数で呼び出すことができ、引数
603-
を指定しなかった場合の警告を出す方法がなかった。Vim9 script では、引数の数は一
604-
致している必要がある。任意の引数、あるいは追加の引数を受け入れたい場合は、
605-
"..._" を使用する。これにより、関数は |vim9-variable-arguments| を受け入れるよ
606-
うになる。例: >
602+
旧来のスクリプトでは、ラムダ式は任意の数の追加引数で呼び出すことができ、引数を
603+
指定しなかった場合の警告を出す方法がなかった。Vim9 script では、引数の数は一致
604+
している必要がある。任意の引数、あるいは追加の引数を受け入れたい場合は、"..._"
605+
を使用する。これにより、関数は |vim9-variable-arguments| を受け入れるようにな
606+
。例: >
607607
var Callback = (..._) => 'anything'
608608
echo Callback(1, 2, 3) # "anything" を表示する
609609
@@ -736,8 +736,8 @@ Note これは、ヒアドキュメントの最初の行をバーで始めるこ
736736
\ start='foo'
737737
#\ コメント
738738
\ end='bar'
739-
旧来の Vim script と同様に、'"\ ' が使用される。これは、バックスラッシュなしで
740-
行継続が使用され、行がバーで始まる場合にも必要である: >
739+
旧来のスクリプトと同様に、'"\ ' が使用される。これは、バックスラッシュなしで行
740+
継続が使用され、行がバーで始まる場合にも必要である: >
741741
au CursorHold * echom 'BEFORE bar'
742742
#\ 何かのコメント
743743
| echom 'AFTER bar'
@@ -804,30 +804,28 @@ Notes:
804804
のような場合は、バックスラッシュによる行継続を使用する必要がある。
805805

806806

807-
ホワイトスペース ~
807+
空白 ~
808808
*E1004* *E1068* *E1069* *E1074* *E1127* *E1202*
809-
Vim9 script ではホワイトスペースの適切な使用を強制します。これはもはや許可され
810-
ません: >
809+
Vim9 script では空白の適切な使用を強制する。これはもう許可されていない: >
811810
var name=234 # エラー!
812811
var name= 234 # エラー!
813812
var name =234 # エラー!
814-
"=" の前後にホワイトスペースがなければいけません: >
813+
"=" の前後には空白が必要である: >
815814
var name = 234 # OK
816-
コマンドの後ろでコメントを開始する # の前にもホワイトスペースが置かれなければ
817-
なりません: >
815+
コマンドの後ろのコメントを開始する # の前にも空白を入れる必要がある: >
818816
var name = 234# エラー!
819817
var name = 234 # OK
820818
821-
ホワイトスペースは大抵の演算子の周りで必須です
819+
ほとんどの演算子の周囲には空白が必要である
822820

823-
始まりと終わりと除いて、サブリスト (リストのスライス) の ":" の周りにホワイト
824-
スペースが必要です: >
821+
サブリスト (リストスライス) では先頭と末尾を除き、":" の前後に空白が必要である:
822+
>
825823
otherlist = mylist[v : count] # v:count は異なる意味を持つ
826824
otherlist = mylist[:] # リストのコピーを作る
827825
otherlist = mylist[v :]
828826
otherlist = mylist[: v]
829827
830-
ホワイトスペースは許可されません:
828+
空白は許可されない:
831829
- 関数名と "(" の間: >
832830
Func (arg) # エラー!
833831
Func
@@ -841,134 +839,131 @@ Vim9 script ではホワイトスペースの適切な使用を強制します
841839
arg # OK
842840
)
843841
< *E1205*
844-
`:set` コマンドでのオプション名と続く "&"、"!"、"<"、"="、"+="、"-=" や "^="
845-
の間にはホワイトスペースは許可されません
842+
`:set` コマンドではオプション名とそれに続く "&"、"!"、"<"、"="、"+="、"-="
843+
たは "^=" の間に空白は許可されていない
846844

847845

848-
波括弧変数の廃止 ~
846+
波括弧の展開の禁止 ~
849847

850-
波括弧変数 |curly-braces-names| は使用できません
848+
波括弧変数 |curly-braces-names| は使用できない
851849

852850

853851
コマンド修飾子は無視されない ~
854852
*E1176*
855-
コマンド修飾子を使わないコマンドにコマンド修飾子を使うとエラーになります。
853+
コマンド修飾子を使用しないコマンドにコマンド修飾子を使用するとエラーが発生す
854+
る。
856855
*E1082*
857-
同様に、続くコマンドなしにコマンド修飾子を使うことも今はエラーになります
856+
また、後続のコマンドなしでコマンド修飾子を使用するとエラーになるようになった
858857

859858

860859
辞書リテラル ~
861860
*vim9-literal-dict* *E1014*
862-
従来、Vim は波括弧 {} で辞書リテラルの表記をサポートしてきました: >
861+
従来、Vim {} 構文を使用して辞書リテラルをサポートしてきた: >
863862
let dict = {'key': value}
864863
865-
後に、辞書にシンプルなキーを使用することが非常に一般的であることが明らかになっ
866-
たため、キーをクォーテーションなしで指定できる表記が後方互換的に導入されまし
867-
た: >
864+
その後、単純なテキストのキーの使用が非常に一般的であることが明らかになったた
865+
め、後方互換性のある形でリテラル辞書が導入された: >
868866
let dict = #{key: value}
869867
870-
しかし、この #{} という表記は他の言語に比べて異色なものです。キーには式よりも
871-
リテラルを使うほうが一般的で、JavaScript が使っている構文を考えると、辞書リテ
872-
ラルに {} の表記を使うほうがずっと便利です: >
868+
しかし、この #{} 構文は既存の言語とは異なる。リテラルキーの使用は式の使用より
869+
もはるかに一般的であり、JavaScript でもこの構文が使用されていることを考慮する
870+
と、辞書リテラルに {} 形式を使用する方がはるかに便利な構文であると考えられる。
871+
Vim9 script では、{} 形式はリテラルキーを使用する: >
873872
var dict = {key: value}
874873
875-
これは英数字、アンダースコアとダッシュのキーで利用できます。異なる文字を使用す
876-
る場合は、シングルクォートまたはダブルクォートで囲まれた文字列を使用します: >
874+
これは英数字、アンダースコアおよびダッシュに有効である。他の文字を使用する場合
875+
は、シングルクォートまたはダブルクォートで囲んだ文字列を使用する: >
877876
var dict = {'key with space': value}
878877
var dict = {"key\twith\ttabs": value}
879878
var dict = {'': value} # 空のキー
880879
< *E1139*
881-
キーに式を使用する必要がある場合は、JavaScript と同様に角括弧を使用することが
882-
できます: >
880+
キーに式を使用する必要がある場合は、JavaScript と同様に角括弧を使用できる: >
883881
var dict = {["key" .. nr]: value}
884882
885-
キーの型には、文字列、数値、真偽値、浮動小数点のいずれかを指定できます。その他
886-
の型の場合はエラーが発生します。[] を使わない場合は文字列として扱われ、先頭の
887-
0 を保持します。[] を使って式が与えられた場合は、式を評価し、文字列に変換しま
888-
す。先頭の 0 は省かれます: >
883+
キーの型は文字列、数値、真偽値、または浮動小数点数である。その他の型はエラーに
884+
なる。[] を使用しない場合、値は先頭のゼロを保持した文字列として扱われる。[] で
885+
指定された式は評価され文字列に変換される。その際、先頭のゼロは削除される: >
889886
var dict = {000123: 'without', [000456]: 'with'}
890887
echo dict
891888
{'456': 'with', '000123': 'without'}
892-
[] 外ではドットは受け入れられないので、浮動小数点数は [] の中でのみ動作しま
893-
す: >
889+
ドットは他の場所では受け入れられないため、浮動小数点数は [] 内でのみ動作する: >
894890
var dict = {[00.013]: 'float'}
895891
echo dict
896892
{'0.013': 'float'}
897893
898894
899-
:xit、:t、:k、:append、:change、:insert の廃止 ~
895+
:xit、:t、:k、:append、:change、:insert の禁止 ~
900896
*E1100*
901-
これらのコマンドは容易にローカル変数の名前と混同します
902-
`:x``:xit` の代わりに `:exit` を使用できます
903-
`:t` の代わりに `:copy` を使用できます
904-
`:k` の代わりに `:mark` を使用できます
897+
これらのコマンドは、ローカル変数名と混同されやすい
898+
`:x``:xit` の代わりに `:exit` を使用できる
899+
`:t` の代わりに `:copy` を使用できる
900+
`:k` の代わりに `:mark` を使用できる
905901

906-
比較 ~
907902

908-
オプション 'ignorecase' は文字列の比較には作用しません。なので、"=~" は "=~#"
909-
と同じように動作します。
903+
比較演算子 ~
910904

911-
現状では、"is" と "isnot" (|expr-is||expr-isnot|) を文字列に対して使うと
912-
常に偽を返します。旧来の Vim script では文字列の比較を行うだけでしたが、Vim9
913-
script ではそれらは文字列オブジェクトが同一であることをチェックします。文字列
914-
は使われるときに複製されるので、二つの文字列は同一と判定されることはありませ
915-
ん。(いつか、もし文字列が複製されるのではなく参照カウントで管理されるようにな
916-
ると、この挙動は変更されるかもしれません)
905+
'ignorecase' オプションは、文字列を使用する比較演算子では使用されない。
906+
したがって、"=~" は "=~#" のように動作する。
907+
908+
文字列に対して "is" と "isnot" (|expr-is||expr-isnot|) を使用すると、偽を
909+
返すようになった。旧来のスクリプトでは文字列の比較のみだったが、|Vim9| script
910+
では文字列の同一性を確認し、使用時に文字列がコピーされるため、2 つの文字列が同
911+
一になることはない (文字列がコピーされず参照カウントされるようになれば、将来的
912+
には変更される可能性がある)。
917913

918914

919915
エラー後の中断 ~
920916

921-
旧来の Vim script では、エラーに遭遇したとき、Vim は後続の行の実行を続けます。
922-
これは長いエラーの列を生みかねず、そしてそのエラーを止めるための CTRL-C の入力
923-
が必要になります。Vim9 script ではコマンドの実行は最初のエラーに遭遇した段階で
924-
終了します。例: >
917+
旧来のスクリプトではエラーが発生すると、Vim は次の行の実行を継続する。これによ
918+
り、長いエラーシーケンスが発生し停止するには Ctrl-C を入力する必要がある。Vim9
919+
script では、コマンドの実行は最初のエラーで停止する。例: >
925920
vim9script
926921
var x = does-not-exist
927922
echo 'not executed'
928923
929924
930925
For ループ ~
931926
*E1254*
932-
ループ変数は先に宣言されていてはいけません: >
927+
ループ変数は宣言されていてはいけない: >
933928
var i = 1
934929
for i in [1, 2, 3] # エラー!
935930
936-
ただ、グローバル変数を使うことは可能です: >
931+
ただし、グローバル変数を使用することは可能である: >
937932
g:i = 1
938933
for g:i in [1, 2, 3]
939934
echo g:i
940935
endfor
941936
942-
旧来の Vim script では、リストのループ内で現在または前の項目を削除するための
943-
for ループをつくるために幾つかのトリックがあります。Vim9 script では、単純にイ
944-
ンデックスを使用することで、リストから削除された場合はスキップされます。
945-
旧来のスクリプトの例: >
937+
旧来の Vim script には、リストハンドルに対してforループを実行し、現在位置また
938+
は前の項目を削除するトリックがいくつかある。Vim9 script ではインデックスのみを
939+
使用し、項目が削除された場合はリスト内の項目をスキップする。旧来のスクリプトの
940+
: >
946941
let l = [1, 2, 3, 4]
947942
for i in l
948943
echo i
949944
call remove(l, index(l, i))
950945
endfor
951-
出力は以下の通り:
946+
以下が出力される:
952947
1
953948
2
954949
3
955950
4
956-
コンパイルされた Vim9 script での出力は以下の通り:
951+
コンパイルされた Vim9 script では以下のようになる:
957952
1
958953
3
959-
一般的に、反復しているリストを変更してはいけません。必要であれば最初にコピーを
960-
作ります
961-
リストのリストをループする場合、ネストされたリストを変更できます。ループ変数は
962-
"final" であり、変更することはできませんが、その値は変更できます
954+
一般的に、反復処理するリストは変更してはならない。必要であれば事前にコピーを作
955+
成する
956+
リストのリストをループ処理する場合、ネストされたリストは変更できる。ループ変数
957+
"final" であり変更できないが、その値は変更できる
963958
*E1306*
964-
:for ループと :while ループを合わせたループの深さは、10 を超えることはできませ
965-
959+
:for ループと :while ループを合わせたループの深さは、10 を超えることはできな
960+
966961

967962

968963
条件と式 ~
969964
*vim9-boolean*
970-
条件と式は、他の言語とおよそ同じように扱われます。いくつかの値は旧来の Vim
971-
script と扱いが異なります:
965+
条件と式は他の言語とほぼ同じように動作する。ただし、一部の値は旧来の Vim scipt
966+
と異なる:
972967
値 旧来の Vim script Vim9 script ~
973968
0 falsy falsy
974969
1 truthy truthy
@@ -977,28 +972,27 @@ script と扱いが異なります:
977972
"99" truthy エラー!
978973
"text" falsy エラー!
979974

980-
"??" 演算子か "!" を使用している場合はエラーとなることはなく、すべての値は
981-
falsy か truthy として評価されます。これは JavaScript とほぼ同じですが、空の
982-
リストと辞書は falsy として評価されます:
975+
"??" 演算子や "!" 演算子を使用する場合エラーは発生せず、すべての値は偽値か真値
976+
のいずれかになる。これは JavaScript とほぼ同じだが、空のリストと辞書は偽値にな
977+
:
983978

984-
真と評価される値 ~
979+
真値となるとき ~
985980
bool true, v:true または 1
986981
number 非0
987982
float 非0
988-
string 空文字列以外
989-
blob 空 blob 以外
990-
list 空リスト以外 (JavaScript とは異なる)
991-
tuple 空 tuple 以外 (JavaScript とは異なる)
992-
dictionary 空辞書以外 (JavaScript とは異なる)
983+
string 空以外
984+
blob 空以外
985+
list 空以外 (JavaScript とは異なる)
986+
tuple 空以外 (JavaScript とは異なる)
987+
dictionary 空以外 (JavaScript とは異なる)
993988
func 関数名があるとき
994989
special true または v:true
995990
job 非 NULL
996991
channel 非 NULL
997992
class 非 NULL
998993
object 非 NULL (TODO: isTrue() が true を返すとき)
999994

1000-
真偽値演算子 "||" と "&&" は、値が真偽値、0または1であることを期待します:
1001-
>
995+
真偽値演算子 "||" と "&&" は、値が真偽値、0 または 1 であることを期待する: >
1002996
1 || false == true
1003997
0 || 1 == true
1004998
0 || false == false
@@ -1008,19 +1002,18 @@ falsy か truthy として評価されます。これは JavaScript とほぼ同
10081002
'yes' && 0 エラー!
10091003
[] || 99 エラー!
10101004
1011-
"!" を使って論理否定をすると、どのような型に対しても結果は真偽値になります。
1012-
"!!" と二重論理否定をすることで、あらゆる型を真偽値に変換することができます: >
1005+
論理否定に "!" を使用する場合、どの型を使用してもエラーは発生せず、結果は真偽
1006+
値になる。"!!" を使用すると、任意の値を真偽値に変換できる: >
10131007
!'yes' == false
10141008
!![] == false
10151009
!![1, 2, 3] == true
10161010
1017-
文字列の結合に `..` を使用すると、すべての単純型の被演算子は常に文字列に変換さ
1018-
れます: >
1011+
文字列の連結に `..` を使用する場合、単純型の引数は常に文字列に変換される: >
10191012
'hello ' .. 123 == 'hello 123'
10201013
'hello ' .. v:true == 'hello true'
10211014
1022-
単純型とは、文字列 (string)、数値 (float)、特殊値 (special) と真偽値 (bool) で
1023-
す。他の型では |string()| を使う必要があります
1015+
単純型は Number、Float、Special、Bool である。その他の型には |string()| を使用
1016+
すべきである
10241017
*false* *true* *null* *null_blob* *null_channel*
10251018
*null_class* *null_dict* *null_function* *null_job*
10261019
*null_list* *null_object* *null_partial* *null_string*

0 commit comments

Comments
 (0)