Up: 目次   [Index]


rpm spec ファイルで動作するファイルタイププラグイン

*pi_spec.txt*   For Vim バージョン 8.1.  Last change: 2006 Apr 24

by Gustavo Niemeyer

ここでは RPM の spec ファイル用のプラグインについて解說する。

このプラグインを使用することで RPM の spec ファイルの %changelog セクションを簡單に更新することができる。まだセクションが存在してゐないならば、プラグインが作成してくれる。既に本日分のエントリがあるのならば、プラグインは本日のエントリに新しい項目を追加する機會を與へてくれる。書式設定文字列 (|spec_chglog_format|) を準備してゐないならば、プラグインは email アドレスをユーザーに問ひ合はせ、そこから書式文字列を構築する。

1. 使ひ方|spec-how-to-use-it|
2. カスタマイズ|spec-customizing|

1. 使ひ方

spec_chglog プラグインは以下のやうなキーマップを提供する:

:map <buffer> <LocalLeader>c <Plug>SpecChangelog

これは spec ファイルではマップローカルリーダー (デフォルトは’\’) に續いて ’c’ を押すことでプラグインが起動することを意味してゐる。|spec_chglog_format| を設定してゐない場合には、プラグインはユーザーに email アドレスを問ひ合はせこの編輯セッションで使用する。

プラグインを起動するたびに、changelog に本日分の項目が既に書かれてゐるかをチェックする。そのやうなエントリが存在すれば、新しい changelog 項目が追加され、存在しない場合には新しい changelog エントリが作成される。

|spec_chglog_release_info| を有效化して實行した場合には、名前とバージョンとリリースも一致するかが確認される。プラグインは充分に賢いので、パッケージリリースがアップデートされるべき時にはその旨を訊ねてくるから、ユーザーはわざわざそれをする必要はない。

キーマップ定義

既に知つてゐるやうに、あらゆる Vim コマンド (その意味ではあらゆる事が可能) を實行するためのキーマップは簡單に定義できる。デフォルトのキーマップ <LocalLeader> c が氣に入らないならば、獨自のキーを設定するのも良いだらう。次はそれをファイル .vimrc で行ふ例で、プラグインを <F5> キーに割り當ててゐる:

au FileType spec map <buffer> <F5> <Plug>SpecChangelog

Note:
プラグインはユーザーのマッピング變更の要望を尊重するので、再設定は行はない。

このコマンドは spec ファイルのバッファにのみ適用される。

2. カスタマイズ

書式設定文字列

spec ファイルがどのやうに表示されるかは簡單にカスタマイズできる。これを行ふにはファイル .vimrc で次のやうに變數 "spec_chglog_format" を設定する:

let spec_chglog_format = "%a %b %d %Y My Name <my@email.com>"

Note:
"%a %b %d %Y" はもつとも頻繁に使用される時刻の書式であることに注意。書式文字列を準備してゐなければ、SpecChangelog コマンドを最初に實行した時に、ユーザーに email アドレスを問ひ合はせアドレスから自動的に |spec_chglog_format| を構築する。この方法でユーザーは一度 email アドレスを設定するだけで濟む。

どのやうな書式を使ふことができるのかを知るには、strftime() 函數のマニュアルページを參照する。{譯注: |strftime()| も參照}

新規項目の插入箇所

プラグインは通常新しい %changelog エントリの項目 (エントリそのものではないことに注意) を、既に存在するものの後に插入しようとする。變數 spec_chglog_prepend を設定すれば:

let spec_chglog_prepend = 1

既に存在するものの前に新規項目を插入するやうになる。

リリース情報の插入

望むのならば、プラグインは changelog エントリごとのリリース情報を自動的に插入することができる。この機能を利用することの利點の 1 つは、最後の變更の後にリリースを更新すべきかさうでないかをコントロールできることである。パッケージのバージョンかリリースを更新してゐない時には、パッケージリリースを更新すべきならばその旨をユーザーに問ひ合はせてくれる。この機能を利用するには、.vimrc に次のコードを書き加へる:

let spec_chglog_release_info = 1

かうすれば、changelog エントリの最初の項目が次のやうなものの場合に問ひ合はせが發生する:

+ name-1.0-1cl

リリース更新機能が氣に入らず、古いリリースを檢出するたびに每囘 "No" と答へるのに嫌氣が差したならば、次のやうにして無效化できる:

let spec_chglog_never_increase_release = 1

幸運を!!