Вот функция для реализации того, что вы просите, и немного больше.
- Заполняет строку от текущего конца строки, а не от позиции курсора
- Это заставляет один пробел между тем, что в настоящее время на линии и повторяющихся символов
- Позволяет указать любую строку, чтобы заполнить оставшуюся часть строки
- Он использует настройку vim
textwidth
, чтобы определить, какой длины должна быть линия
(а не просто предположить 80 символов)
Функция определяется следующим образом:
" fill rest of line with characters
function! FillLine( str )
" set tw to the desired total length
let tw = &textwidth
if tw==0 | let tw = 80 | endif
" strip trailing spaces first
.s/[[:space:]]*$//
" calculate total number of 'str's to insert
let reps = (tw - col("$")) / len(a:str)
" insert them, if there's room, removing trailing spaces (though forcing
" there to be one)
if reps > 0
.s/$/\=(' '.repeat(a:str, reps))/
endif
endfunction
Вставьте это в ваш .vimrc
и создайте для него отображение, например,
map <F12> :call FillLine( '-' )
Затем вы можете нажать F12
, чтобы применить дефисы к текущей строке
Примечание: это, вероятно, может быть легко расширено, чтобы воздействовать на выбор в режиме VISUAL, но в настоящее время работает только для отдельных строк. *