Cara mengubah cara vim menampilkan garis yang diciutkan / dilipat

5

Bagaimana saya bisa mengubah cara vim menampilkan garis yang diciutkan / dilipat? Saya ingin menunjukkan nomor baris yang tersembunyi di baris ekor tetapi tidak kepala. Saya telah mencari Google dan mencari vim wiki tetapi tidak menemukan petunjuk.

more pretty vim fold format

Gaya lipatannya persis seperti sisi kanan pic.

pambda
sumber
Setelah melihat " :help fold-foldtext "Saya tidak berpikir apa yang Anda inginkan dimungkinkan tanpa menambal kode inti Vim.
Heptite

Jawaban:

8

Anda bisa bermain dengan metode yang dijelaskan dalam posting blog ini :

function! NeatFoldText()
    let line = ' ' . substitute(getline(v:foldstart), '^\s*"\?\s*\|\s*"\?\s*{{' . '{\d*\s*', '', 'g') . ' '
    let lines_count = v:foldend - v:foldstart + 1
    let lines_count_text = '| ' . printf("%10s", lines_count . ' lines') . ' |'
    let foldchar = matchstr(&fillchars, 'fold:\zs.')
    let foldtextstart = strpart('+' . repeat(foldchar, v:foldlevel*2) . line, 0, (winwidth(0)*2)/3)
    let foldtextend = lines_count_text . repeat(foldchar, 8)
    let foldtextlength = strlen(substitute(foldtextstart . foldtextend, '.', 'x', 'g')) + &foldcolumn
    return foldtextstart . repeat(foldchar, winwidth(0)-foldtextlength) . foldtextend
endfunction

set foldtext=NeatFoldText()

Ada banyak , varian , sebenarnya ; dan bahkan ada vimcast tentang hal itu.

romainl
sumber