<Sekme> tuşuna basarken ve otomatikindekim uygulandığında sekme boyutunu vim


22

Sekme boyutumu 4'ten 2'ye değiştirmeye karar verdim, çünkü neden olmasın? Koda bakmak isteyen herkes kesinlikle tercihlerini kullanabilir.

Ancak bir soru.

Sekme tuşuna basarsam 2 ekler, ancak Vim'in autoindent'i hala 4'ü koyuyor. Bu 2'yi yapmak için neyi değiştireceğim?

İlgisiz başka bir soru: C ve benzer diller için en iyi girinti stili hangisidir? 1TBS kullanıyorum, ancak aralarından seçim yapabileceğiniz çok şey var. Bunlardan herhangi biri daha profesyonel mi yoksa tercih ediliyor mu?

Yanıtlar:


17

' shiftwidth' Öğesini ' ' ile aynı değere ayarlamayı deneyin tabstop. Daha da iyisi, Vim'in yeterince yeni bir sürümünü kullanıyorsanız, ' shiftwidth' 0 'a ayarlayın ve varsayılan' tabstop'olarak ayarlanmışsa.


Aradığım şey buydu. Şu anda ts2, 4 veya 8 olarak ayarlanma arasında tartışma
user341814

Kod olmayan dosyalarda 8, dile ve ne kadar iç içe geçme eğilimine bağlı olarak 2 veya 4 kullanıyorum.
Heptite

Şu anda sadece C yapıyorum.
user341814

33

Vim girinti seçenekleri

Vim, girinti boyutu için esas olarak 3 ayar kullanır:

  • tabstop, ts: Vim açtığınız bir dosyada bir tablo ile karşılaştığında, sekmeyi {ts} boşlukları olarak görüntüler ( tabstop yardımına bakın veya :help tabstopVim yazın).
  • softtabstop, sts: bir dosyayı düzenlerken ve sekme tuşuna bastığınızda, Vim eklenen ayarın genişliğini tanımlamak için bu ayarı kullanır ( softtabstop yardımına bakın veya :help softtabstopVim yazın).
  • shiftwidth, sw: Girinti, ya autoindent malzeme ya da her zamanki gibi kullanılırken um kullanır boşlukların sayısı >>, <<komutlar. Heptit'in fark ettiği gibi, bu özel durumda aradığınız şey budur. Ve Vim'in son sürümleri gerçekten de bu seçeneği tanımlamamanıza izin verir, shiftwidthdaha sonra tarafından tanımlanan değeri alır tabstop. Oldukça kullanışlı ( vardiya genişliği yardımına bakın ).

Misal

Örneğin, aşağıdaki ayarları kullanırsanız:

set sts=4
set ts=2
set sw=8

Bunlar aşağıdaki davranışı sağlar:

  1. Dosyaya bir tablo eklemek 4 boşluk genişliğinde girinti oluşturacaktır.
  2. Senin gibi tabstop2 olarak ayarlandığında, bu aslında 2 tablolamadan eşdeğer olacaktır. Bunu kontrol etmek oldukça kolaydır, sadece tabloları görüntülemek için listve listcharsseçeneklerini kullanın.
  3. Kullanarak bir satırı >>girintilerseniz, girinti 8 boşluk genişliğindedir (bu nedenle, tabstopdeğere dayalı olarak yukarıdakiyle aynı olan 4 tabloya eşdeğerdir ).

resim açıklamasını buraya girin

Vim girinti önerileri (Vim belgelerinden)

Gönderen tabstop(yardım :help tabstopVim):

There are four main ways to use tabs in Vim:
  1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
    (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
    will use a mix of tabs and spaces, but typing <Tab> and <BS> will
    behave like a tab appears every 4 (or 3) characters.
  2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
    'expandtab'.  This way you will always insert spaces.  The
    formatting will never be messed up when 'tabstop' is changed.
  3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
    |modeline| to set these values when editing the file again.  Only
    works when using Vim to edit the file.
  4. Always set 'tabstop' and 'shiftwidth' to the same value, and
    'noexpandtab'.  This should then work (for initial indents only)
    for any tabstop setting that people use.  It might be nice to have
    tabs after the first non-blank inserted as spaces if you do this
    though.  Otherwise aligned comments will be wrong when 'tabstop' is
    changed.

Ben şahsen, 2 boşluk genişliğinde tablolarla, esas olarak ikinci çözümü kullanıyorum.

set ts=2
set sts=2
set et     "expand tabs to spaces

-1

Http://vim.wikia.com/wiki/Indenting_source_code'a göre , 'filetype plugin indent on' komutu, programın Vim kurulumunun girintisi alt dizininde bulunan filetype'a özgü girinti komut dosyalarını kullanmasına neden olur. Bu sayfada ayrıca 'cindent'in C ve C ++ dosyalarında otomatik olarak kullanıldığı ve bu komutu elle kullanmanız gerekmemesi gerektiği belirtilir.

Ben sadece bazı temel metin düzenleme için kullandığım gibi Vim, çok aşina değilim, ama el ile 'cindent' komutunu Vim'in varsayılan autoindent boyutunu kullanmak için bu kodu vermeyi denerdim. Bu işe yaramazsa, 'filetype plugin indent on' seçeneğini deneyebilir ve istenen girintileri almak için komut dosyalarını kendiniz düzenleyebilirsiniz.

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.