Vim FileStyle:Vim設定の開いているファイルを確認します

なぜそれが必要ですか


チーム開発では、特定のコーディング標準に従うことが重要です。 これは、変数、関数などの命名に関するものではありません。 上記は主に経験とテキストで考えを定式化する能力の問題です。 多くの場合、コーディング標準は次のことを定義することから始まります。


同じファイル内の異なる人が上記のスタイルパラメータを守らないと、次の問題が発生します。


多くの場合、このような問題は、プロジェクトに入った新しい人がエディターを正しく構成しなかったために発生します。これは、同じファイルの異なるバージョンを比較する必要が生じる瞬間まで気付かれません。



ファイルを開くときにこのような問題をすぐに見るために、小さなプラグインを作成しました。

なぜプラグインなのか


これにはいくつかの理由がありました。

  1. ほぼ2年間、私は定期的にコードを編集するためにVimを使用してきました。
  2. noexpandtabオプションでインデントにスペースが使用されている場合、 listcharsなどの標準設定を使用しても強調表示されません
  3. ftplugin設定への依存関係の設定

機能的



内部プラグイン


プラグインは、 matchadd()関数に基づいています。 この関数は、指定されたパターンと一致するオープンバッファを検索し、指定されたバックライトスキームに従ってハイライトします。

たとえば、バッファ内のすべてのスペースを黄色で強調表示します。

 :highligh Spaces ctermbg=Yellow guibg=Yellow :call matchadd('Spaces', '\s\+') 

一般的なバックライト機能は次のとおりです。

 function FileStyleHighlightPattern(highlight) call matchadd(a:highlight['highlight'], a:highlight['pattern']) endfunction 

バックライトスキームの名前と比較用のパターンを含む辞書が入力で受け入れられます。

プラグインがパターンのチェックを自動的に開始するには、プラグインの初期化時に自動コマンドを追加する必要がありました。

 augroup filestyle_auto_commands autocmd! autocmd BufReadPost,BufNewFile * call FileStyleActivate() autocmd FileType * call FileStyleCheckFiletype() autocmd WinEnter * call FileStyleCheck() augroup end 

FileTypeイベントハンドラの目的を個別に言及する価値があります。 プラグインの内容は任意であり、現在の設定と一貫性がなく、ヘルプウィンドウから編集できないため、プラグインがhelpファイルで機能しないように追加する必要がありました。

ウィンドウを分割する( :split )ときに、開いているウィンドウにもハイライトが表示されるように、 WinEnterハンドラーWinEnter必要です。

これが最終結果です。



リンクをダウンロードできます: vim.org | Github

UPD: undefined variable filestyle_activeエラーがundefined variable filestyle_activeundefined variable filestyle_active 。 GitHubおよびVim.orgにアップロードされた変更

Source: https://habr.com/ru/post/J245691/


All Articles