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

= [Qiita] vimのstatuslineをいじる

$
0
0

vimのstatuslineといえば、powerline等が有名ですね。
が、デフォルトでもある程度できるのでやってみます

:h 'statusline'

値は、普通のテキストに挟まれた関数 printf 形式の項目からなる。項目の形
式は以下の通りである。
%-0{minwid}.{maxwid}{item}
{item} 以外の欄は指定しなくてもよい。パーセント記号そのものを表示する

欄 意味 ~
- その項目を左寄せする。minwid が項目の長さより大きい場合は、
既定では右寄せになる。
0 数値の頭に0を表示する。欄 '-' が優先する。
minwid 項目の長さの最小値。余白の穴埋めは '-' と '0' で設定する。
50以下でなければならない。
maxwid 項目の長さの最大値。文字列の項目の切り詰めでは '<' が左に
表示される。数値の項目は maxwid-2 文字に切り詰められ、それ
に ">数" が続く。ここで "数" は表示されなかった文字数であ
り、指数表記に似ている。
item 以下で説明するアルファベット1文字。

:h 'statusline'

この説明なのですが続きが個人的に分かりづらかったので書き直してみました

各欄について

  • 必ず必要となるのは%{item}のみ
  • %がないと{item}もただの文字列として認識される

{item}の一覧

item種類意味
f文字列バッファ内のファイルのパス(入力された通り、またはカレントディレクトリに対する相対パス)
F文字列バッファ内のファイルのフルパス。
t文字列バッファ内のファイルのファイル名 (パスを除く)。
mフラグ修正フラグ。表示されるのは "[+]"。'modifiable' がオフのときは
フラグ"[-]"
Mフラグ修正フラグ。表示されるのは ",+" または ",-"。
rフラグ読み込み専用フラグ。表示されるのは "[RO]"。
Rフラグ読み込み専用フラグ。表示されるのは ",RO"。
hフラグヘルプバッファフラグ。表示されるのは "[ヘルプ]"。
Hフラグヘルプバッファフラグ。表示されるのは ",HLP"。
wフラグプレビューウィンドウフラグ。表示されるのは "[プレビュー]"。
Wフラグプレビューウィンドウフラグ。表示されるのは ",PRV"。
yフラグバッファ内のファイルのタイプ。例えば "[vim]"。'filetype' を参照。
Yフラグバッファ内のファイルのタイプ。例えば ",VIM"。'filetype' を参照。
q文字列"[Quickfix List]"、"[Location List]" または空文字。
k文字列他言語用マッピング
n数値バッファ番号。
b数値カーソル下の文字の文字コードの10進数表現。
B数値同上、ただし16進数表現。
o数値カーソル下の文字がファイル内で何バイト目であるか。先頭では1。 覚え方: ファイル先頭からの隔たり (に1を足したもの) {Vimが
O数値同上、ただし16進数表現。
N数値印刷時のページ番号 ('printheader' 内でのみ有効)。
l数値何行目にカーソルがあるか。
L数値バッファ内の総行数。
c数値何列目にカーソルがあるか。
v数値画面上の何列目にカーソルがあるか。
V数値画面上の何列目にカーソルがあるか。表示形式は -{num}。値が 'c' と等しければ表示されない。
p数値現在行がファイル内の何%の位置にあるか (
P文字列現在表示されているウィンドウ内のテキストが、ファイル内の何%の位 置にあるか。これは 'ruler' で説明されているものに似ている。翻訳 されていない限り、値は常に3文字である {訳注: 日本語版では全角2文 字になりうる}。
a文字列既定のタイトルと同様の引数ファイルリストを "({current} of {max})" と表示する。ファイル引数の数が0または1の ときは空。
{数値F '%{' と '}' の間の expression を評価し、結果に置き換える。 閉じ括弧 '}' の前には '%' がつかないことに注意。expression は '}' の文字を含むことができないので、これを回避するには関数呼び出 しを使用すること。
(非表示項目グループの開始。グループ内の項目全てに対する幅と寄せ方の設定 に使える。どこかで %) で閉じられなければならない。
)非表示項目グループの終了。欄 width は指定できない。
T数値'tabline' 用: ラベル「タブページ N」の開始。最後のラベルの後に %T を書くこと。この情報はマウスクリックに使われる。
X数値'tabline' 用: ラベル「タブ N を閉じる」の開始。ラベルの後に %X を書くこと。例: %3Xclose%X。%999X は「カレントタブを閉じる」を 意味する。この情報はマウスクリックに使われる。
<非表示行が長すぎるときに切り詰める位置。既定では先頭。欄 width は指定 できない。
=非表示左寄せ項目と右寄せ項目の区切り。欄 width は指定できない。
#非表示強調グループを設定する。この後に名前を書き、その後にまた # を書 く。つまり、%#HLname# と書くと、強調グループ HLname になる。カレ ントウィンドウ以外のステータスラインに対しても同じ強調が施され る。
*非表示使われる強調表示グループを User{N} に設定する。ここで {N} は欄 minwid から取られる。例えば %1*と設定する。%*%0*で通常の強 調表示を復元する。強調表示グループ User{N} と StatusLine の違い は、非カレントウィンドウのステータス行の強調表示を設定するグルー プの StatusLineNC に適用される。数 N は 1 以上 9 以下である。

簡易的なまとめ?

  • %-0{minwid}.{maxwid}{item}という形式で一つ
  • このうち最も簡略化したものは%{item}(%が必要!!)
  • 例: setlocal statusline=[*_*]\ \ F:\ %f,\ ft:\ %y,\ buf:\ %n: [*_*] F: ~/howm/2019/01/2019-01-17-104438.md, ft: [markdown.vimwiki.qfix_memo], buf: 51

[2019-01-17 10:44]


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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