gpt4 book ai didi

vim - 有没有办法在 vim 中获取 bool 选项的字符串表示形式?

转载 作者:行者123 更新时间:2023-12-04 15:57:10 25 4
gpt4 key购买 nike

我正在使用 AppendModeline向我的 vim 文件添加模式行的函数:

" Append modeline after last line in buffer." Use substitute() instead of printf() to handle '%%s' modeline in LaTeX" files.function! AppendModeline()  let l:modeline = printf(" vim: set ts=%d sw=%d tw=%d :",        \ &tabstop, &shiftwidth, &textwidth)  let l:modeline = substitute(&commentstring, "%s", l:modeline, "")  call append(line("$"), l:modeline)endfunction

但我想扩展它。应支持添加expandtab的当前值。
使用 &expandtab,我可以获得当前值的数字表示。但是 vim 不支持像 set et=0 这样的东西。必须设置[no]expandtab
我真的需要测试 &expandtab 并将 expandtabnoexpandtab 附加到 l:modeline 还是有办法获取当前值的字符串表示形式?
set expandtab? 显示[no]expandtab,但我不知道如何在脚本中使用它(或者是否可能)。

最佳答案

是的,你必须这样做。使用 :redir 可以捕获输出,但是基于 :redir 的解决方案至少需要四行长的正则表达式来获取值。使用 &et 更简洁:

… printf("… %set …", …, &expandtab ? '' : 'no', …)

注意:%set%s 后接 et(expandtab 的缩写)。单词 set 在这里只是一个意外。

关于vim - 有没有办法在 vim 中获取 bool 选项的字符串表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992088/

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