是否有确定vim中最长行长度的命令?并在文件开头附加该长度?
最佳答案
Gnu 的 wc 命令有一个 -L --max-line-length 选项,它打印出文件的最大行长度。见 gnu man wc . freebsd wc 也有-L,但没有--max-line-length,见freebsd man wc .
如何从vim使用这些?命令:
:%!wc -L
将通过 wc -L 过滤打开的文件并使文件的内容成为最大行长度。
要保留文件内容并将最大行长度放在第一行,请执行以下操作:
:%yank
:%!wc -L
:put
而不是使用 wc,Find length of longest line - awk bash描述如何使用 awk 查找最长行的长度。
好的,现在是一个纯粹的 Vim 解决方案。我对脚本有点陌生,但这里是。以下内容基于 textfilter 中的 FilterLongestLineLength 函数.
function! PrependLongestLineLength ( )
let maxlength = 0
let linenumber = 1
while linenumber <= line("$")
exe ":".linenumber
let linelength = virtcol("$")
if maxlength < linelength
let maxlength = linelength
endif
let linenumber = linenumber+1
endwhile
exe ':0'
exe 'normal O'
exe 'normal 0C'.maxlength
endfunction
command PrependLongestLineLength call PrependLongestLineLength()
将此代码放在 .vim 文件(或您的 .vimrc)中并 :source 文件。然后使用新命令:
:PrependLongestLineLength
谢谢,搞清楚这个很有趣。
关于vim - vim中最长的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075276/