Vimの「自動インデント(Auto-Indent)」機能について

Linuxのvim で、コメントアウトした行がある複数行をペーストすると、#がない行も#が付いてコピーされるケースがあります。
その都度、#がある箇所を削除しますが、複数行あるとかなり面倒です

vimが「前の行が #(コメント)で始まったから、次の行もコメントしますよ」と自動で判断してコメントアウトしていきます。

この機能はOffにするには、「ペーストモード」に切り替える必要があります

手動で切り替える方法

ペーストをする前にvimのコマンドモードで下記を入力すると「ペーストモード」になります。

:set paste

元の状態に戻すには、コマンドモードで以下の入力します

:set nopaste

自動インデントの主な役割

vimにはインデント関連の設定がいくつかありますが、主に以下の3つが「自動」で動いています。

機能名動作の内容
autoindent最もシンプルな機能。前の行の先頭にある空白(スペースやタブ)を、次の行でも維持します。
smartindentC言語などの構造を理解し、{ で終わる行の次は自動で深くインデントし、} で閉じると戻します。
filetype indentファイル形式(Python, Ruby, HTMLなど)を判別し、その言語の慣習に合わせた最適なインデントを自動で行います。

\ 最新情報をチェック /