gpt4 book ai didi

function - Vimscript 函数范围仅适用于第一行

转载 作者:行者123 更新时间:2023-12-04 13:45:48 24 4
gpt4 key购买 nike

我正在尝试创建自己的评论功能,用于 vimscript 学习。

我做了以下事情:

function! Comment() range
for line_number in range(a:firstline, a:lastline)
let current_line = getline(line_number)
let current_line_commented = substitute(current_line, '^', '# ', "")
call setline(line_number, current_line_commented)
endfor
endfunction

command! -range Comment call Comment()

但是,当调用具有给定范围 (:'<,'>Comment) 的命令时,只有选择的第一行得到 #添加在前面,没有其他错误报错。

从替换范围中获取每一行我缺少什么?

最佳答案

与映射不同(在可视模式下调用时,会自动将 :'<,'> 附加到函数 :call 前),自定义命令需要显式传递范围:

command! -range Comment <line1>,<line2>call Comment()

:help :command-range不幸的是只提到了相关的<count> ,但您可以在 :help <line1>. 上找到更多信息

关于function - Vimscript 函数范围仅适用于第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28968745/

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