gpt4 book ai didi

vim - vim中最长的一行?

转载 作者:行者123 更新时间:2023-12-03 21:19:37 24 4
gpt4 key购买 nike

是否有确定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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com