Vim'in TÜM beyaz boşlukları karakter olarak göstermesini sağlayın


772

Vim'i tüm beyaz boşlukları karakter olarak göstermenin bir yolunu bulamıyorum. Bulduğum tek şey sekmeler, sondaki boşluklar vs. hakkındaydı.


14
Ben de tam olarak bu sorunu çözmeye çalışıyorum. Lütfen, bununla karşılaşırsanız, başka bir yanıt vermekten kaçının :set list. Bu bizim sorumuza cevap vermiyor. (Diğer katılımcılara: mrucci'nin aşağıdaki yanıtı, gerçek bir çözüm olmasa da yararlıdır .)
ELLIOTTCABLE

1
Boşlukların görünür olduğunu söyleyen listve listcharsbir boşluğun doğrudan bir sekmeyi takip ettiğini düşünenler için . Bu durumda neredeyse görünmez olacaktı. Çoğu durumu yakalayabileceğinize katılıyorum, ancak tüm alanların doğru şekilde vurgulanması güzel olurdu.
Kevin Cox

11
Yeni ziyaretçiler için: Bu, vim'in yeni sürümlerinde çözüldü! Bkz Brettanomyces 'ın altında cevabını .
ELLIOTTCABLE

1
İlgili (ancak fark yığını): vi.stackexchange.com/questions/422/…
Pureferret

Yanıtlar:


693

Diğerlerinin söylediği gibi,

:set list

hangi ile birlikte

:set listchars=...

görünmez karakterleri göster.
Şimdi, boşluk göstermek için kullanabileceğiniz açık bir seçenek yoktur , ancak liste çizelgelerinde her şeyi AMA boşluk için gösterecek bir karakter ayarlayabilirsiniz. Örneğin, benimki şöyle

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

yani, kullandıktan sonra

:set list

açıkça başka bir şey olarak gösterilmeyen her şey, o zaman, gerçekten, sade eski bir boşluktur.

Her zamanki gibi, nasıl listcharsçalıştığını anlamak için yardımı kullanın. Hangi karakterlerin görüntülenebileceği (örneğin, sondaki boşluk gibi) ve nasıl yapılacağı hakkında harika bilgiler sağlar:

:help listchars

(Kaynak: değişikliklerin orta kolayca düzenleme görebilmek için buna Bir geçiş eklemek için yararlı olabilir VIM: listemizi .vimrc bir geçiş olarak! ):

noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>

4
“Açıkça başka bir şey olarak gösterilmeyen her şey”? U + 2000..U + 200A aralığındaki unicode boşlukları deneyin. Sabit genişlikli yazı tipi bunları destekliyorsa, bunlar normal 0x20 alanı gibi gösterilir.
ZyX

2
@ZyX - Unicode'un tamamını kullanmıyordum, ancak kullanımda oldukça yaygın olan karakter kümesini kullanıyordum. Cevaptan memnun değilseniz, iyileştirme önermekten çekinmeyin.
Kale

20
@ckarbass -: set invlist
Rook

Harika bir ipucu! Ben koymak tavsiye listchars seti için hat .vimrcgörünmez karakterleri gösteren bu güzel yolu kolayca ile etkin olabilir, böylece dosyanın :set list(yine bu sayfayı Googling olmadan) herhangi bir zamanda içinde.
Melebius

8
@ckarbass Vim'de herhangi bir şeyi değiştirdiğiniz gibi - ekleyerek! sonuna kadar. Böylece olur: set listesi!

275

7.4.710 yamasından itibaren artık liste karakterlerini kullanarak alan yerine göstermek için bir karakter ayarlayabilirsiniz!

:set listchars+=space:␣

Bu nedenle, TÜM boşluk karakterlerini bir karakter olarak göstermek için aşağıdakileri yapabilirsiniz:

:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
:set list

Posta listesiyle ilgili tartışma: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/pjmW6wOZW_Q


2
Bu çok güzel, ama eol karakterinin diğerlerinden farklı olarak neden farklı renklendirilmediğini merak ediyorum.
CMCDragonkai

3
Bunu denedim ve ilk başta bir hata aldım. Kullandığım gvim'in biraz eski versiyonunda "alan" ın geçerli bir seçenek olmadığı ortaya çıktı. Gvim'imi yükseltmek sorunumu çözdü. Hata alan diğer kullanıcılar için, :help listchars"boşluk" un "liste çizelgeleri" için geçerli bir seçenek olup olmadığını kontrol etmek için yazın. Değilse, viminizi belirtilen @brettanomyces yamasına yükseltin. Veya boşlukları görmeyi umursamıyorsanız "boşluk" u ayar komutunun dışında bırakın.
Niko Bellic

4
Uzay karakteri (için Unicode'un Orta Dot (U + 00B7) kullanan space:·bu vb MS Word, Notepad ++ gibi göründüğü,)
Dinei

1
@ user5359531 Unicode açık kutu karakterini (␣) girmek için <ctrl-v> u2334'ü deneyin. Daha fazla bilgi için sanctum.geek.nz/arabesque/special-characters-in-vim adresine bakın
Brett Y

3
İçin <C-K>.Mvim yazın ·. Ayrıntılar :h digraphiçin bakınız.
johnchen902

252

:set list etkinleştirmek.

:set nolist devre dışı bırakmak.


11
Bize modlar arasında nasıl geçiş yapacağımızı gösterdiğiniz için teşekkür ederiz. Diğer gelişmiş cevapların bunu öğreteceğini düşünürdünüz.
Jonathan Komar

1
evet bu yardımcı olur. Keşke bu cevabı sadece sitede göründüğünü bulmak için kendim bulduğum için en iyi cevap olsaydı.
Ejoso

8
: set list!daha iyi :)
skippr

@Skippr Hangi önlemle? Bunun dışında aynı sayıda tuşa basılması Shiftve !her ikisinin de yazılması daha zordur no. Eğer .vimrc'nize koyuyorsanız, exclam formunun daha kolay okunabileceğini kabul ediyorum.
Dan Bechard

7
@Dan Nispeten kısa bir süre içinde bunu kapatıp açmak :set list!istiyorsanız, girmenize gerek kalmadan bunu yapacaksınız nolist. !Basitçe şu anda ayarlanır olursa olsun tersini yapar. Bunu her zaman özellikle birlikte kullanıyorum :set paste!. Bulmak :set pasteya da :set nopastelol bulmak için ok tuşuna basmaktan nefret ediyorum
skippr

188

Buradaki diğer yanıtların daha kapsamlı olduğunu düşünüyorum, ancak genellikle sekmeleri ve boşlukları görsel olarak ayırt etmek için kullandığım bir numara paylaşacağımı düşündüm:

:syntax on
:set syntax=whitespace

Bunlar, Whitespace programlama dili için sözdizimi vurgulama kurallarıdır - sekmeler yeşil, boşluklar kırmızı olarak gösterilir. :)

