微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用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模式下的选择,但目前仅适用于单行。

原文地址:https://www.jb51.cc/vim/388400.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