Bir tuşa basarak Vim'deki genişletilmiş alan "sekmesi" silinsin mi?


19

Vim ile Python kodunu düzenlerim .

tabAnahtar ile girinti için dört boşluk yerleştirilir. Bu boşlukları dört yerine bir "Backspace" (?) Konturuyla nasıl silebilirim?

Bunun için bir "set" seçeneği olmalı ...

İşte benim .vimrc:

set autoindent
set ts=4
set sw=4
set et

Yanıtlar:


23

Ctrl+DBir sekme durağını yedeklemek için kullanabilirsiniz . Bu aslında tüm satırı sol bir sekme durağına taşır; Ctrl+Taynı şeyi sağa doğru yapar. Not o takın modunda (kullanım bu tuş vuruşlarını sadece iş <<ve >>Komut modunda eşdeğer).


30
set softtabstop=4

10
IMO OP'nin tam olarak bunu istedi. Daha fazla oyu hak ediyor.
Ludwig Weinzierl

2
Bu doğru cevap.
mk12

1
Bu konuda bir şey bilmiyordum ve tam da aradığım şey buydu. +1
NigoroJr

5

tl; dr: set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab

kısa form: set ts=4 sts=-1 sw=0 et

açıklama

Bunu ayarlarsanız softtabstop(veya sts) -1otomatik olarak tabstop( ts) ile aynı şekilde davranır . Ayar shiftwidth( swkadar) 0etkili bir şekilde aynı yapmalıdır tabstopsıra.

Detayda

shiftwidth sw

Girintinin her adımı için kullanılacak boşluk sayısı. Kullanılan cindent, >>, <<vb
sıfır zaman tabstopdeğeri kullanılacaktır.

tabstop ts

Dosyadaki a'nın saydığı alan sayısı. Ayrıca bakınız : retab komutu ve softtabstopseçenek.

softtabstop sts

A Tabekleme Tabveya kullanma gibi düzenleme işlemleri yaparken sayılan boşluk sayısı BS. Bu hisseder gibi Tabler dahil edilmektedir aslında boşluklar ve s 'lik bir karışımı kullanılırken,. Bu, tabsayarını olduğu gibi düzenlerken, ayarını standart değerinde tutmak için kullanışlıdır sts. Zaman stsnegatiftir, değeri shiftwidthkullanılır. Tabları çok değiştirirseniz bu size biraz güç kazandıracaktır. Zaman expandtabayarlanmamış, boşlukların sayısı kullanılarak en aza indirilmiştir Tabs.

expandtab et

Ekle modunda: a eklemek için uygun sayıda boşluk kullanın. Boşluklar >ve <komutlarıyla girintilerde ve açıkken autoindentkullanılır. Açıkken gerçek bir sekme eklemek expandtabiçin Ctrl- kullanın V Tab. Ayrıca bakınız : retab


Düzgün, yıllardır vim kullanıyorum ama sts / sw / ts'nin mirası hiç gözüme çarpmadı.
timss

2

Böyle bir şey isteyen biri için GreedyBackspace.vim yazdım . Kişisel olarak kullanmıyorum, bu yüzden güncellediğimden beri bir süre geçti. Ancak son zamanlarda bununla ilgili herhangi bir hata raporu almadım.


1

Birkaç seçenek:

  1. Tüm beyaz alanları 'sekme ile değiştirilecek şekilde' yeniden oluşturabilirsiniz '. Bu şekilde kolayca silinebilirler.
  2. (Bu test edilmemiştir, bu yüzden sadece burada fikirler öneriyorum) bir fonksiyon 'normal modda geri al tuşu' nın 4 katı çalıştırır. Sonra bir şeye eşleyin. Bununla birlikte, boşlukları mı yoksa bazı önemli karakterleri mi sileceğini bilmenin bir yolu yoktur, bu nedenle bu potansiyel olarak güvenli değildir.
  3. '4X' son 4 karakteri silecektir (bu büyük X, küçük değil, küçük olan Del tuşu gibi davranacaktır ').

0

en kolay yol <<, bir ile tekrarlayın.


Merhaba ve superuser'a hoş geldiniz. Her ne kadar cevabınızı kendim bir vi kullanıcı olarak kabul etsem de. Cevabınız kısa, neden önerdiğinizi önerdiğinizi ve neden sorulan soruya uyan bir şey önermediğinizi açıklamıyor.
Mogget

-1

VIM'inizdeki sekmeleri genişlet ayarını kullanarak kontrol ettiniz mi?

:set noet

Genellikle dosyalar üzerinde çalışırken sekmeleri açık tutmayı tercih ederim.
Gerektiğinde, tırnakları 4 boşluk veya gerektiği kadar değiştiririm.

:%s/<ctrl+V><tab>/    /g
                  ----

Küçük bir bonus olarak, kaynak dosyanız sekme başına 3 karakter daha kısadır :-)


oh, ben et var çünkü sekmeleri genişletmek zorunda - sanırım - çünkü ben kod düzenlemek başlangıçta bu şekilde yazılmıştır. Şimdi sadece bu sözleşmeyi izliyorum.
Evgeny

Hala ne dediğimi yapabilir ve sonunda boşlukları geri yükleyebilirsiniz (dosyayı depoya geri vermek zorunda kaldığınızda)
nik

Belki onları açıktaki sekmelere genişleten ve kapanırken boşluklara daraltan bir vim fonksiyonunuz olabilir mi? Herhangi bir fikri olan var mı?
sixtyfootersdude

Bu gerçekten yararsız bir cevaptır - gerçekten herhangi bir yararlı bilgi vermeden sekmeler-boşluklar tartışmasını gereksiz yere yeniden açar.
Dietrich Epp

-2

Bir yolu olduğunu sanmıyorum. Sekme tuşu dört boşluğa genişletildiğinde, vim'in bir sekme olduklarını bilmesinin bir yolu yoktur.


4
-1: Hayal gücü yetersiz.
sixtyfootersdude
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.