@@ -69,6 +69,11 @@ Funcref 関数への参照 |Funcref|。
6969
7070チャネル チャネルに使われる。|ch_open()|を参照。 *Channel* *Channels*
7171
72+ *Blob*
73+ Blob バイナリラージオブジェクト。任意のバイトシーケンスを格納する。
74+ 例: 0zFF00ED015DAF
75+ 0z は空のBlobである。
76+
7277数値と文字列は文脈に応じて相互に変換される。
7378
7479数値から文字列への変換は数字のASCII表現によって行われる。例:
@@ -118,7 +123,8 @@ Note: " " と "0" も空文字列ではないので、TRUE と見なされる。
118123または Float は数値または文字列ではないため、FALSE と評価される。
119124
120125 *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
121- リスト、辞書、Funcref、ジョブ、チャネルは自動的に変換されない。
126+ *E974* *E975* *E976*
127+ リスト、辞書、Funcref、ジョブ、チャネル、Blobは自動的に変換されない。
122128
123129 *E805* *E806* *E808*
124130数値と浮動小数点数をまぜると浮動小数点数になる。それ以外には浮動小数点数への自
@@ -978,13 +984,20 @@ expr1aが省略されたときは0となる。expr1bが省略されたときは
978984 :let s = s[:-3] " 最後の2文字を削除する
979985<
980986 *slice*
981- expr8がリストならば、インデックスexpr1aとexpr1bの間の要素からなる新しいリスト
987+ expr8が |List| ならば、インデックスexpr1aとexpr1bの間の要素からなる新しい |List|
982988となる。すぐ上で説明した文字列の場合と同様である。部分リスト|sublist|も参照の
983989こと。例: >
984990 :let l = mylist[:3] " 最初の4個の要素
985991 :let l = mylist[4:4] " 1個の要素からなるリスト
986992 :let l = mylist[:] " リストの浅いコピー
987993
994+ expr8が |Blob| ならば、インデックスexpr1aとexpr1bのバイト数を含む新しい |Blob|
995+ となる。
996+ 例: >
997+ :let b = 0zDEADBEEF
998+ :let bs = b[1:2] " 0zADBE
999+ :let bs = b[] " 0zDEADBEEF のコピー
1000+
9881001|Funcref|に対してexpr8[expr1]やexpr8[expr1a : expr1b]を使うとエラーになる。
9891002
9901003部分リストでスコープと変数に続くコロンとの混乱に注意してください: >
@@ -1115,6 +1128,14 @@ Note "\xff" は値255の1バイトとなる。これはエンコーディング
11151128Note "\000" と "\x00" は強制的に文字列の終端として扱われる。
11161129
11171130
1131+ blobリテラル *blob-literal* *E973* *E977* *E978*
1132+ ------------
1133+
1134+ 0zまたは0Zで始まる任意のバイト数の16進数。
1135+ シーケンスは偶数個の16進数文字でなければならない。例:
1136+ :let b = 0zFF00ED015DAF
1137+
1138+
11181139リテラル文字列 *literal-string* *E115*
11191140--------------
11201141'string' 文字列定数 *expr-'*
@@ -1856,6 +1877,8 @@ v:t_none 特殊値型の値。読出し専用。 参照: |type()|
18561877v:t_number 数値型の値。読出し専用。 参照: |type()|
18571878 *v:t_string* *t_string-variable*
18581879v:t_string 文字列型の値。読出し専用。 参照: |type()|
1880+ *v:t_blob* *t_blob-variable*
1881+ v:t_blob Blob型の値。読出し専用。 参照: |type()|
18591882
18601883 *v:termresponse* *termresponse-variable*
18611884v:termresponse termcapのエントリ|t_RV|で端末から返されるエスケープシーケン
@@ -2044,12 +2067,14 @@ ch_logfile({fname} [, {mode}]) なし チャネルの挙動ログ出力を開始
20442067ch_open({address} [, {options}])
20452068 チャネル {address} へのチャネルを開く
20462069ch_read({handle} [, {options}]) 文字列 {handle} から読み込む
2070+ ch_readblob({handle} [, {options}])
2071+ Blob {handle} からBlobを読み込む
20472072ch_readraw({handle} [, {options}])
20482073 文字列 {handle} から生の文字列を読み込む
20492074ch_sendexpr({handle}, {expr} [, {options}])
20502075 任意 {expr}をJSONチャネル{handle}に送る
2051- ch_sendraw({handle}, {string } [, {options}])
2052- 任意 {string }をrawチャネル{handle}に送る
2076+ ch_sendraw({handle}, {expr } [, {options}])
2077+ 任意 {expr }をrawチャネル{handle}に送る
20532078ch_setoptions({handle}, {options})
20542079 なし {handle}にオプションを設定する
20552080ch_status({handle} [, {options}])
@@ -2194,8 +2219,8 @@ hlID({name}) 数値 highlight group {name}のID
21942219hostname() 文字列 vimが動作しているマシンの名前
21952220iconv({expr}, {from}, {to}) 文字列 {expr}のエンコーディングを変換する
21962221indent({lnum}) 文字列 行{lnum}のインデントを取得
2197- index({list }, {expr} [, {start} [, {ic}]])
2198- 数値 {list }中に{expr}が現れる位置
2222+ index({object }, {expr} [, {start} [, {ic}]])
2223+ 数値 {object }中に{expr}が現れる位置
21992224input({prompt} [, {text} [, {completion}]])
22002225 文字列 ユーザーからの入力を取得
22012226inputdialog({prompt} [, {text} [, {completion}]])
@@ -2204,7 +2229,8 @@ inputlist({textlist}) 数値 ユーザーに選択肢から選ばせる
22042229inputrestore() 数値 先行入力を復元する
22052230inputsave() 数値 先行入力を保存し、クリアする
22062231inputsecret({prompt} [, {text}]) 文字列 input()だがテキストを隠す
2207- insert({list}, {item} [, {idx}]) リスト {list}に要素{item}を挿入 [{idx}の前]
2232+ insert({object}, {item} [, {idx}])
2233+ リスト {object}に要素{item}を挿入 [{idx}の前]
22082234invert({expr}) 数値 ビット反転
22092235isdirectory({directory}) 数値 {directory}がディレクトリならば|TRUE|
22102236islocked({expr}) 数値 {expr}がロックされているなら|TRUE|
@@ -2295,7 +2321,7 @@ py3eval({expr}) 任意 |python3| の式を評価する
22952321pyxeval({expr}) 任意 |python_x| の式を評価する
22962322range({expr} [, {max} [, {stride}]])
22972323 リスト {expr}から{max}までの要素のリスト
2298- readfile({fname} [, {binary } [, {max}]])
2324+ readfile({fname} [, {type } [, {max}]])
22992325 リスト ファイル{fname}から行のリストを取得
23002326reg_executing() 文字列 実行中のレジスタ名を取得する
23012327reg_recording() 文字列 記録中のレジスタ名を取得する
@@ -2524,8 +2550,9 @@ winrestview({dict}) なし 現在のウィンドウのビューを復元
25242550winsaveview() 辞書 現在のウィンドウのビューを保存
25252551winwidth({nr}) 数値 ウィンドウ{nr}の幅を取得
25262552wordcount() 辞書 バイト/文字/単語の統計情報を取得
2527- writefile({list}, {fname} [, {flags}])
2528- 数値 行のリストをファイル{fname}に書き込む
2553+ writefile({object}, {fname} [, {flags}])
2554+ 数値 行の |Blob| または |list| をファイルに
2555+ 書き込む
25292556xor({expr}, {expr}) 数値 ビット排他的論理和
25302557
25312558
@@ -3155,6 +3182,12 @@ ch_read({handle} [, {options}]) *ch_read()*
31553182 |channel-more| を参照。
31563183 {|+channel| 機能付きでコンパイルされたときのみ有効}
31573184
3185+ ch_readblob({handle} [, {options}]) *ch_readblob()*
3186+ ch_read() と同様に動作するが、バイナリデータを読み込んでBlobを
3187+ 返す。
3188+ |channel-more| を参照。
3189+ {|+channel| 機能付きでコンパイルされたときのみ有効}
3190+
31583191ch_readraw({handle} [, {options}]) *ch_readraw()*
31593192 ch_read() と同様に動作するが JS や JSON の場合でもメッセージは
31603193 デコードされない。NL チャネルの場合、NL を受信するまで待つこと
@@ -3171,8 +3204,8 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
31713204
31723205 {|+channel| 機能付きでコンパイルされたときのみ有効}
31733206
3174- ch_sendraw({handle}, {string } [, {options}]) *ch_sendraw()*
3175- {handle } を {string } に送る。
3207+ ch_sendraw({handle}, {expr } [, {options}]) *ch_sendraw()*
3208+ 文字列またはBlob {expr } を {handle } に送る。
31763209 |ch_sendexpr()| と同様に動作するが、リクエストをエンコードした
31773210 り応答をデコードしたりはしない。呼び出しは正しいコンテンツで
31783211 ある事が保証される。また NL モードでは改行が行われるが、ここ
@@ -5247,17 +5280,31 @@ indent({lnum}) カレントバッファの{lnum}行目のインデント量を
52475280 {lnum}が無効なときは-1を返す。
52485281
52495282
5250- index({list}, {expr} [, {start} [, {ic}]]) *index()*
5251- リスト|List| {list}の中で、{expr}に等しい要素の最小のインデッ
5283+ index({object}, {expr} [, {start} [, {ic}]]) *index()*
5284+ If {object} is a |List| return the lowest index where the item
5285+ has a value equal to {expr}. There is no automatic
5286+ conversion, so the String "4" is different from the Number 4.
5287+ And the number 4 is different from the Float 4.0. The value
5288+ of 'ignorecase' is not used here, case always matters.
5289+
5290+ If {object} is |Blob| return the lowest index where the byte
5291+ value is equal to {expr}.
5292+
5293+ index({object}, {expr} [, {start} [, {ic}]]) *index()*
5294+ {object}が |List| の場合は、{expr}に等しい要素の最小のインデッ
52525295 クスを返す。自動的な変換は行われないので、文字列の "4" は数値
52535296 の 4 とは異なると判定される。そして数値の 4 は浮動小数点数の
52545297 4.0 とも異なる。'ignorecase' はここでは適用されず、常に大文字・
52555298 小文字は区別される。
5299+
5300+ {object}が |Blob| の場合は、{expr}に等しいバイト値の最小のイン
5301+ デックスを返す。
5302+
52565303 {start}が指定された場合はインデックス{start}から要素の検索を始
52575304 める(負数を指定すると末尾からの相対位置となる)。
52585305 {ic}に|TRUE|が指定された場合、大文字・小文字は区別されない。
52595306 そうでない場合は区別される。
5260- {list }の中に{expr}が見つからない場合は-1を返す。
5307+ {object }の中に{expr}が見つからない場合は-1を返す。
52615308 例: >
52625309 :let idx = index(words, "the")
52635310 :if index(numbers, 123) >= 0
@@ -5358,13 +5405,16 @@ inputsecret({prompt} [, {text}]) *inputsecret()*
53585405 ユーザーの入力内容を文字列として返す。
53595406 NOTE: コマンドライン補完には対応していない。
53605407
5361- insert({list}, {item} [, {idx}]) *insert()*
5362- リスト|List| {list}の初めに{item}を挿入する。
5408+ insert({object}, {item} [, {idx}]) *insert()*
5409+ {object}が |List| か |Blob| の場合、それの先頭に{item}を挿入す
5410+ る。
5411+
53635412 {idx}が指定されたときはインデックス{idx}の要素の前に{item}を挿
53645413 入する。{idx}が0のときは{idx}を省略した場合と同じ様に最初の要
53655414 素の前に挿入する。{idx}は負数でもよい(|list-index|参照)。-1を
53665415 指定すると最後の要素の前に挿入する。
5367- 挿入した結果のリストを返す。例: >
5416+
5417+ 挿入した結果の |List| か |Blob| を返す。例: >
53685418 :let mylist = insert([2, 3, 5], 1)
53695419 :call insert(mylist, 4, -1)
53705420 :call insert(mylist, 6, len(mylist))
@@ -5590,8 +5640,9 @@ json_decode({string}) *json_decode()*
55905640 - 配列やオブジェクトの末尾コンマは無視される、例えば
55915641 "[1, 2, ]" と "[1, 2]" は同じである。
55925642 - 多くの浮動小数点数を認識する。例えば "1." は "1.0" となり、
5593- "001.2" は "1.2" となる。特別な浮動小数点の値、"Infinity" お
5594- よび "NaN" (大文字は無視される) は受け付けられる。
5643+ "001.2" は "1.2" となる。特別な浮動小数点の値、"Infinity",
5644+ "-Infinity" および "NaN" (大文字は無視される) は受け付けられ
5645+ る。
55955646 - 整数値の先頭に付く 0 は無視される、例えば "012" は "12" とな
55965647 り、"-012" は "-12" となる。
55975648 - null、true および false の大文字は無視される、例えば "NULL"
@@ -5621,12 +5672,14 @@ json_encode({expr}) *json_encode()*
56215672 浮動小数点数 浮動小数点数
56225673 浮動小数点数 nan "NaN"
56235674 浮動小数点数 inf "Infinity"
5675+ 浮動小数点数 -inf "-Infinity"
56245676 文字列 ダブルクォートで括られた文字列(null可)
56255677 Funcref 不可、エラー
56265678 リスト 配列(null可)
56275679 再帰的に使用された場合: []
56285680 辞書 オブジェクト(null可)
56295681 再帰的に使用された場合: {}
5682+ Blob 個々のバイト配列
56305683 v:false "false"
56315684 v:true "true"
56325685 v:none "null"
@@ -6753,16 +6806,18 @@ range({expr} [, {max} [, {stride}]]) *range()*
67536806 range(2, 0) " エラー!
67546807<
67556808 *readfile()*
6756- readfile({fname} [, {binary } [, {max}]])
6809+ readfile({fname} [, {type } [, {max}]])
67576810 ファイル{fname}を読み込み、各行を要素とするリスト|List|を返す。
67586811 行はNL文字で終わるものとする。改行文字がCRであるMacintoshのファ
67596812 イルは単一の長い行となる(どこかにNLが現れない限り)。
67606813 すべての NUL 文字は NL 文字に置換される。
6761- {binary }が "b" を含む場合、次のようにバイナリモードになる:
6814+ {type }が "b" を含む場合、次のようにバイナリモードになる:
67626815 - 最後の行がNLで終わるときは、リストの末尾に余分な空文字列が追
67636816 加される。
67646817 - CR文字を除去しない。
6765- バイナリモードでない場合:
6818+ {type}が "B" を含む場合、ファイルのバイナリデータは変更せずに
6819+ |Blob| が返される。
6820+ その他の場合:
67666821 - NLの前に現れるCR文字を除去する。
67676822 - 最後の行がNLで終わるかどうかは関係ない。
67686823 - 'encoding' がUnicodeのときは UTF-8 のバイトオーダーマークは
@@ -6928,6 +6983,16 @@ remove({list}, {idx} [, {end}]) *remove()*
69286983 例: >
69296984 :echo "last item: " . remove(mylist, -1)
69306985 :call remove(mylist, 0, 9)
6986+ remove({blob}, {idx} [, {end}])
6987+ {end}を指定しなかった場合: |Blob| {blob}から{idx}位置のバイト
6988+ を削除し、そのバイトを返す。
6989+ {end}を指定した場合: {idx}から{end}まで(両端を含む)のバイトを
6990+ 削除し、それらのバイトを |Blob| で返す。{idx}と{end}が同じバイ
6991+ トを指す場合、1個のバイトからなる |Blob| が返る。
6992+ {end}が{idx}より前になる場合、エラーとなる。
6993+ 例: >
6994+ :echo "last byte: " . remove(myblob, -1)
6995+ :call remove(mylist, 0, 9)
69316996remove({dict}, {key})
69326997 {dict}からキー{key}を持つ要素を削除する。例: >
69336998 :echo "removed " . remove(dict, "one")
@@ -6965,9 +7030,11 @@ resolve({filename}) *resolve()* *E655*
69657030 にする。
69667031
69677032 *reverse()*
6968- reverse({list}) {list}の要素の順序をその場で(in-place)反転させる。{list}そのも
6969- のを返す。
6970- リストを変更させないでおくには、最初にコピーを作る: >
7033+ reverse({object})
7034+ {object}の要素の順序をその場で(in-place)反転させる。
7035+ {object}は |List| または |Blob| である。
7036+ {object}そのものを返す。
7037+ オブジェクトを変更させないでおくには、最初にコピーを作る: >
69717038 :let revlist = reverse(copy(mylist))
69727039
69737040round({expr}) *round()*
@@ -9248,6 +9315,7 @@ type({expr}) {expr}の型を示す数値を返す。
92489315 特殊値: 7 |v:t_none| (v:null と v:none)
92499316 ジョブ: 8 |v:t_job|
92509317 チャネル: 9 |v:t_channel|
9318+ Blob: 10 |v:t_blob|
92519319 後方互換性のためには、次のような使い方ができる: >
92529320 :if type(myvar) == type(0)
92539321 :if type(myvar) == type("")
@@ -9582,12 +9650,17 @@ wordcount() *wordcount()*
95829650 (ビジュアルモードのみ)
95839651
95849652 *writefile()*
9585- writefile({list}, {fname} [, {flags}])
9586- |List| {list}をファイル{fname}に書き込む。リストの各要素は改行
9587- 文字(NL)で区切られる。各要素は文字列か数値でなければならない。
9653+ writefile({object}, {fname} [, {flags}])
9654+ {object}が |List| の場合、それをファイル{fname}に書き込む。リ
9655+ ストの各要素は改行文字(NL)で区切られる。各要素は文字列か数値で
9656+ なければならない。
95889657 {flags}が "b" を含むときはバイナリモードとなり、最後の要素の後
95899658 にNLが追加されない。最後の要素が空であると、ファイルの最後の行
95909659 がNLで終わるようになる。
9660+
9661+ {object}が |Blob| の場合、バイトを変更せずにファイル{fname}に
9662+ 書き込む。
9663+
95919664 {flags}が "a" を含むときは追記モードとなり、ファイルに行が追記
95929665 される。 >
95939666 :call writefile(["foo"], "event.log", "a")
@@ -10256,7 +10329,8 @@ Vimはこれを見つけると、まず波括弧の中の式を評価し、そ
1025610329 文字列の i バイト目をセットするためにも使えない。それ
1025710330 には次のようにする: >
1025810331 :let var = var[0:2] . 'X' . var[4:]
10259- <
10332+ < {var-name}が |Blob| の場合、{idx}はblobの長さになる。
10333+ この場合、1バイトが追加される。
1026010334
1026110335 *E711* *E719*
1026210336:let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710*
0 commit comments