@@ -599,11 +599,11 @@ function() の省略 ~
599
599
\ v)
600
600
\ => v > 0)
601
601
< *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
+ る 。例: >
607
607
var Callback = (..._) => 'anything'
608
608
echo Callback(1, 2, 3) # "anything" を表示する
609
609
@@ -736,8 +736,8 @@ Note これは、ヒアドキュメントの最初の行をバーで始めるこ
736
736
\ start='foo'
737
737
#\ コメント
738
738
\ end='bar'
739
- 旧来の Vim script と同様に 、'"\ ' が使用される。これは、バックスラッシュなしで
740
- 行継続が使用され 、行がバーで始まる場合にも必要である: >
739
+ 旧来のスクリプトと同様に 、'"\ ' が使用される。これは、バックスラッシュなしで行
740
+ 継続が使用され 、行がバーで始まる場合にも必要である: >
741
741
au CursorHold * echom 'BEFORE bar'
742
742
#\ 何かのコメント
743
743
| echom 'AFTER bar'
@@ -804,30 +804,28 @@ Notes:
804
804
のような場合は、バックスラッシュによる行継続を使用する必要がある。
805
805
806
806
807
- ホワイトスペース ~
807
+ 空白 ~
808
808
*E1004* *E1068* *E1069* *E1074* *E1127* *E1202*
809
- Vim9 script ではホワイトスペースの適切な使用を強制します。これはもはや許可され
810
- ません: >
809
+ Vim9 script では空白の適切な使用を強制する。これはもう許可されていない: >
811
810
var name=234 # エラー!
812
811
var name= 234 # エラー!
813
812
var name =234 # エラー!
814
- "=" の前後にホワイトスペースがなければいけません : >
813
+ "=" の前後には空白が必要である : >
815
814
var name = 234 # OK
816
- コマンドの後ろでコメントを開始する # の前にもホワイトスペースが置かれなければ
817
- なりません: >
815
+ コマンドの後ろのコメントを開始する # の前にも空白を入れる必要がある: >
818
816
var name = 234# エラー!
819
817
var name = 234 # OK
820
818
821
- ホワイトスペースは大抵の演算子の周りで必須です 。
819
+ ほとんどの演算子の周囲には空白が必要である 。
822
820
823
- 始まりと終わりと除いて、 サブリスト (リストのスライス) の ":" の周りにホワイト
824
- スペースが必要です: >
821
+ サブリスト (リストスライス) では先頭と末尾を除き、 ":" の前後に空白が必要である:
822
+ >
825
823
otherlist = mylist[v : count] # v:count は異なる意味を持つ
826
824
otherlist = mylist[:] # リストのコピーを作る
827
825
otherlist = mylist[v :]
828
826
otherlist = mylist[: v]
829
827
830
- ホワイトスペースは許可されません :
828
+ 空白は許可されない :
831
829
- 関数名と "(" の間: >
832
830
Func (arg) # エラー!
833
831
Func
@@ -841,134 +839,131 @@ Vim9 script ではホワイトスペースの適切な使用を強制します
841
839
arg # OK
842
840
)
843
841
< *E1205*
844
- `:set ` コマンドでのオプション名と続く "&"、"!"、"<"、"="、"+="、"-=" や "^="
845
- の間にはホワイトスペースは許可されません 。
842
+ `:set ` コマンドではオプション名とそれに続く "&"、"!"、"<"、"="、"+="、"-=" ま
843
+ たは "^=" の間に空白は許可されていない 。
846
844
847
845
848
- 波括弧変数の廃止 ~
846
+ 波括弧の展開の禁止 ~
849
847
850
- 波括弧変数 | curly-braces-names | は使用できません 。
848
+ 波括弧変数 | curly-braces-names | は使用できない 。
851
849
852
850
853
851
コマンド修飾子は無視されない ~
854
852
*E1176*
855
- コマンド修飾子を使わないコマンドにコマンド修飾子を使うとエラーになります。
853
+ コマンド修飾子を使用しないコマンドにコマンド修飾子を使用するとエラーが発生す
854
+ る。
856
855
*E1082*
857
- 同様に、続くコマンドなしにコマンド修飾子を使うことも今はエラーになります 。
856
+ また、後続のコマンドなしでコマンド修飾子を使用するとエラーになるようになった 。
858
857
859
858
860
859
辞書リテラル ~
861
860
*vim9-literal-dict* *E1014*
862
- 従来、Vim は波括弧 {} で辞書リテラルの表記をサポートしてきました : >
861
+ 従来、Vim は {} 構文を使用して辞書リテラルをサポートしてきた : >
863
862
let dict = {'key': value}
864
863
865
- 後に、辞書にシンプルなキーを使用することが非常に一般的であることが明らかになっ
866
- たため、キーをクォーテーションなしで指定できる表記が後方互換的に導入されまし
867
- た: >
864
+ その後、単純なテキストのキーの使用が非常に一般的であることが明らかになったた
865
+ め、後方互換性のある形でリテラル辞書が導入された: >
868
866
let dict = #{key: value}
869
867
870
- しかし、この #{} という表記は他の言語に比べて異色なものです。キーには式よりも
871
- リテラルを使うほうが一般的で、JavaScript が使っている構文を考えると、辞書リテ
872
- ラルに {} の表記を使うほうがずっと便利です: >
868
+ しかし、この #{} 構文は既存の言語とは異なる。リテラルキーの使用は式の使用より
869
+ もはるかに一般的であり、JavaScript でもこの構文が使用されていることを考慮する
870
+ と、辞書リテラルに {} 形式を使用する方がはるかに便利な構文であると考えられる。
871
+ Vim9 script では、{} 形式はリテラルキーを使用する: >
873
872
var dict = {key: value}
874
873
875
- これは英数字、アンダースコアとダッシュのキーで利用できます。異なる文字を使用す
876
- る場合は、シングルクォートまたはダブルクォートで囲まれた文字列を使用します : >
874
+ これは英数字、アンダースコアおよびダッシュに有効である。他の文字を使用する場合
875
+ は、シングルクォートまたはダブルクォートで囲んだ文字列を使用する : >
877
876
var dict = {'key with space': value}
878
877
var dict = {"key\twith\ttabs": value}
879
878
var dict = {'': value} # 空のキー
880
879
< *E1139*
881
- キーに式を使用する必要がある場合は、JavaScript と同様に角括弧を使用することが
882
- できます: >
880
+ キーに式を使用する必要がある場合は、JavaScript と同様に角括弧を使用できる: >
883
881
var dict = {["key" .. nr]: value}
884
882
885
- キーの型には、文字列、数値、真偽値、浮動小数点のいずれかを指定できます。その他
886
- の型の場合はエラーが発生します。[] を使わない場合は文字列として扱われ、先頭の
887
- 0 を保持します。[] を使って式が与えられた場合は、式を評価し、文字列に変換しま
888
- す。先頭の 0 は省かれます: >
883
+ キーの型は文字列、数値、真偽値、または浮動小数点数である。その他の型はエラーに
884
+ なる。[] を使用しない場合、値は先頭のゼロを保持した文字列として扱われる。[] で
885
+ 指定された式は評価され文字列に変換される。その際、先頭のゼロは削除される: >
889
886
var dict = {000123: 'without', [000456]: 'with'}
890
887
echo dict
891
888
{'456': 'with', '000123': 'without'}
892
- [] 外ではドットは受け入れられないので、浮動小数点数は [] の中でのみ動作しま
893
- す: >
889
+ ドットは他の場所では受け入れられないため、浮動小数点数は [] 内でのみ動作する: >
894
890
var dict = {[00.013]: 'float'}
895
891
echo dict
896
892
{'0.013': 'float'}
897
893
898
894
899
- :xit、:t、:k、:append、:change、:insert の廃止 ~
895
+ :xit、:t、:k、:append、:change、:insert の禁止 ~
900
896
*E1100*
901
- これらのコマンドは容易にローカル変数の名前と混同します 。
902
- `:x ` や `:xit ` の代わりに `:exit ` を使用できます 。
903
- `:t ` の代わりに `:copy ` を使用できます 。
904
- `:k ` の代わりに `:mark ` を使用できます 。
897
+ これらのコマンドは、ローカル変数名と混同されやすい 。
898
+ `:x ` や `:xit ` の代わりに `:exit ` を使用できる 。
899
+ `:t ` の代わりに `:copy ` を使用できる 。
900
+ `:k ` の代わりに `:mark ` を使用できる 。
905
901
906
- 比較 ~
907
902
908
- オプション 'ignorecase' は文字列の比較には作用しません。なので、"=~" は "=~#"
909
- と同じように動作します。
903
+ 比較演算子 ~
910
904
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
+ には変更される可能性がある)。
917
913
918
914
919
915
エラー後の中断 ~
920
916
921
- 旧来の Vim script では、エラーに遭遇したとき、Vim は後続の行の実行を続けます。
922
- これは長いエラーの列を生みかねず、そしてそのエラーを止めるための CTRL-C の入力
923
- が必要になります。Vim9 script ではコマンドの実行は最初のエラーに遭遇した段階で
924
- 終了します。例: >
917
+ 旧来のスクリプトではエラーが発生すると、Vim は次の行の実行を継続する。これによ
918
+ り、長いエラーシーケンスが発生し停止するには Ctrl-C を入力する必要がある。Vim9
919
+ script では、コマンドの実行は最初のエラーで停止する。例: >
925
920
vim9script
926
921
var x = does-not-exist
927
922
echo 'not executed'
928
923
929
924
930
925
For ループ ~
931
926
*E1254*
932
- ループ変数は先に宣言されていてはいけません : >
927
+ ループ変数は宣言されていてはいけない : >
933
928
var i = 1
934
929
for i in [1, 2, 3] # エラー!
935
930
936
- ただ、グローバル変数を使うことは可能です : >
931
+ ただし、グローバル変数を使用することは可能である : >
937
932
g:i = 1
938
933
for g:i in [1, 2, 3]
939
934
echo g:i
940
935
endfor
941
936
942
- 旧来の Vim script では、リストのループ内で現在または前の項目を削除するための
943
- for ループをつくるために幾つかのトリックがあります 。Vim9 script では、単純にイ
944
- ンデックスを使用することで、リストから削除された場合はスキップされます。
945
- 旧来のスクリプトの例 : >
937
+ 旧来の Vim script には、リストハンドルに対してforループを実行し、現在位置また
938
+ は前の項目を削除するトリックがいくつかある 。Vim9 script ではインデックスのみを
939
+ 使用し、項目が削除された場合はリスト内の項目をスキップする。旧来のスクリプトの
940
+ 例 : >
946
941
let l = [1, 2, 3, 4]
947
942
for i in l
948
943
echo i
949
944
call remove(l, index(l, i))
950
945
endfor
951
- 出力は以下の通り :
946
+ 以下が出力される :
952
947
1
953
948
2
954
949
3
955
950
4
956
- コンパイルされた Vim9 script での出力は以下の通り :
951
+ コンパイルされた Vim9 script では以下のようになる :
957
952
1
958
953
3
959
- 一般的に、反復しているリストを変更してはいけません。必要であれば最初にコピーを
960
- 作ります 。
961
- リストのリストをループする場合、ネストされたリストを変更できます。ループ変数は
962
- "final" であり、変更することはできませんが、その値は変更できます 。
954
+ 一般的に、反復処理するリストは変更してはならない。必要であれば事前にコピーを作
955
+ 成する 。
956
+ リストのリストをループ処理する場合、ネストされたリストは変更できる。ループ変数
957
+ は "final" であり変更できないが、その値は変更できる 。
963
958
*E1306*
964
- :for ループと :while ループを合わせたループの深さは、10 を超えることはできませ
965
- ん 。
959
+ :for ループと :while ループを合わせたループの深さは、10 を超えることはできな
960
+ い 。
966
961
967
962
968
963
条件と式 ~
969
964
*vim9-boolean*
970
- 条件と式は、他の言語とおよそ同じように扱われます。いくつかの値は旧来の Vim
971
- script と扱いが異なります :
965
+ 条件と式は他の言語とほぼ同じように動作する。ただし、一部の値は旧来の Vim scipt
966
+ と異なる :
972
967
値 旧来の Vim script Vim9 script ~
973
968
0 falsy falsy
974
969
1 truthy truthy
@@ -977,28 +972,27 @@ script と扱いが異なります:
977
972
"99" truthy エラー!
978
973
"text" falsy エラー!
979
974
980
- "??" 演算子か "!" を使用している場合はエラーとなることはなく、すべての値は
981
- falsy か truthy として評価されます 。これは JavaScript とほぼ同じですが、空の
982
- リストと辞書は falsy として評価されます :
975
+ "??" 演算子や "!" 演算子を使用する場合エラーは発生せず、すべての値は偽値か真値
976
+ のいずれかになる 。これは JavaScript とほぼ同じだが、空のリストと辞書は偽値にな
977
+ る :
983
978
984
- 型 真と評価される値 ~
979
+ 型 真値となるとき ~
985
980
bool true, v:true または 1
986
981
number 非0
987
982
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 とは異なる)
993
988
func 関数名があるとき
994
989
special true または v:true
995
990
job 非 NULL
996
991
channel 非 NULL
997
992
class 非 NULL
998
993
object 非 NULL (TODO: isTrue() が true を返すとき)
999
994
1000
- 真偽値演算子 "||" と "&&" は、値が真偽値、0または1であることを期待します:
1001
- >
995
+ 真偽値演算子 "||" と "&&" は、値が真偽値、0 または 1 であることを期待する: >
1002
996
1 || false == true
1003
997
0 || 1 == true
1004
998
0 || false == false
@@ -1008,19 +1002,18 @@ falsy か truthy として評価されます。これは JavaScript とほぼ同
1008
1002
'yes' && 0 エラー!
1009
1003
[] || 99 エラー!
1010
1004
1011
- "!" を使って論理否定をすると、どのような型に対しても結果は真偽値になります。
1012
- "!!" と二重論理否定をすることで、あらゆる型を真偽値に変換することができます : >
1005
+ 論理否定に "!" を使用する場合、どの型を使用してもエラーは発生せず、結果は真偽
1006
+ 値になる。 "!!" を使用すると、任意の値を真偽値に変換できる : >
1013
1007
!'yes' == false
1014
1008
!![] == false
1015
1009
!![1, 2, 3] == true
1016
1010
1017
- 文字列の結合に `..` を使用すると、すべての単純型の被演算子は常に文字列に変換さ
1018
- れます: >
1011
+ 文字列の連結に `..` を使用する場合、単純型の引数は常に文字列に変換される: >
1019
1012
'hello ' .. 123 == 'hello 123'
1020
1013
'hello ' .. v:true == 'hello true'
1021
1014
1022
- 単純型とは、文字列 (string)、数値 (float)、特殊値 (special) と真偽値 (bool) で
1023
- す。他の型では | string() | を使う必要があります 。
1015
+ 単純型は Number、Float、Special、Bool である。その他の型には | string() | を使用
1016
+ すべきである 。
1024
1017
*false* *true* *null* *null_blob* *null_channel*
1025
1018
*null_class* *null_dict* *null_function* *null_job*
1026
1019
*null_list* *null_object* *null_partial* *null_string*
0 commit comments