vimにテキストを貼り付けるときに自動インデントをオフにする 質問する

vimにテキストを貼り付けるときに自動インデントをオフにする 質問する

私は Vim を学ぶ努力をしています。

クリップボードからドキュメントにコードを貼り付けると、新しい行の先頭に余分なスペースが挿入されます。

line
  line
    line

自動インデントをオフにできることは知っていますが、他の設定が競合しているか何か他の理由で、それを機能させることができません (これは .vimrc では非常に明白に見えますが、削除すると問題にならないようです)。

コードを貼り付けるときに自動インデントをオフにして、コードを書くときに vim の自動インデントを維持するにはどうすればよいですか? これが私の.vimrcファイルです:

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

ベストアンサー1

更新:より良い回答はこちら:https://stackoverflow.com/a/38258720/62202

コードを貼り付けるときに自動インデントをオフにするには、特別な「貼り付け」モードがあります。

タイプ

:set paste

次に、コードを貼り付けます。ツールチップのテキストに と表示されていることに注意してください-- INSERT (paste) --

コードを貼り付けた後、貼り付けモードをオフにして、入力時の自動インデントが再び正しく機能するようにします。

:set nopaste

しかし、私はいつもそれが面倒だと感じていました。そのため、テキスト編集中に<F3>貼り付けモードと非貼り付けモードを切り替えることができるようにマップしました。これを追加します.vimrc

set pastetoggle=<F3>

おすすめ記事