expandtabが設定されているときにINSERTモードでタブを挿入する


12

ファイルを複数の文字に変換するように設定しexpandtabました。ただし、一部のファイル(Makefileなど)には、実際に挿入された文字が必要です。.vimrctabspacetab

tab入力中に挿入を強制する簡単な方法はありますか?

回答:


27

を押すだけでなく、をTab押してCtrl-Vからを押しTabます。

これは、さまざまな特殊文字を挿入するために使用できます。詳細:help i_CTRL-Vを参照してください。

Ctrl-Vコマンドラインモード(:help c-CTRL-V)でも動作し、他のプログラムでも完全に動作します。(例:bash、mutt)

Ctrl-V他のものにマッピングした場合は、を試してくださいCtrl-Q。これはVimでもと同じ効果がありますCtrl-Vが、一部の端末ではこれを制御フローに使用します。その場合、Vimはこれを認識しません。


5
または<c-v>009、壊れたTabキーまたはハードコアASCII純粋主義者の場合:-)
Martin Tournoij、2015

17

(エラーが発生しやすい)動作を変更するのではなく。
このファイルタイプでは動作が異なるようにvimを設定します。

したがって、通常の編集ではタブを展開します。しかし、特にmakeファイルについてnoexpandtabは、タブが保持されるように設定しました。

以下を〜/ .vimrcファイルに追加します。

" Normal action
set expandtab

if has("autocmd")

    " If the filetype is Makefile then we need to use tabs
    " So do not expand tabs into space.
    autocmd FileType make   set noexpandtab

endif

3
私は彼の質問に答えましたが、根本的な問題が私よりもはるかに優れていることを実際に理解しました。よくやった。
リッチ

どちらの答えも価値があると思います。ときどきリモートのどこかにログインしていて、vimの設定をいじりたくないが、ただMakefileを編集したいだけなのです。
ダニエルシュミッツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.