Vim'de expandtab seçeneği açıkken sekme karakteri nasıl eklenir


353

Ekleme modundayken ve expandtabseçeneği açtığımda , düğmesine basıldığında Tab ↹yapılandırılan boşluk sayısı eklenir.

Ancak bazen gerçek bir sekme karakteri eklemek istiyorum.

Bunun nasıl yapılacağını biliyor musun?

Yanıtlar:


517

Sen kullanabilirsiniz <CTRL-V><Tab>"insert modunda". Ekleme modunda, <CTRL-V>bir sonraki karakterin gerçek bir kopyasını ekler.

Bunu sık sık yapmanız gerekirse, @ Dee`Kej (yorumlarda) bu eşlemeyle gerçek bir sekme eklemek için Shift+ ayarını önerdi Tab:

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

Ayrıca, @feedbackloop tarafından belirtildiği gibi, Windows'ta <CTRL-Q>bunun yerine basmanız gerekebilir <CTRL-V>.


33
Ardından ., birden çok sekme eklemek istiyorsanız son komutu tekrarlamak için düğmelerini kullanın .
Xavier T.

10
Komut modunda olduğum için bu kombinasyonu kullanırken bazı sorunlar yaşadım. Bu komutu DÜZENLEME modunda yürüttüğünüzden emin olun.
mgfernan

11
Teknik olarak INSERT modu.
mkmurray

2
Not: Windows'ta gVim kullanıyorsanız muhtemelen bunun yerine CTRL+ kullanmanız gerekecektir Q- bkz. Stackoverflow.com/questions/6951672/…
feedbackloop

8
Ben sadece bu dava için basit bir kısayol var ve çalışıyor gibi görünüyor (başka bir şey kırma değil): inoremap <S-Tab> <C-V><Tab>- ~/.vimrcDosyanıza koyabilirsiniz .
Dee'Kej

34

Vim içinden expandtab seçeneğini aşağıdaki gibi devre dışı bırakabilirsiniz:

:set expandtab!

veya

:set noet

Not: Sekme ekleme işlemini tamamladığınızda "set expandtab" veya "set et" ile geri ayarlayın

Not: .vimrc (softtabstop) öğesinde 4 boşluğa eşdeğer sekme ayarınız varsa, sekme tuşuna iki kez yerine bir kez basarak sekme ekleyebilmek için 8 boşluğa ayarlamak da isteyebilirsiniz (softtabstop = 8 olarak ayarlayın) ).


Kısacası: set etve set noetgeçiş yapmak için tabve spacegerektiği gibi.
Eric Wang

Ctrl + V macunun oluşmasına neden oldu ve tuş takımlarını ayarlamak için zamanım yoktu. Bu yardımcı oldu
Shirish Hirekodi

2

Şu belgelerden expandtab:

Açıkken gerçek bir sekme eklemek için expandtabtuşunu kullanın . Ayrıca bkz. Ve ins-expandtab . Bu seçenek, seçenek ayarlandığında sıfırlanır ve seçenek sıfırlandığında geri yüklenir .CTRL-V<Tab>:retab
pastepaste

Bu nedenle, pasteseçeneği değiştirmek için bir eşlemeniz varsa , ör.

set pastetoggle=<F2>

yapabilirsin <F2>Tab<F2>.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.