加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:41:09 所属栏目:安全 来源:网络整理
导读:如何使用Vim将指定字符的剩余行填充到某列?例如,假设光标位于第四列,我想使用短划线填充当前行的剩余部分,直到第80列。我该怎么做? 这是一个实现你所要求的功能,还有一点。 它从当前行尾填充行,而不是光标位置 它强制在目前在线上和重复的字符之间的
如何使用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模式下的选择,但目前仅适用于单行。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读