Vimでexpandtabオプションがオンのときにタブ文字を挿入する方法


352

挿入モードでexpandtabオプションをオンにすると、を押すとTab ↹、設定した数のスペースが挿入されます。

しかし、実際のタブ文字を挿入したい場合があります。

これを行う方法を知っていますか?

回答:


516

<CTRL-V><Tab>「挿入モード」で使用できます。挿入モードで<CTRL-V>は、次の文字のリテラルコピーを挿入します。

これを頻繁に行う必要がある場合は、@ Dee`Kejが(コメントで)設定Shift+ Tabを提案し、このマッピングで実際のタブを挿入します。

:inoremap <S-Tab> <C-V><Tab>

また、@ feedbackloopで示されているように、Windows <CTRL-Q>ではでなくを押す必要がある場合があります<CTRL-V>


33
.複数のタブを挿入する場合は、を使用して最後のコマンドを繰り返します。
Xavier T.

10
コマンドモードになっていたため、この組み合わせを使用すると問題が発生しました。このコマンドは必ず編集モードで実行してください。
mgfernan

11
技術的にはINSERTモード。
mkmurray、2009

2
注:あなたがWindows上のgvimを使用している場合、あなたはおそらく使用する必要がありますCTRL+ Qの代わりに-を参照してstackoverflow.com/questions/6951672/...を
フィードバックループ

8
私はこの場合の簡単なショートカットを用意しましたが、それは機能しているようです(他のものを壊すことはありません)。- ファイルに挿入inoremap <S-Tab> <C-V><Tab>でき~/.vimrcます。
Dee'Kej

34

以下のようにVim内からexpandtabオプションを無効にできます:

:set expandtab!

または

:set noet

PS:そして、「set expandtab」または「set et」を使用して、タブの挿入が完了したら元に戻します。

PS: .vimrc(softtabstop)の4つのスペースに相当するタブセットがある場合、タブキーを2回ではなく1回押すことでタブを挿入できるように、タブを8つのスペースに設定することもできます(softtabstop = 8を設定します)。


要するに:set etおよびset noetスイッチへtabspace必要性など。
Eric Wang

Ctrl + Vで貼り付けが発生し、キーバインドを調整する時間がありませんでした。これは
役に立ち

2

のドキュメントからexpandtab

expandtabがオンのときに実際のタブを挿入するには、を使用します。およびins-expandtabも参照してください。 このオプションは、 オプションが設定されるとリセットされ、オプションがリセットされると復元されます。CTRL-V<Tab>:retab
pastepaste

したがって、pasteオプションを切り替えるためのマッピングがある場合、たとえば

set pastetoggle=<F2>

あなたも行うことができます<F2>Tab<F2>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.