printheader オプションの書き方

48 views
Skip to first unread message

tora

unread,
May 26, 2018, 6:38:21 AM5/26/18
to vim_jp
vimから印刷を行う際に、printheaderにそのファイルの更新日時を印刷させたいのです。
コマンドラインからは
:echo strftime("%c", getftime(expand("%")))
と打つと、そのファイルの更新日時が表示されます。
これをprintheaderのオプションに書き加えるには、どのようにしたらいいでしょうか。

thinca

unread,
Jun 4, 2018, 4:54:36 AM6/4/18
to vim...@googlegroups.com
thinca です。

printheader オプションには statusline オプションと同じ書式が指定できます(:help 'statusline')。
この中に %{...} というものがあり、中にある式を評価した結果が使えます。
なので恐らく以下のようにすれば良いと思います(実際に試してはいません)。

set printheader=%{strftime('%c',getftime(expand('%')))}

set コマンドの引数にスペースを含めるとうまく行かないので注意してください。

--
thinca <thi...@gmail.com>
2018年5月26日(土) 19:38 tora <horinom...@gmail.com>:
> --
> このメールは Google グループのグループ「vim_jp」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには vim_jp+un...@googlegroups.com にメールを送信してください。
> このグループに投稿するには vim...@googlegroups.com にメールを送信してください。
> https://groups.google.com/group/vim_jp からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

tora

unread,
Jun 6, 2018, 1:30:05 AM6/6/18
to vim_jp

thinca様、応答していただき、ありがとうございます。

ご指摘のようにやってみたのですが、だめなのです。
試みたコマンドは以下のものです。
set printheader=%t\ \ Update\ %{strftime("%c"),getftime(expand("%"))}\ \ \ \ Page\ %N\ /\ %{Pages()}

結果はつぎのようになり、%{.....} の部分が実行されていません。
Test.bas  Update    Page 1/ 1

どうしてこれがうまく動作しないかわかりません。




2018年6月4日月曜日 17時54分36秒 UTC+9 thinca:

thinca

unread,
Jun 6, 2018, 3:18:14 AM6/6/18
to vim...@googlegroups.com
set printheader=%t\ \ Update\ %{strftime("%c"),getftime(expand("%"))}\
\ \ \ Page\ %N\ /\ %{Pages()}

式が間違っているようです。strftime の ) の位置がおかしいです。
以下のようにしてみてください(例によって実際に試してはいないですが…間違っていたらすいません)

set printheader=%t\ \ Update\ %{strftime("%c",getftime(expand("%")))}\
\ \ \ Page\ %N\ /\ %{Pages()}


--
thinca <thi...@gmail.com>
2018年6月6日(水) 14:30 tora <horinom...@gmail.com>:

tora

unread,
Jun 10, 2018, 7:46:08 AM6/10/18
to vim_jp
thinca様

確かに、式が間違っていました。

修正したら、期待通りの結果が得られました。

ありがとうございました。

2018年6月6日水曜日 16時18分14秒 UTC+9 thinca:
Reply all
Reply to author
Forward
0 new messages