:set listDiğer birçok cevapta belirtildiği gibi birleştirilebilir , ancak sekmeler daha sonra yeşil bir higlight olmadan ^ I olarak gösterilir, ancak boşluklar kırmızı olarak gösterilir.


7
Bunu beğendim, oldukça zeki ve diğer cevapların çoğundan bir şekilde daha iyi hissediyor. Yine de her zaman kullanılabilir bir çözüm değil.
ComputerDruid

4
Daha geleneksel yöntemleri tercih ederim, ancak yaratıcılık için bunu + 1'yorum.
Sietse van der Molen

28
Ben dil için yararlı olacağını biliyordu şey .
Dan Bechard

1
Vurgulamak için kullandığınız
.vim

2
Hiçbir şey indirmenize gerek yok, boşluk vurgulama kuralları Vim ile yıllardır gönderiyor. Vim'in garip veya gerçekten eski bir sürümünü kullanmıyorsanız, temel olarak yerleşik olmalıdırlar.
Eliot

91

:set listtüm boşlukları karakter olarak gösterecektir. Her şey ama bir boşluk hala düz eski boşluk görürseniz, gerçekten düz eski uzay aracı olduğunu normal durumuna, farklı görünür. :)


35
Bunu geri al:set nolist
Greg K

6
"Boşluğu göster" açık Yüce Metin 2'deki gibi boşluk karakterini görmek isterseniz ne olur? Gerçekten yararlı buldum.
Olical

Ne için buraya geldi ama çok yararlı değil. Teşekkürler.
harperville

4
Ayrıca hayır ile seçenekleri !sonunda değiştirilebilir:set list!
baldrs

Bunun için bir astar kullanıyorum :se hls | /\_s. set listBoşlukları yok sayarken her şeyi alır . İle tekrar kapalı :se nohls. Bu yazı ile ilgili ayrıntılar: albertech.blogspot.com/2015/02/…
kavanoz

73

Ayarladıysanız:

:highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none

