私はすべてのプログラム編集に Vim を使用しており、すべてのソース コード ファイルの先頭に標準ヘッダーを使用しています。:w を使用して変更を保存すると、このヘッダーの特定のフィールド (Last Modified など) を更新するように .vimrc ファイルをセットアップしました。
私の質問は、空白以外の行のみがカウントされるという基本的なルールに従って、コードの行をカウントする関数をどのように配置すればよいですか?
開いているvimバッファ内で使用できることを知っています
:%s/\n//gn
すべての行を数えます。
:%s/\n\n//gn
空白行を数えます (基本的に、空白行を示す 2 つの改行が連続して現れる回数を数えます)。しかし、どうすればこれを .vimrc ファイルに入れることができるでしょうか?
ヘッダー フィールドを更新する .vimrc のコード フラグメントを次に示します。
function! LastModified()
if &modified
let save_cursor = getpos(".")
let n = min([20, line("$")])
keepjumps exe '1,' . n . 's#^\(.\{,10}Last Modified:\).*#\1' .
\ strftime(' %a %b %d, %Y %I:%M%p') . '#e'
keepjumps exe '1,' . n . 's#^\(.\{,10}Filename:\).*#\1' .
\ ' ' . @% . '#e'
keepjumps exe '1,' . n . 's#^\(.\{,10}LOC:\).*#\1' .
\ ' ' . '' . '#e'
call histdel('search', -1)
call setpos('.', save_cursor)
endif
endfun
また、追加したいのですが、これを行うには他にも多くの方法があることは知っていますが(シェルから wc --lines を使用するなど)、エディターを実際に構成する方法を学ぶことに興味があります(したがって、学習演習と呼びます) )。