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

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...