ve ardından boşluk araması yaparsanız, her boşluk karakteri altı çizili karakter olarak gösterilir.

Bu komutu, boşlukların "altını çizmeyi" değiştiren kullanışlı bir işlevde kullanabilirsiniz.

set hls
let g:HLSpace = 1
let g:HLColorScheme = g:colors_name
function ToggleSpaceUnderscoring()
    if g:HLSpace
        highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
        let @/ = " "
    else
        highlight clear
        silent colorscheme "".g:HLColorScheme
        let @/ = ""
    endif
    let g:HLSpace = !g:HLSpace
endfunction

İşlevi bir kısayol tuşuyla eşleyin:

nmap <silent> <F3> <Esc>:call ToggleSpaceUnderscoring()<CR>

Not: Colorscheme ayarlandıktan sonra işlevi vimrc olarak tanımlayın.


1
Biraz hack, ama şimdiye kadar her şeyden daha yakın. Ödül verildi! : D
ELLIOTTCABLE

45

Geçerli arabellek için sözdizimi kurallarınıza bağlı olarak, bunun gibi bir şey işe yarayabilir:

:syn match WhiteSpace / / containedin=ALL conceal cchar=Æ
:setl conceallevel=2 concealcursor=nv

+ Gizleme özelliğine sahip bir vim 7.3 gerekir

