Как отцентрировать простой неформатированный текст?

Предположим, есть простейший текст и «экран» с 40 колонками (установлено через tw):

ЗАГОЛОВОК
---------------------------------------

Как в Vim сделать так, чтобы текст «ЗАГОЛОВОК» встал посередине? То есть, как-то так:

              ЗАГОЛОВОК
---------------------------------------

Понятное дело, что есть ответ «посчитать самому и отбить ручками», но вдруг есть готовое решение «из коробки»?


Ответы (1 шт):

Автор решения: Ainar-G

Спасибо участнику @stanislav-volodarskiy за более краткий ответ: команда center.


Предыдущий ответ:

Спасибо участнику @aleksandr-barakin за «пинок» в правильном направлении. На основе его ответа написал следующую функцию на VimScript:

function! CenterText()
  let l:header = substitute(getline('.'), '[[:space:]]\+', '', '')
  let l:l = (&tw - strdisplaywidth(l:header)) / 2
  let l:headerline = repeat(' ', l:l) . l:header
  call setline('.', l:headerline)
endfunction
→ Ссылка