Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim 8.0 Advent Calendar 18 日目 新しい関数 ~情報取得編~

$
0
0

この記事は Vim 8.0 Advent Calendarの 18 日目の記事です。

今回は新しく追加された関数の中から、情報を取得するものを中心に紹介します。

wordcount()

現在バッファの統計情報を辞書で取得します。
この情報は g<C-g>コマンドで表示できるものですが、表示だけだとスクリプトから扱うのが困難であるため、関数が追加されました。

辞書には以下の情報が含まれます。

キー説明
bytesバッファ内のバイト数です。
charsバッファ内の文字数です。
wordsバッファ内の単語数です。
cursor_bytesカーソル位置より前のバイト数です。ビジュアルモードでない場合のみ存在します。
cursor_charsカーソル位置より前の文字数です。ビジュアルモードでない場合のみ存在します。
cursor_wordsカーソル位置より前の単語数です。ビジュアルモードでない場合のみ存在します。
visual_bytesビジュアル選択領域内のバイト数です。ビジュアルモードの場合のみ存在します。
visual_charsビジュアル選択領域内の文字数です。ビジュアルモードの場合のみ存在します。
visual_wordsビジュアル選択領域内の単語数です。ビジュアルモードの場合のみ存在します。

getbufinfo([{expr}])getbufinfo([{dict}])

バッファの情報を辞書の配列で取得します。引数を与えない場合、全てのバッファの情報を取得します。
配列の各要素の辞書は、以下のエントリーを持っています。

キー説明
bufnrバッファ番号です。
changedバッファが変更されているなら('modified' がオンなら) TRUE になります。
changedtickバッファが変更された回数(b:changedtick の値)です。
hidden隠れバッファであるなら('hidden' がオンなら) TRUE になります。
listedバッファがバッファリストに表示されるなら('buflisted' がオンなら) TRUE になります。
loadedバッファがロード済みなら TRUE になります。
nameバッファ名(バッファのファイルのフルパス)です。
signsサインの情報のリストです。リストの各要素は辞書で、以下の要素を持ちます。
キー説明
idサインの ID
lnum行番号
nameサインの名前
variablesバッファローカル変数を参照する辞書です。
windowsバッファを表示しているウィンドウのウィンドウ ID のリストです。

引数を渡した場合は、取得したいバッファの条件を指定することで絞り込みができます。詳細は help を参照してみてください。

getwininfo([{winid}])

ウィンドウの情報を辞書の配列で取得します。引数を与えない場合、全てのタブページのウィンドウの情報を取得します。
配列の各要素の辞書は、以下のエントリーを持っています。

キー説明
bufnrウィンドウが開いているバッファのバッファ番号です。
heightウィンドウの高さです。
loclistこのウィンドウがロケーションリストだった場合は 1 です。
quickfixこのウィンドウが quickfix ウィンドウだった場合は 1 です。
tabnrウィンドウがあるタブページのタブページ番号です。
variablesウィンドウローカル変数を参照する辞書です。
widthウィンドウの幅です。
winidウィンドウ ID です。
winnrウィンドウ番号です。

引数にウィンドウ ID を渡した場合は、指定したウィンドウ ID の情報のみを含む配列を取得できます。

gettabinfo([{arg}])

タブページの情報を辞書の配列で取得します。引数を与えない場合、全てのタブページのウィンドウの情報を取得します。
配列の各要素の辞書は、以下のエントリーを持っています。

キー説明
tabnrタブページ番号です。
variablesタブページローカル変数を参照する辞書です。
windowsタブページで表示されているウィンドウのウィンドウ ID のリストです。

引数にタブページ番号を渡した場合は、指定したタブページ番号の情報のみを含む配列を取得できます。

getcharsearch()setcharsearch({dict})

文字検索の情報を取得、設定できます。文字検索とは、fFtTで行う、指定した文字やその手前に飛ぶ機能のことです。
文字検索の情報を持つ辞書を取得、および設定できます。この辞書は以下の要素を持ちます。

key説明
char検索文字です。空文字列にすると、文字検索を解除します。
forward検索方向です。1 ならば前方、0 ならば後方です。
untill検索の種類です。1 の場合は、文字の手前(tT)、0 の場合は文字自体(fF) の検索です。

getcmdwintype()

getcmdtype()のコマンドラインウィンドウ版です。
q:q/q?でコマンドラインウィンドウを開いている時に、現在のコマンドラインウィンドウがどのタイプかを返します。戻り値は :/?のいずれかで、コマンドラインウィンドウが開かれていない場合は空文字列を返します。

getcompletion({pat}, {type} [, {filtered}])

コマンドラインの補完の結果を取得できます。{type}は以下のうちのどれかです。

{type}説明
augroupautocmd のグループ名です。
bufferバッファ名です。
behave:behave Ex コマンドの引数です。
colorカラースキームです。
commandEx コマンドです。
compiler:compiler Ex コマンドの引数です。
cscope:cscope Ex コマンドの引数です。
dirディレクトリ名です。
environment環境変数です。
eventautocmd のイベント名です。
expressionVim の式です。
fileファイル名とディレクトリ名です。
file_in_path'path'にあるファイル名とディレクトリ名です。
filetypeファイルタイプの名前です。
function関数名です。
helphelp の項目です。
highlightハイライトグループです。
history:history Ex コマンドの引数です。
localeロケールの名前(locale -aの出力)です。
mappingキーマッピングの名前です。
menuメニューです。
optionオプションです。
shellcmdシェルコマンドです。
sign:sign Ex コマンドの引数です。
syntaxsyntax ファイルのファイル名です。
syntime:syntime Ex コマンドの引数です。
tagtags ファイルから読み取れるタグです。
tag_listfilestagと同じです。
userユーザー名です。
varVim script の変数です。

{pat}で候補を絞り込めます。コマンドラインに入力されている文字列を渡します。
{filtered}に 1 を渡すと、'wildignore'オプションを結果に適用します。

arglistid([{winnr} [, {tabnr}]])

Vim には引数リストという機能があります。これはグローバルなものが 1 つあり、それとは別にウィンドウ毎にローカルなものが作成できます。
引数リストの使い方についてはここでは省略しますが、この関数はこの引数リストの ID を取得できます。
指定したウィンドウにローカルな引数リストがなく、グローバルなものが使用されている場合は 0 を返します。引数が無効だった場合は -1 を返します。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>