Python コードの編集中に vim smart indent vim 機能に苦労しています。一般に、vim のオプションは(および/または) と:set nocompatible
一緒に使用するのが好きです。1 つの非常に迷惑な動作を除いて、すべて問題ありません。何かをコーディングしてから、別の場所から取得した Python コード スニペットを挿入したいとします。Python コード スニペットには、コメントが含まれる場合があります。:set autoindent
:set smartindent
# comment1
a=1
# comment2
b=1
vim では、入力などの挿入モードに入りo、コードの貼り付けを行うと、vim はコードをインデントする作業が多すぎて、スニペットの代わりに
# comment1
# a=1
# # comment2
# b=1
そのため、最初のコメントの後に追加のコメント (ポンド記号) を挿入し、残りのコード スニペットのためにそれを保持します。これで、ID が異なる非常に長いコード スニペットがあり、貼り付けアクションがどのように見えるかをイメージできます(コードは不適切にインデントされ、コメントされます)。
それを修正する方法はありますか?
問題を解決する唯一の方法は、vim 互換モードをオプションと一緒に設定してからnoautoindent
、コード スニペットを貼り付けることです。そうすることで、正しく挿入されます(そのまま)。しかし、モード間の切り替え ( nocompatible
vs compatible
) は多すぎます (怠け者と呼んでくださいnocompatible
。モードでコメント付きのスニペットを適切に挿入する方法である必要があります)。モードで設定noautoindent
しnocompatilbe
ても違いはありません(問題はまだ存在します)ため、互換性のあるモードと互換性のないモードに関係があります。