gpt4 book ai didi

VIM: :set number 中的零索引行号

转载 作者:行者123 更新时间:2023-12-04 02:18:03 28 4
gpt4 key购买 nike

使用 VIM,可以很容易地显示任何给定文件的行号:

:set number

但是,行编号是 1 索引的,这意味着编号从 1 开始。
通常这正是我想要的,但是我用来编译代码的特定工具报告零索引行号 - 即行号从零开始。

如何更改 vim 的行编号以进行补偿,以便查看 vim 缓冲区中的数字对应于工具提供的错误,此外跳转到特定编号也对应于工具的编号。

也就是说,如果该工具告诉我第 98 行有错误,我想通过键入“98G”而不是“97G”跳转到该行,并且我希望该行(在 vim 中实际上是第 97 行)在行号列表中显示“98”。

编辑:

虽然我可以过滤工具的输出,虽然相当简单,但它并不是一项微不足道的任务,因为该工具还输出对应于每一行的十六进制值,具有相同的零索引形式,这是在信息消息中输出的好吧,不仅仅是错误,我有很多这样的项目。

最佳答案

我认为这是不可能的;然而,假设您的外部工具的输出只是文本,过滤输出以便编号为 1 索引以匹配 Vim 可能相当容易。你能给我们一个你的输出的例子吗?

编辑

或者,如果您从 Vim 调用外部命令,您可以执行以下操作(基本上,添加一个空行,运行外部命令,然后删除该空行):

command! RunMyExternalProgramme call RunMyExternalProgramme()

func! RunMyExternalProgramme()
" Save the old setting of makeprg
let s:savedMakePrg = &makeprg

" Save the screen layout
let s:savedView = winsaveview()

if config_file != ''
" Put a blank line at the start of the file
:1put! =''
" Save
write
" Change makeprg and run it
let &makeprg = '/path/to/programme -options etc'
make
" Delete the blank line
1d
" Save
write
endif

" Restore the screen layout (optional)
call winrestview(s:savedView)

" Restore the old setting of 'makeprg'
let &makeprg = s:savedMakePrg
endfunc

关于VIM: :set number 中的零索引行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176326/

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