Pi_spec
Nvim の`:help` ページ。 生成された ソースは こちら。 tree-sitter-vimdoc パーサーを使用。
これは、rpm spec ファイルを扱うためのファイルタイププラグインです。
現在、このVimプラグインを使用すると、RPM specファイルの`%changelog`セクションを簡単に更新できます。 セクションが存在しない場合は、自動的に作成します。既に今日エントリを追加済みの場合は、今日のエントリに新しい項目を追加する機会が与えられます。フォーマット文字列を指定しない場合(
spec_chglog_format)、メールアドレスを尋ねて、プラグイン自体でフォーマット文字列を作成します。
1. 使用方法
spec_chglog プラグインは、以下の様なマッピングを提供します。
:map <buffer>
<LocalLeader>
c <Plug>
SpecChangelog
これは、specファイル内で、ローカルリーダーキー(デフォルトは`\`)と`c`キーを押すことでプラグインを実行できることを意味します。
spec_chglog_format が設定されていない場合、プラグインは編集セッションで使用するためのメールアドレスを要求します。
プラグインを実行するたびに、変更ログの最後のエントリが今日、そして自分自身によって記述されたかどうかを確認します。エントリが一致する場合、新しい変更ログ項目を挿入するだけで済みます。そうでない場合は、新しい変更ログエントリを作成します。
spec_chglog_release_info を有効にして実行している場合、名前、バージョン、リリースも一致するかどうかを確認します。パッケージリリースを更新する必要があるかどうかを尋ねるため、プラグインは十分賢いです。
ご存知の通り、Vimコマンド(またはその他何でも)にアクセスするためのマップを簡単に設定できます。 <LocalLeader>
c のデフォルトマップが気に入らない場合は、独自のキーを設定できます。次の行は、vimrc ファイルでプラグインを <F5>
キーにマッピングする方法を示しています。
au FileType spec map <buffer>
<F5>
<Plug>
SpecChangelog
注記: プラグインはデフォルトのマッピングを変更したいという希望を尊重し、設定しません。
このコマンドは、specファイルのバッファにのみマップを追加します。
specファイルのエントリの外観を簡単にカスタマイズできます。そのためには、vimrcファイルで "spec_chglog_format" 変数を次のように設定します。
let spec_chglog_format = "%a %b %d %Y My Name <[email protected]>"
`"%a %b %d %Y"` は最もよく使用される時間フォーマットです。フォーマット文字列を指定しない場合、SpecChangelogコマンドを初めて実行すると、メールアドレスを尋ね、
spec_chglog_format 変数を自動的に作成します。このようにして、メールアドレスを一度だけ提供すれば済みます。
使用できるフォーマットオプションを確認するには、strftime() 関数のマニュアルページを参照してください。
通常、プラグインは既存の項目の後に新しい`%changelog`エントリ項目(エントリ自体ではないことに注意)を挿入します。 `spec_chglog_prepend` 変数を設定すると
let spec_chglog_prepend = 1
既存の項目の前に新しい項目を挿入します。
必要に応じて、プラグインは各変更ログエントリにリリース情報を自動的に挿入できます。この機能を有効にすることの利点の1つは、パッケージの最後の変更後にリリースが更新されたかどうかを制御できることです。パッケージのバージョンまたはリリースを更新していない場合、パッケージのリリースを更新するかどうかを尋ねます。この機能を有効にするには、次のコードをvimrcに挿入します。
let spec_chglog_release_info = 1
その後、変更ログエントリの最初の項目は次のようになります。
+ name-1.0-1cl
リリース更新機能が気に入らず、毎回「いいえ」と答える必要がない場合は、次のようにして無効にできます。
let spec_chglog_never_increase_release = 1
頑張ってください!