私はよく VIM を使って新聞やブログ サイトにコメントを書いています。
多くの場合、入力する最大文字数があります。
入力中に入力した文字 (空白を含む) を確認するカウンター (ステータスバーの pe) を作成するにはどうすればよいですか?
この'statusline'
設定により、%{...}
特別なアイテムを使用した式の評価が可能になります。
したがって、現在のバッファ内の文字数 (バイト数ではありません!) を返す式を考え出すことができれば、それをステータスラインに組み込んで問題を解決できます。
このコマンドはそれを行います:
:set statusline+=\ %{strwidth(join(getline(1,'$'),'\ '))}
CJK 文字 を含むテキストでは、文字数strwidth()
ではなく表示セル数が返されるため、十分ではありません。全角文字が要件の一部である場合は、代わりにこの改善されたバージョンを使用してください。
:set statusline+=\ %{strlen(substitute(join(getline(1,'$'),'.'),'.','.','g'))}
ただし、式はバッファへの変更ごとに評価されることに注意してください。
を参照してください:h 'statusline'
。
日曜日の午後のボーナス – カーソル下の文字位置も 1 つの式にまとめることができます。気弱な人向けではありません:
:set statusline+=\ %{strlen(substitute(join(add(getline(1,line('.')-1),strpart(getline('.'),0,col('.')-1)),'.'),'.','.','g'))+1}