Pertanyaan Beralih pertandingan di vimrc


Saya memiliki baris berikut di file vimrc saya:

hi ExtraWhitespace cterm=NONE ctermbg=green ctermfg=green guibg=green guifg=green
match ExtraWhitespace /\s\+$\|\t/

Garis-garis ini akan menyorot semua baris tanpa karakter selain spasi serta tab apa pun. Saya ingin menambahkan fungsi yang akan mengalihkan sorotan spasi putih.

map <F8> :call ToggleWhitespaceMatching()<cr>

Saya sudah mencoba menulis sendiri, tetapi belum bisa membuatnya berfungsi. Bisakah seseorang menyarankan fungsi untuk menyelesaikan ini. Juga, saya ingin cocok untuk menjadi, secara default.


4
2018-06-29 21:15


asal


Jawaban:


Ide yang sama dengan kev's tetapi matikan Hilighting bukan pertandingan

let s:hilightws = 1

hi ExtraWhitespace cterm=NONE ctermbg=green ctermfg=green guibg=green guifg=green
hi link MaybeExtraWhitespace ExtraWhitespace
match MaybeExtraWhitespace /\s\+$/    

fun ToggleWhitespaceMatching()
  if s:hilightws
    hi link MaybeExtraWhitespace NONE
    let s:hilightws = 0
  else
    hi link MaybeExtraWhitespace ExtraWhitespace
    let s:hilightws = 1
  endif
endfun

map <F8> :call ToggleWhitespaceMatching()<CR>

7
2018-06-29 21:36