Python'daki dosyalar üzerinde çalışırken bazen sekmelerde boşluklar ya da tersi yönde hata yapıyorum. Vim'in sekme yerine sekme için karakter görüntülemesinin bir yolu var mı?
:h vim-faq
ve arama /invisible
. Ezberlemek etiketi zor :h faq-19.8
.
Python'daki dosyalar üzerinde çalışırken bazen sekmelerde boşluklar ya da tersi yönde hata yapıyorum. Vim'in sekme yerine sekme için karakter görüntülemesinin bir yolu var mı?
:h vim-faq
ve arama /invisible
. Ezberlemek etiketi zor :h faq-19.8
.
Yanıtlar:
Evet, listchars kullanın:
set list
set listchars=tab:>-
Bu iki satırı .vimrc'nize eklerseniz, sekmeler >
başlangıç konumu ve -
sekmenin geri kalanı boyunca gösterilir .
(Sidenote: listchars ayrıca takip eden boşlukları da gösterebilir (takip eden boşluk için kullanmak istediğiniz karakterle trail:x
değiştirin x
).
set listchars=tab:!·,trail:·
, IMHO ·
çok daha net -
... btw çalışması için bunun için oldukça yeni bir Vim sürümüne ihtiyacınız var (tam olarak hangisi olduğundan emin değilim, 7.3.x sanırım) ...
▸
biraz daha küçük olduğu için kullanmayı seviyorum >
. Şu anda eol işaretleyerek beyaz boşluk izliyor (yukarıdakileri deneyebilirim). Ayarlarım: set listchars=eol:¬,tab:▸\
ve
Temel cevap, :set list
sekmelerin olarak gösterilmesine neden olur ^I
.
Ancak, bunun ötesine geçmenizi öneririm. Sadece :set list
ekranda görsel hizalamayı koruyamadığı için sorunlu. Örneğin:
%.o: %.cpp
^Ig++ -c $<
Beklediğiniz özellikle iyi görünmüyor g
ait g++
ilk altında görünmesini p
arasında cpp
(varsayarak tabstop=8
).
Bu nedenle, .vimrc
size şöyle bir şey koymanızı öneriyorum :set listchars=tab:␉·
(Açık olmak gerekirse , bu Unicode karakter U + 2409 SEMBOLÜ SINIF TABULASYONU, ardından U + 00B7 ORTA NOKTA) .
Açıklandığı gibi :help listchars
, tab:xy
görsel hizalamanın korunmasına neden olan iki karakterli bir ayar :
tab:xy Two characters to be used to show a tab. The first char is used once. The second char is repeated to fill the space that the tab normally occupies. "tab:>-" will show a tab that takes four spaces as ">---". When omitted, a tab is show as ^I.
Yukarıdaki örnek ekranda şöyle görünür:
%.o: %.cpp
␉·······g++ -c $<
Şahsen ben şununla çıkarım listchars
:
:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵
eol
, I kullanma U +, 23CE DÖNÜŞ SEMBOLÜDÜRtrail
, kullandığım UZAY İÇİN U + 2420 SEMBOLnbsp
, I kullanma U +, 23B5 ALT köşeli parantezBu karakterler, nadiren belge metninde nadiren görünecekleri kadar belirgindir.
Bu özel karakterleri kendi içine yazmak için vimrc
, Ctrl-vu23CE
anlatıldığı gibi Insert Modunda yazın :help utf-8-typing
.
set lcs=tab:├─
Arada bir kullanım için, aşağıdaki arama /
komutunu kullanarak bir belgedeki tüm sekmeleri kolayca vurgulayabilirsiniz :
/\t
Vurgulamayı kaldırmak için, basitçe yüksek ışıklandırma :noh
için kısa olanı yazın :nohlsearch
.
" Highlight tabs as errors.
" https://vi.stackexchange.com/a/9353/3168
match Error /\t/
Bu yararlı vurgulama komutlarının daha fazlası için - sondaki boşluk ile birleştirilmiş ve bunu kalıcı kılmak dahil - Vim wiki'sine bakın .
:match Error /\t/
, sekmeleri (veya bununla ilgili herhangi bir deseni) arama kaydından ve hlsearch'ten ( :match
temizlemek için yazın) bağımsız olarak vurgulamak için de kullanabilirsiniz .
Şahsen , girinti seviyelerinde dikey bir çizgi görüntüleyen eklenti indentLine eklentisini kullanmayı seviyorum .
Girintinin önemli olduğu özellikle python'da çok yardımcı olur.
Diğer şeylerin yanı sıra, bir tuş kombinasyonuyla eşleştirilebilen bir geçiş komutu sağlar, böylece ihtiyacınız olmadığında kapatabilirsiniz.
Sekmeleri normal bir terminalde ve gvim'de farklı göstermek isteyebilirsiniz.
set list!
if has('gui_running')
set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
set listchars=tab:>.,trail:.,extends:\#,nbsp:.
endif
(Başkalarının yararlı bulması durumunda bütünlüğü eklemek).
En kolay yöntem, :set list
sekmeleri ^I
ve satır sonunu gösterecek şekilde yapmaktır $
.
Çağıran bir haritalama kullanmayı severim
:set invlist
Normal ekran ve liste ekranı arasında geçiş yapmak için.
Örneğin:
:nmap <leader>l :set invlist<cr>
Bu, sekme ile boşluk problemi olup olmadığını hızlıca kontrol etmemi ve ardından normal bir ekrana dönmemi sağlıyor.
retab
, dosyayı her kaydettiğinizde tüm sekmeleri boşluklara dönüştürmek için yapılandırabilirsiniz .