時々、インデントのレベルまでインデントされていないコードを使用する必要があります。通常は、ファイルに何かをコピーして貼り付けた後、Vimを(レベルごとに4つのスペース)に設定します。私は通常、<<
およびで間に合います>>
。問題は、次のインデントレベルにジャンプせず、4つのスペースを追加または削除するだけです。
このようなコードがある場合
if condition:
do this
do that
やって>>
上のことdo that
になります
if condition:
do this
do that
これに行きたい
if condition:
do this
do that
上記の行のインデントを簡単に一致させるだけでなく、4つのスペースを追加するのではなく、次のレベルのインデントにジャンプするようにします。
これは、インデントに関する.vimrcにあるものです
:set tabstop=4 shiftwidth=4 expandtab
>>
そして、<<
それぞれあなたが望むものではないインデントを追加および削除します。必要なのはで行われる「フォーマット」==
です。
:nnoremap >> ^i<tab><esc>
タブの動作を本当に必要とする場合にもマップできます>>
@romainl
—
Dumitru
==
は上の行のレベルにジャンプします。知って良いことながら、それは私が興味を持ってるすべてのケースでは動作しません。質問への追加として、私がしたいことのためである>>
と<<
にインデント/ DEDENTまでずらし幅の倍数にその方向での国境から。
いいえ、またはを
—
romainl 2016年
==
使用して、指定された行を再フォーマットします。equalexpr
equalprg
filetype plugin indent on
、あなたには.vimrc
、ファイルタイプ(およびプラグイン)インデント関連の規則が適用されます。Ieはあなたの何をチェックtabstop
値が実際に(でset tabstop?
行います。他の設定についても同様)、編集するとき、およびファイル「後」にあなたの行を追加することにより、これらの値を変更する、のようなもの:stackoverflow.com/a/159066/5000478