Güncelleme 10/24/2014 Biraz daha genişletmek için. Elbette gizli karakterler için bazı vurgulamalar tanımlamak mümkündür.

  • Gizli karakterlerin nasıl görüneceğini yapılandırabilirsiniz. Vurgulamak için, 'Gizle' vurgulama grubunu en az bir kez yapılandırmanız :h hl-Concealgerekir. sözdizimi betiği bazı öğeleri gizler, beyaz boşluk karakterleriniz olarak görüntülenir).

    :hi Conceal ctermfg=7 ctermbg=NONE guifg=LightGrey guibg=NONE

  • Sözdizimi komut dosyası skipwhiteanahtar kelimeyi kullanıyorsa, Vim'in boşlukları vurgulamayacağı konusunda bir belirsizlik var . Etrafta bir yol olmayacak (belki bu düzeltilecek, bir yama yayınladım )

  • Etrafta yüzen bir yama var gibi görünüyor, bu da alanların listmodda nasıl görüneceğini özelleştirmeye izin verecek . Yazma sırasındaki en sonuncusu bu gibi görünüyor . (Bu, bunu kullanmak için kendi Vim'inizi oluşturmanız gerektiği anlamına gelir).
  • conceallevelVe concealcursorpencere yerel seçeneklerdir. Bu, farklı pencerelerde farklı olabileceği anlamına gelir (ve muhtemelen filetype eklentileri veya diğer eklenti komut dosyaları tarafından da ayarlanır).
  • Sözdizimi vurgulama gruplarının her sözdizimi tanım dosyası yeniden yüklendiğinde yürütülmesi gerekir. Bu, bir BufWinEnterveya muhtemelen bir Syntaxveya hatta FileTypeotomatik komut kullanılarak da yapılabilir . (Hangisinin gerçekten çalıştığını test etmedim).

Son iki öğe, sözdizimi kurallarını ve karşılık gelen seçenekleri sıfırlayan bazı otomatik komutlar ayarlamanız gerektiği anlamına gelir. Birincisi için, bir ColorSchemeotokomut kullanarak vurgulamayı ayarlamak isteyebilirsiniz (böylece gizli karakterlerin her zaman aynı görünmesi, bir renk şemasının gerçekte ne kurulduğundan bağımsız olarak). Eksiksiz bir çözüm için, size bir başlangıç ​​vermesi gereken romainl cevabına bakın. Bir işlev ayarlarsanız, özel Vurgulamayı görüntülemeyi açmak veya kapatmak için kolayca bir açma / kapatma komutu ayarlayabilirsiniz.

26.10.2014 Güncellemesi Bu sorudan bir eklenti yaptım .

Güncelleme 04/22/2015 Vim'elist seçeneği kullanarak bunu mümkün kılan bir yama eklendi . Basitçe ayarlayın set list listchars+=space:␣ Bu Vim 7.4.711 itibariyle çalışır


Harika çalışıyor! Bu nasıl eklenebilir .vimrc?
Eric Martindale

1
Bu, geçerli arabellekte çalıştığından, muhtemelen bunu bir otomatik komuta sarmanız gerekir. BufEnter ve hatta Syntax otokombi sizin için çalışabilir:
Christian Brabandt

3
Æbunun için garip bir karakter seçimi, neden olmasın ·?
Marius Gedminas

1
Bu aslında doğru cevap. Bu karaktere doğru sözdizimi vurgulamanın nasıl ekleneceği hakkında bir fikriniz var mı? Çok soluk olsaydı tercih ederim ·
hava saldırısı

@ChristianBrabandt, repo'yu kirleten bir sürü nrrwrgn ile ilgili dosya var.
romainl

31

Bunu kullanıyorum

/\s
:set hlsearch

boşlukları vurgulamak için Tüm beyaz boşlukları arar ve ardından vurgunun onları açmasını sağlar. Ancak, yok değil özel karakter yazdırmak.


En basit çözüm imho. Büyük arama temizliği için bir komut ile eşleştirilmiş (kullanıyorum nnoremap <leader><space> :noh<cr>)
Lenna

24

Beyaz boşluklarla '' karakterini kastediyorsanız, önerim sadece bir arama / değiştirme olacaktır. Diğerleri de vurguladığımız gibi, set listdeğiştirir olmayan baskı yapılandırılan görünür bir karaktere karakterleri listchars.

Boşlukları başka bir karakter olarak açıkça göstermek için, aşağıdakine benzer bir şey hile yapmalıdır:

:%s/ /█/g

Sonra tekrar geri dönmek için değişikliği geri alın.

(█ Bu tam tuş sırası basılı almak için: :%s/ /CTRL-KFB/g)


2
Bunu diğer cevaplardan daha çok beğendim, bu :set listbenim için ters görünüyor , görünür karakteri ('boşluk') _non priting_ (??) olana değiştiriyor. Birinin bu maçta kullanıp kullanamayacağını merak ediyorum, örneğin :match MyBlackBlockChar "appropriate_regexhile yapmalı, değil mi?
Sudhi

Diğer cevaplar faydalıdır, ancak bu OP'nin +1 +
Alex

1
Veya :%s/\s/█/gtüm boşluklar için. Ayrıca, :set hlsearchartı :&s/\s//gnyararlı olabilir.

16

Boşlukları vurgulamak için aramanız yeterlidir:

/ <Boşluk>

Notlar:

  • <boşluk>, yalnızca boşluk karakterini yazmak anlamına gelir.
  • Şununla arama sonuçlarının vurgulanmasını etkinleştir: set hlsearch

    Boşlukları ve sekmeleri vurgulamak için:

    / [<boşluk> <tab>]

    Vurgulamaları kaldırmanın hızlı bir yolu başka bir şey aramaktır: / asdf

    (rastgele karakterlerin herhangi bir kısa listesini yazmanız yeterlidir)


  • 1
    Bu, 3 yıl önce verilen cevap ile aynıdır. Ayrıca,: noh, vurgulanmamış metin için / asdf'den daha hızlıdır. Ya da muhtemelen sık kullanacağınız düşünüldüğünde f1'i: noh olarak da ayarlayabilirsiniz.

    Size varsayarsak @DrEval Bahsettiğiniz Benedikt Koppel cevabı aslında ustaca farklı /<space>vs /\s. Buradaki öneriyi kullanmanın açık ve hızlı olmadığını düşünüyorum.
    icc97

    14

    Aşağıdaki kod Christian Brabandt'ın cevabına dayanıyor ve OP'nin istediklerini yapıyor gibi görünüyor:

    function! Whitespace()
        if !exists('b:ws')
            highlight Conceal ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
            highlight link Whitespace Conceal
            let b:ws = 1
        endif
    
        syntax clear Whitespace
        syntax match Whitespace / / containedin=ALL conceal cchar=·
        setlocal conceallevel=2 concealcursor=c
    endfunction
    
    augroup Whitespace
        autocmd!
        autocmd BufEnter,WinEnter * call Whitespace()
    augroup END
    

    Bu satırları kendinize ekleyin ~/.vimrcve hala mükemmel olmayan büyünün gerçekleştiğini görmek için yeni bir Vim oturumu başlatın .

    Varsayılan renkleri düzenlemekten ve karakteri gizlemekten çekinmeyin.


    Uyarı: *FuncBodysözdizimi grubunda birkaç dilde bulunan bir şey , orta noktanın gösterilmesini engeller. Bu çözümü nasıl daha güvenilir hale getireceğimizi bilmiyorum (henüz?).


    Ben "sözdizimi grubuna bağlı" demek istediğim bu skipwhite bayrağı ile birlikte syn anahtar kelimeler ile ilgili bir sorun olduğundan şüpheleniyorum.
    Christian Brabandt

    @ChristianBrabandt, evet, "Otomatik" yapmanın yanı sıra zaten yaptıklarının ötesine geçemedim.
    romainl

    1
    Evet, skipwhitesözdizimi grubundaki eşleşmeyi engelleyen sözdizimi kurallarındaki bağımsız değişkendir (tüm gruplarda bulunmasına izin verilmelidir).
    Christian Brabandt

    Girintiye arka plan ekleyen Girinti Kılavuzları ile bu işi güzel yapmanın bir yolu var mı ? Bunun arka plan rengini geçersiz kılmamasını sağlamaktan şüpheliyim, ancak bu önemsiz gibi görünüyor.
    Mike

    Beyaz alanın vurgulanması gerekli olmadığında nasıl devre dışı bırakılır? Bir tür kısa geçiş komutu arıyor.
    yuvaeasy

    11

    Bu soruya verilen diğer tüm cevaplardan hayal kırıklığına uğradım, çünkü hiçbiri boşluk karakterini yararlı bir şekilde vurgulamıyor. Boşlukları karakter olarak göstermek, sekmeleri ve boşlukları karıştırmanın zararlı olduğu beyaz boşluk biçimli diller için özellikle yardımcı olacaktır.

    Benim çözüm sekmeleri göstermek ve birden çok boşluğun altını çizmektir. Mrucci'nin cevabından ve bu öğreticiden ödünç alır . Sözdizimi vurgulama kullandığından, kalıcıdır:

    set list listchars=tab:\|\ 
    highlight Whitespace cterm=underline gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    autocmd ColorScheme * highlight Whitespace gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    match Whitespace /  \+/
    

    Bu kullanarak, sekmeler olarak görüntülenir |olarak ve boşluklar _ben kod stilleri karıştırma olduğumda çok kolay anlatmak için yapar.

    Bulduğum tek dezavantaj, bu snippet'in arka plan rengini içeriğe uyacak şekilde ayarlamaması (bir yorumdaki gibi).


    8

    yukarıdaki tüm cevaplar vim içinden boşlukları görünür kılmaya çalışmaktadır. Nokta olarak görünür alanlara sahip olmak konusunda gerçekten ısrar ediyorsanız, başka bir yaklaşım var ...

    Eğer vim içinde yapılamazsa, yazı tipinizi tamamen değiştirin. Ubuntu One Mono yazı tipini kopyaladım ve FontForge'u kullanarak düzenledim. Ayrı bir yazı tipi olarak kullanmak için yazı tipinin tam adını, ailesini, tercih edilen ailesini, uyumlu dolu (FontFoge'da yazı tipi bilgisindeki TTF Adları altında) değiştirmeyi unutmayın. Sadece boşluk karakterini ortada bir nokta olacak şekilde düzenleyin ve yazı tipini ~ / .fonts'a kaydedin Şimdi gvim'iniz veya tüm terminal için kullanabilirsiniz ... "!" karakterini kaldırır ve noktayı ortaya taşır. 5 dakikadan biraz fazla sürdü ...

    Not: boşluk karakterinin (0x20) değiştirilmesi, vim ekranında noktaların bulunmasının zorluğuna neden olur ... (ancak boşlukları sekmelerden ayırır ...)


    2
    Tüm ekranı noktalarla doldurma konusundaki notu okuyana kadar bu gerçekten iyi bir yaklaşım gibi geldi. : /
    friederbluemle

    3
    Yaratıcılık için puan! :-)
    jpaugh

    7

    Mevcut cevaplardan tam olarak ne istediğimi bulamadım. Aşağıdaki kod, tüm arka kısımları parlak kırmızı renkte vurgulayacaktır. Sadece aşağıdakileri ekleyin:.vimrc

    highlight ExtraWhitespace ctermbg=red guibg=red
    match ExtraWhitespace /\s\+$/
    autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
    autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
    autocmd InsertLeave * match ExtraWhitespace /\s\+$/
    autocmd BufWinLeave * call clearmatches()
    

    5
    :match CursorLine /\s\+/
    

    "görünmelerini sağlamak için boşlukları aramak zorundasınız" bitini önler, ancak afaict boşluklara hilightting olmayan şeyler yapmak için yapılandırılamaz. CursorLine herhangi bir hilighting grubu olabilir ve varsayılan temada düz bir alt çizgidir.


    Çok kötü olan bu yöntemi kullanarak sekmeler ve boşluklar arasındaki farkı söyleyemem, ancak bunun tek bir astar olmasını seviyorum.
    Rustavore

    5

    Boşluğu göstermek için özel karakterler kullanmayı seviyorum, daha net. Geçiş yapmak için bir harita bile hızlı bir kontrol için önemli bir özelliktir.

    Bu özellikleri 2004'ten beri güncellenmemiş eski bir vim komut dosyasında bulabilirsiniz:

    vim-scripts/cream-showinvisibles@vim.org

    Proje vim-scriptleri ve vundle sayesinde bu eklentiyi yeniden canlandırabilirsiniz

    vim-komut / krem ​​showinvisibles @ github

    Daha da iyisi, bu konudaki iki sentim, yapılandırılabilir bir kısayol eklemektir (önceden tanımlanmış yerine F4)

    bunu ~ / .vimrc dosyasına ekleyin

    Plugin 'albfan/cream-invisibles'
    
    let g:creamInvisibleShortCut = "<F5>" "for my F4 goto next error
    

    eklentiyi vim'e yükle

    :PluginInstall
    

    ve işte gidiyorsun


    5

    Unicode boşluk karakterlerini kapsamak için:

    set list
    set listchars=tab:│\ ,nbsp:·
    highlight StrangeWhitespace guibg=Red ctermbg=Red
    " The list is from https://stackoverflow.com/a/37903645 (with `\t`, `\n`, ` `, `\xa0` removed):
    call matchadd('StrangeWhitespace', '[\x0b\x0c\r\x1c\x1d\x1e\x1f\x85\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]')
    

    Sonuç:

    • sadece sıralı boşluk (U + 0020) tıpkı bir boşluk (" ") gibi görünür
    • sekme (U + 0009) " │ " (iki karakter: uzun bir boru ve ardından bir sıralı boşluk; gri renkte colorscheme murphy) gibi görünüyor
    • normal kırılmayan alan (U + 00A0) " ·" (bir karakter; gri renkte colorscheme murphy)
    • herhangi bir boşluk karakteri kırmızı " "

    1
    Terminalimin renklendirilmesi için "ctermbg = Red" eklenmesi için düzenlendi. Şahsen set listchars=tab:»\ ,space:·referans olarak kullandım.
    Johnny Wong

    @JohnnyWong Güncelleme için teşekkürler. Başlangıçta gözden geçirenler tarafından reddedildi, ama kodu kontrol ettik ve (şaşırtıcı bir şekilde) hem için çalışıyor gvimve vim.
    Kirill Bulygin

    1
    Parlak cevap, bu tam olarak Safari ve Firefox'ta oluşturulmayan dar ara boşlukları (Hex 202f) yakalamak için ihtiyacım olan şeydi.
    Chris Kobrzak

    4

    Kullanabilirsin

    :set list
    

    çizginin yapısını gerçekten görmek için. Sekmeleri ve yeni satırları açıkça göreceksiniz. Bir boşluk gördüğünüzde, gerçekten bir boşluktur.


    3

    aramayı vurgula

    :set hlsearch 
    

    içinde .vimrcolmasıdır

    ve boşluk sekmelerini ve satır başlarını ara

    / \|\t\|\r
    

    veya tüm boşluk karakterlerini arayın

    /\s
    

    boşluk olmayan tüm karakterler için arama yapma (boşluk karakterleri gösterilmez, böylece kelimeler arasındaki boşluk karakterlerini görürsünüz, ancak boşluk karakterlerini izlemezsiniz)

    /\S
    

    sondaki tüm boşluk karakterlerini göstermek için - satırın sonunda

    /\s$
    

    2

    Bu hack'leri .vimrc'de yorum olarak saklayın , bu nedenle kabukta basitçe:

    echo '
      " how-to see the non-visible while spaces
      " :set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
      " set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
      " :set list
      " but hei how-to unset the visible tabs ?!
      " :set nolist
      ' >> ~/.vimrc
    

    1
    :se list
    :se nolist
    

    :seyeter, :setgerekli değildir.


    1

    boşlukları da vurgulayabilirsiniz (boşlukları bir blokla değiştirmek):

    :%s/ /█/g
    

    (yazmadan önce geri alın)


    1

    Bunu .vimrc'ime eklemek benim için işe yarıyor. Çakışan başka bir şeyin olmadığından emin ol.

    autocmd VimEnter * :syn match space /\s/
    autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
    
    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.