web-dev-qa-db-ja.com

コメント(#)はVimの挿入モードで行頭に移動します

Vimのインデントされた行にコメントを追加したいときはいつでも、 Shift-o (現在の上の新しい行を開き、挿入モードに切り替えます)そしてPythonコメント(#を使用)の入力を開始します)次に、そのハッシュは魔法のように行の先頭に移動されます(インデントなし)そして私はタブを数回クリックする必要があります。

誰かがそれを回避する方法を知っていますか?

58
Jonatan Littke

.vimrcにset smartindentがあると思います

:h smartindentを参照してください

When typing '#' as the first character in a new line, the indent for
that line is removed, the '#' is put in the first column.  The indent
is restored for the next line.  If you don't want this, use this
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.

Pythonのコーディング中にsmartindentingは必要ないと思います。したがって、設定から削除するか、.vimrcに以下を追加してください。

au! FileType python setl nosmartindent
62
Maxim Kim

それを.vimrcに入れてみてください:

autocmd BufRead *.py inoremap # X<c-h>#

これにより、ハッシュ(ポンド)記号の挿入は常にPythonソースファイルでインデントされます。

9
Haes

Nerd Commenter を試してみてください。これは、ほとんどの言語の行にコメントを自動的に追加できるプラグインです。興味のある行にカーソルを置いて入力するだけです ,cSpace その行はコメントアウトされます。同じキーストロークでコメントが削除され、行が表示されます。

だからあなたが持っているなら:

def func():
  print("indented") <- cursor position in command mode

タイプ ,cSpace そしてあなたは得る:

def func():
  #print("indented")