「=」コマンドをオーバーライドする方法は?


7

vimに、私が望むコーディングスタイル(cindentおよび友達)を適用するように説得することはできません。

しかし、統合clang-format.py(私のプロジェクトの.clang形式を使用)は実際に私を完全に幸せにします。

=+ モーション -コマンドを使用する反射神経があることを除いて。これは、リージョンまたはファイル全体をインデントするのに実際にとても便利です。

デフォルトの機能を上書きするようにvimに指示するにはどうすればよいですか?equalprgについて読みましたが、clang形式で動作するように設定する方法がわかりません。


4
Rhysdのvim-clang-formatプラグインをその要件(特にvim-operator-user)と一緒にインストールしてから、マップ=<Plug>(operator-clang-format)ますか?プラグインリンク:github.com/rhysd/vim-clang-format
VanLaser

ありがとう@VanLaserモーションで動作させる方法もご存知ですか?==1行gg=Gで、バッファ全体で?
Patrick B.

@VanLaserご不便をおかけして申し訳ありません-私は単に信じていませんでした。コメントは期待どおりに機能します。答えてください。
Patrick B.

回答:


8

プラグインのインストールに対して何もない場合は、Rhysdのvim-clang-formatがカスタムの代わりに有効なソリューションである可能性がありますequalprg

ドキュメントに記載されているように、Kanaのvim-operator-user依存関係がインストールされている場合、(フルオペレーターとして機能=するために<Plug>(operator-clang-format))にマップして、==またはなどのモーション/テキストオブジェクトで使用できます=G

C、C ++、およびObjective-Cのファイルタイプの場合のみ、バッファーローカルマッピングを作成して、デフォルト=でそのままにしておく必要があります。

autocmd FileType c,cpp,objc map <buffer> = <Plug>(operator-clang-format)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.