Vim: dividir janelas automaticamente em 79 colunas

Como um usuário viciado em Vim que passa a maior parte do tempo programando em Python, gosto de dividir minhas janelas em exatamente 79 colunas, como uma convenção de codificação definida pelo PEP 8 .

Cole o código abaixo em seu .vimrcse você também quiser esse comportamento.

function! SplitByColumnSize(col)
let l:s_s = &nu ? a:col + &numberwidth : a:col
let l:s_t = trunc(round(winwidth(0) / round(l:s_s)))
let l:s_c = 1

" Split window s_t times
while l:s_c < l:s_t

vne

wincmd w

let l:s_c = l:s_c + 1

endwhile


wincmd H


let l:s_c = 1


"
Resize splits
while l:s_c < l:s_t
exe
'vert resize '.l:s_s
wincmd w

let l:s_c = l:s_c + 1
endwhile

endfunction


command
PySplit call SplitByColumnSize(79)

" Comment the line below to not split at startup
PySplit

Se você quiser dividir as janelas por conta própria, apenas comente a última linha e chame o :PySplitcomando quando precisar.

Fechar buffers sem bagunçar as divisões vá para protip ↠

O mapa a seguir permite que você feche um buffer sem perder as divisões. Basta digitarc

Depende da configuração do mapleader. Vejo:help leader

nmap <leader>c :ene<CR>:bd #<CR>