Skip to content

Commit 27dc2b1

Browse files
1 parent 91da52d commit 27dc2b1

File tree

1 file changed

+34
-32
lines changed

1 file changed

+34
-32
lines changed

vim9.html

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,19 +1165,19 @@
11651165
インデックスが範囲外の場合、結果は空文字列になる。<br>
11661166
<br>
11671167
旧来のスクリプトでは、&quot;++var&quot; と &quot;--var&quot; は何も表示されずにそのまま受け入れら<br>
1168-
れ効果がない。これは Vim9 script ではのエラーである<br>
1168+
れ効果がない。これは Vim9 script ではエラーである<br>
11691169
<br>
11701170
0 で始まる数値は 8 進数とはみなされず、&quot;0o&quot; で始まる数値のみが 8 進数として扱<br>
11711171
われる: &quot;0o744&quot;。<a class="Identifier" href="eval.html#scriptversion-4">scriptversion-4</a><br>
11721172
<br>
11731173
<br>
11741174
<span class="PreProc">気をつけるべきこと</span><br>
11751175
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="vim9.html#vim9-gotchas" name="vim9-gotchas">vim9-gotchas</a><br>
1176-
Vim9 は、一般的なプログラミング言語に近づくように設計されていますが、同時に旧<br>
1177-
来の Vim コマンドをサポートしようとしています。そのため、いくつかの妥協をしな<br>
1178-
ければなりませんでした。ここでは、意外と知られていないことをまとめてみました<br>
1176+
Vim9 は、広く使われているプログラミング言語に近い設計となっているが、旧来の<br>
1177+
Vim コマンドもサポートしようとしている。そのため、いくつかの妥協点が生じた。以<br>
1178+
下に、予期せぬ変更点についてまとめた<br>
11791179
<br>
1180-
Exコマンドの範囲指定にはコロンを前置する必要があります<br>
1180+
Ex コマンドの範囲指定にはコロンを前置する必要がある<br>
11811181
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;旧来の Vim&#0058; 前の行を右にシフト<br>
11821182
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;func()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vim9: 継続行におけるメソッド呼び出し<br>
11831183
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vim9&#0058; 前の行を右にシフト</div>
@@ -1190,40 +1190,40 @@
11901190
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'text'-&gt;func()&nbsp;&nbsp;&nbsp;&nbsp;Vim9: メソッド呼び出し<br>
11911191
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:'t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vim9&#0058; マーク t へのジャンプ</div>
11921192
<br>
1193-
いくつかのExコマンドは Vim9 script の代入式と紛らわしくなります:<br>
1193+
いくつかの Ex コマンドの中には、Vim9 script の代入と混同されるものがある:<br>
11941194
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:name = value&nbsp;&nbsp;&nbsp;&nbsp;# 代入<br>
11951195
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:g:pattern:cmd&nbsp;&nbsp;&nbsp;&nbsp;# :グローバルコマンド</div>
11961196
<br>
1197-
コマンド&nbsp;<a class="Comment" href="repeat.html#:global">:global</a>&nbsp;&nbsp;<a class="Comment" href="change.html#:substitute">:substitute</a>&nbsp;と式や代入文が紛らわしくなるのを避けるた<br>
1198-
め、これらのコマンドが一文字に省略されているとき、一部のセパレータは使うことが<br>
1199-
できません: ':'、'-' と '.' が利用不可です。:<br>
1197+
<a class="Comment" href="repeat.html#:global">:global</a>&nbsp;コマンドや&nbsp;<a class="Comment" href="change.html#:substitute">:substitute</a>&nbsp;コマンドと式や代入との混同を避けるため、こ<br>
1198+
れらのコマンドを 1 文字に省略する場合、一部の区切り文字 ':'、'-'、'.' は使用で<br>
1199+
きない。<br>
12001200
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:pattern:cmd&nbsp;&nbsp;&nbsp;&nbsp; # 無効なコマンド - エラー<br>
12011201
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s:pattern:repl&nbsp;&nbsp;&nbsp;&nbsp;# 無効なコマンド - エラー<br>
12021202
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g-pattern-cmd&nbsp;&nbsp;&nbsp;&nbsp; # 無効なコマンド - エラー<br>
12031203
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-pattern-repl&nbsp;&nbsp;&nbsp;&nbsp;# 無効なコマンド - エラー<br>
12041204
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.pattern.cmd&nbsp;&nbsp;&nbsp;&nbsp; # 無効なコマンド - エラー<br>
12051205
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.pattern.repl&nbsp;&nbsp;&nbsp;&nbsp;# 無効なコマンド - エラー</div>
12061206
<br>
1207-
同様に、コマンドとセパレータの間にスペースがあってはいけません:<br>
1207+
また、コマンドとセパレータの間にスペースを入れることはできない:<br>
12081208
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g /pattern/cmd&nbsp;&nbsp;&nbsp;&nbsp;# 無効なコマンド - エラー<br>
12091209
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s /pattern/repl&nbsp;&nbsp; # 無効なコマンド - エラー</div>
12101210
<br>
1211-
<a class="Comment" href="vim9.html#:def">:def</a>&nbsp;で定義した関数はすべてコンパイルされます。旧来の関数は途中で脱出するこ<br>
1212-
とができ、それ以降の行はパースされません:<br>
1211+
<a class="Comment" href="vim9.html#:def">:def</a>で定義された関数は、関数全体をコンパイルする。旧来の関数は途中で脱出する<br>
1212+
ことができ、以降の行はパースされない:<br>
12131213
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func Maybe()<br>
12141214
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !has('feature')<br>
12151215
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br>
12161216
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endif<br>
12171217
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use-feature<br>
12181218
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endfunc</div>
1219-
Vim9 関数はすべてコンパイルされます:<br>
1219+
Vim9 の関数は全体がコンパイルされる:<br>
12201220
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Maybe()<br>
12211221
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !has('feature')<br>
12221222
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br>
12231223
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endif<br>
12241224
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use-feature&nbsp;&nbsp;# コンパイルエラーが発生する可能性がある<br>
12251225
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
1226-
応急的に、2つの関数に分けることができます:<br>
1226+
回避策として、それを 2 つの関数に分割する:<br>
12271227
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func Maybe()<br>
12281228
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if has('feature')<br>
12291229
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call MaybeInner()<br>
@@ -1234,57 +1234,59 @@
12341234
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use-feature<br>
12351235
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef<br>
12361236
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endif</div>
1237-
また、偽として評価される定数式の条件をもった&nbsp;<a class="Comment" href="eval.html#:if">if</a>&nbsp;の配下にサポート外のコードを<br>
1238-
置くことができます:<br>
1237+
または、サポートされていないコードを、偽と評価される定数式を含む&nbsp;<a class="Comment" href="eval.html#:if">if</a>&nbsp;文の中に<br>
1238+
記述する:<br>
12391239
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Maybe()<br>
12401240
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if has('feature')<br>
12411241
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use-feature<br>
12421242
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endif<br>
12431243
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
1244-
これには&nbsp;<a class="Comment" href="builtin.html#exists_compiled()">exists_compiled()</a>&nbsp;関数も同様に使えます<br>
1244+
これには&nbsp;<a class="Comment" href="builtin.html#exists_compiled()">exists_compiled()</a>&nbsp;関数も同様に使える<br>
12451245
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="vim9.html#vim9-user-command" name="vim9-user-command">vim9-user-command</a><br>
1246-
関数のコンパイルによる他の副作用として、ユーザーコマンドの存在がコンパイルの時<br>
1247-
点でチェックされます。ユーザーコマンドが後で定義されている場合、エラーとなりま<br>
1248-
す。これはOKです:<br>
1246+
関数をコンパイルする際のもう一つの副作用は、コンパイル時にユーザーコマンドの存<br>
1247+
在がチェックされることである。ユーザーコマンドが後から定義されている場合、エ<br>
1248+
ラーが発生する。これは動作する:<br>
12491249
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command -nargs=1 MyCommand echom &lt;q-args&gt;<br>
12501250
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Works()<br>
12511251
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyCommand 123<br>
12521252
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
1253-
これは &quot;MyCommand&quot; が定義されていないというエラーが発生します:<br>
1253+
これは &quot;MyCommand&quot; が定義されていないというエラーになる:<br>
12541254
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Works()<br>
12551255
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command -nargs=1 MyCommand echom &lt;q-args&gt;<br>
12561256
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyCommand 123<br>
12571257
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
1258-
回避策は、<a class="Comment" href="eval.html#:execute">:execute</a>&nbsp;を使用して間接的にコマンドを呼び出すことです:<br>
1258+
回避策は、<a class="Comment" href="eval.html#:execute">:execute</a>&nbsp;を使用してコマンドを間接的に呼び出すことである:<br>
12591259
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Works()<br>
12601260
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command -nargs=1 MyCommand echom &lt;q-args&gt;<br>
12611261
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute 'MyCommand 123'<br>
12621262
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
12631263
<br>
1264-
<span class="Todo">Note</span>&nbsp;認識されていないコマンドを &quot;|&quot; でつなぐと、その後のコマンドは認識されませ<br>
1265-
ん。次のような記述は&nbsp;<a class="Comment" href="eval.html#:endif">endif</a>&nbsp;がないというエラーになります:<br>
1264+
<span class="Todo">Note</span>&nbsp;認識されないコマンドの場合、&quot;|&quot; とそれに続くコマンドのチェックは行われな<br>
1265+
いことに注意。そのため、<a class="Comment" href="eval.html#:endif">endif</a>&nbsp;が欠落しているというエラーが発生する:<br>
12661266
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def Maybe()<br>
12671267
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if has('feature') | use-feature | endif<br>
12681268
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enddef</div>
12691269
<br>
12701270
<span class="PreProc">その他の変更点</span><br>
12711271
<br>
1272-
パターンは、明示的に上書きされない限り&nbsp;<a class="Type" href="options.html#'magic'">'magic'</a>&nbsp;が設定されている状態と同様に作<br>
1273-
用します<br>
1274-
オプション&nbsp;<a class="Type" href="options.html#'edcompatible'">'edcompatible'</a>&nbsp;の値は使用されません<br>
1275-
オプション&nbsp;<a class="Type" href="options.html#'gdefault'">'gdefault'</a>&nbsp;の値は使用されません<br>
1272+
パターンは、明示的に上書きされない限り&nbsp;<a class="Type" href="options.html#'magic'">'magic'</a>&nbsp;が設定されているかのように作用<br>
1273+
する<br>
1274+
<a class="Type" href="options.html#'edcompatible'">'edcompatible'</a>&nbsp;オプションの値は使用されない<br>
1275+
<a class="Type" href="options.html#'gdefault'">'gdefault'</a>&nbsp;オプションの値は使用されない<br>
12761276
<br>
1277-
また、このwikiも参考になるでしょう。これは Vim9 script のアーリーアダプターに<br>
1278-
よって書かれました:&nbsp;<span class="Constant"><a href="https://github.com/lacygoill/wiki/blob/master/vim/vim9.md">https://github.com/lacygoill/wiki/blob/master/vim/vim9.md</a></span><br>
1277+
こちらの Wiki も参考になるかもしれない。これは Vim9 script のアーリーアダプター<br>
1278+
によって書かれたものである:<br>
1279+
<span class="Constant"><a href="https://github.com/lacygoill/wiki/blob/master/vim/vim9.md">https://github.com/lacygoill/wiki/blob/master/vim/vim9.md</a></span><br>
12791280
<br>
12801281
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="vim9.html#:++" name=":++">:++</a>&nbsp;<a class="Constant" href="vim9.html#:--" name=":--">:--</a><br>
1281-
++ と -- コマンドが追加されました。1 を足し引きするのとそっくりです:<br>
1282+
++ と -- コマンドが追加された。これらは、1 を足したり引いたりするのと非常によ<br>
1283+
く似ている:<br>
12821284
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++var<br>
12831285
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var += 1<br>
12841286
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--var<br>
12851287
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var -= 1</div>
12861288
<br>
1287-
式中で ++var や --var を使うことはまだサポートされていません<br>
1289+
式中で ++var や --var を使うことはまだサポートされていない<br>
12881290
<br>
12891291
<br>
12901292
<span class="PreProc">==============================================================================</span><br>

0 commit comments

Comments
 (0)