1
- *eval.txt* For Vim バージョン 9.1. Last change: 2025 Feb 23
1
+ *eval.txt* For Vim バージョン 9.1. Last change: 2025 Mar 30
2
2
3
3
4
4
VIMリファレンスマニュアル by Bram Moolenaar
@@ -19,9 +19,10 @@ Note: 式の評価はコンパイル時に無効化できる。無効化され
19
19
1.1 変数の型
20
20
1.2 関数への参照 | Funcref |
21
21
1.3 リスト | Lists |
22
- 1.4 辞書 | Dictionaries |
23
- 1.5 Blobs | Blobs |
24
- 1.6 変数について補足 | more-variables |
22
+ 1.4 Tuple | Tuples |
23
+ 1.5 辞書 | Dictionaries |
24
+ 1.6 Blob | Blobs |
25
+ 1.7 変数について補足 | more-variables |
25
26
2. 式の文法 | expression-syntax |
26
27
3. 内部変数 | internal-variables |
27
28
4. 組み込み関数 | functions |
@@ -44,8 +45,8 @@ Note: 式の評価はコンパイル時に無効化できる。無効化され
44
45
45
46
1.1 変数の型 ~
46
47
*E712* *E896* *E897* *E899* *E1098*
47
- *E1107* *E1135* *E1138*
48
- 変数には10種類の型がある :
48
+ *E1107* *E1135* *E1138* *E1523*
49
+ 変数には11種類の型がある :
49
50
50
51
*Number* *Integer*
51
52
数値 32ビットまたは64ビットの符号有整数。| expr-number |
@@ -61,6 +62,10 @@ Note: 式の評価はコンパイル時に無効化できる。無効化され
61
62
リスト 要素の順序つきの列。詳細は | List | を参照。
62
63
例: [1, 2, ['a', 'b']]
63
64
65
+ Tuple 順序付けられた不変の項目のシーケンス。詳細については | Tuple |
66
+ を参照。
67
+ 例: (1, 2, ('a', 'b'))
68
+
64
69
辞書 順序を持たない連想配列: 各要素はキーと値を持つ。| Dictionary |
65
70
例:
66
71
{'blue' : "#0000ff", 'red' : "#ff0000"}
@@ -159,16 +164,17 @@ Note: " " と "0" も空文字列ではないので、TRUE と見なされる。
159
164
160
165
*E611* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910*
161
166
*E913* *E974* *E975* *E976* *E1319* *E1320* *E1321* *E1322*
162
- *E1323* *E1324*
163
- リスト | List | , 辞書 | Dictionary | , | Funcref | , ジョブ | Job | , チャネル | Channel | ,
164
- | Blob | , クラス | Class | および | object | は自動的に変換されない 。
167
+ *E1323* *E1324* *E1520* *E1522*
168
+ | List | 、 | Tuple | 、 | Dictionary | 、 | Funcref | 、 | Job | 、 | Channel | 、 | Blob | 、 | Class |
169
+ および | object | 型は自動的に変換されない 。
165
170
166
171
*E805* *E806* *E808*
167
172
数値と浮動小数点数をまぜると浮動小数点数になる。それ以外には浮動小数点数への自
168
173
動的な変換は存在しない。文字列から浮動小数点数へは str2float() を使い、浮動小
169
174
数点数から文字列へは printf() を、浮動小数点数から数値へは float2nr() を使う。
170
175
171
- *E362* *E891* *E892* *E893* *E894* *E907* *E911* *E914*
176
+ *E362* *E891* *E892* *E893* *E894*
177
+ *E907* *E911* *E914* *E1521*
172
178
浮動小数点数が予期されているところでは数値も使用可能だが、それ以外は使用できな
173
179
い。
174
180
@@ -260,9 +266,9 @@ Note 関数の辞書へのバインドは、その関数が辞書のメンバー
260
266
261
267
リストの作成 ~
262
268
*E696* *E697*
263
- リストを作るには、[]の中にコンマで区切って要素を書く 。
269
+ リストは、角括弧で囲まれたコンマで区切られた一連の項目で作成される 。
264
270
例: >
265
- :let mylist = [1, two, 3, "four"]
271
+ :let mylist = [1, " two" , 3, "four"]
266
272
:let emptylist = []
267
273
268
274
要素はどんな式でもよい。要素としてリストを指定すると、リストのリストができる:
@@ -309,29 +315,31 @@ Note 関数の辞書へのバインドは、その関数が辞書のメンバー
309
315
310
316
部分リスト ~
311
317
*sublist*
312
- リストの一部分を取り出すには、[]の中に始点と終点のインデックスを書き、コロンで
313
- 区切る: >
314
- :let shortlist = mylist[2:-1] " リスト[3, "four"]を得る
315
-
316
- 始点のインデックスを省略すると0となる。終点のインデックスを省略すると-1となる >
317
- :let endlist = mylist[2:] " 2番目から最後まで: [3, "four"]
318
- :let shortlist = mylist[2:2] " 1個の要素からなるリスト: [3]
318
+ リストの一部を取得するには、角括弧でコロンで区切られた開始のインデックスと終了
319
+ のインデックスを指定する: >
320
+ :let shortlist = mylist[2:-1] " リスト [3, "four"] を得る
321
+
322
+ 開始のインデックスを省略すると、0 と同じになる。終了のインデックスを省略する
323
+ と、-1 と同じになる。 >
324
+ :let endlist = mylist[2:] " 項目 2 から最後まで: [3, "four"]
325
+ :let shortlist = mylist[2:2] " 1 項目のリスト: [3]
319
326
:let otherlist = mylist[:] " リストのコピーを作る
320
327
321
- 最後のインデックスが含まれることに注意。排他的なインデックスを利用するなら
322
- | slice() | メソッドを利用する 。
328
+ 終了のインデックスは包括的であることに注意。排他的インデックスを使用する場合
329
+ は、 | slice() | 関数を使用する 。
323
330
324
- 終点のインデックスが始点のインデックスよりも前になってしまった場合は空リストと
325
- なる。エラーメッセージは表示されない。
331
+ 開始のインデックスがリストの終了の項目を超えている場合、または終了のインデック
332
+ スが開始の項目より前である場合、結果は空のリストになる。エラーメッセージは表示
333
+ されない。
326
334
327
- 終点のインデックスがリストの長さより大きい場合は、長さ-1を指定したときと同じに
328
- なる : >
335
+ 最後のインデックスがリストの長さ以上である場合は、長さから 1 を引いた値が使用
336
+ される : >
329
337
:let mylist = [0, 1, 2, 3]
330
338
:echo mylist[2:8] " 結果: [2, 3]
331
339
332
- NOTE: mylist[s:e]と書くと変数 "s:e" をインデックスとして使ったと解釈される。
333
- ":" の前に1文字の変数を使うときは十分注意すること。必要ならこのようにスペース
334
- を入れるとよい : mylist[s : e].
340
+ NOTE: mylist[s:e] と書くと変数 "s:e" をインデックスとして使ったと解釈される。
341
+ ":" の前に1文字の変数を使うときは十分注意すること。必要であればこのようにスペー
342
+ スを入れるとよい : mylist[s : e].
335
343
336
344
337
345
リストの同一性 ~
@@ -344,9 +352,9 @@ NOTE: mylist[s:e]と書くと変数 "s:e" をインデックスとして使っ
344
352
:echo bb
345
353
< [1, 2, 3, 4]
346
354
347
- リストのコピーを作るには関数| copy() | を使う。前述の通り[:]を使ってもできる。こ
348
- れは浅いコピーである 。つまりリストの要素であるリストに変更を加えると、コピーさ
349
- れたリスト内の同じ要素も変更される : >
355
+ リストのコピーを作るには関数 | copy() | を使う。前述の通り [:] を使ってもできる。
356
+ これは浅いコピーである 。つまりリストの要素であるリストに変更を加えると、コピー
357
+ されたリスト内の同じ要素も変更される : >
350
358
:let aa = [[1, 'a'], 2, 3]
351
359
:let bb = copy(aa)
352
360
:call add(aa, 4)
@@ -448,8 +456,8 @@ Note リストの比較について注意: 2つのリストは、同じ長さを
448
456
449
457
for ループ ~
450
458
451
- | :for | ループは、リスト、文字列または Blob の各要素に対してコマンドを実行する。
452
- 変数に各要素が順番に代入される。リストを使った例: >
459
+ | :for | ループは、リスト、Tuple、 文字列または Blob の各要素に対してコマンドを実
460
+ 行する。 変数に各要素が順番に代入される。リストを使った例: >
453
461
:for item in mylist
454
462
: call Doit(item)
455
463
:endfor
@@ -482,6 +490,8 @@ for ループ ~
482
490
: endif
483
491
:endfor
484
492
493
+ Tuple の場合、一度に 1 つのタプル項目が使用される。
494
+
485
495
Blob の場合、一度に 1 バイトが使われる。
486
496
487
497
文字列の場合、任意の合成文字を含む 1 文字が文字列として使われる。例: >
0 commit comments