如何使用Vim填充字符x到列y的行

前端之家收集整理的这篇文章主要介绍了如何使用Vim填充字符x到列y的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用Vim将指定字符的剩余行填充到某列?例如,假设光标位于第四列,我想使用短划线填充当前行的剩余部分,直到第80列。我该怎么做?
这是一个实现你所要求的功能,还有一点。

>它从当前行尾填充行,而不是光标位置
>它强制在目前在线上和重复的字符之间的一个空格
>它允许您指定任何字符串以填充其余的行
>它使用vim的文本宽度设置来决定线应该有多长
(而不是仅仅假定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模式下的选择,但目前仅适用于单行。

猜你在找的Bash相关文章