You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim脚本执行外部命令丢失#开头行的问题解决需求

解决Vim中无法显示以#开头行的问题

问题出在你调用了shell的echo命令,当行首为#时,shell可能会将其误解析为注释(即便被双引号包裹,也可能出现解析异常)。避免shell交互就能彻底解决这个问题,改用Vim内置的echo命令即可:

修改vim/core.vim中的F1函数:

" vim/core.vim
function! F1()
        for line in getline(1, "$")
                echo line
        endfor
endfunction

再次执行原命令:

vim -es "+source vim/core.vim|call F1()|q" src/main.c

这样所有行(包括以#开头的行)都会正常输出。

如果出于特定需求必须使用shell的echo,可以将行用单引号包裹(单引号在shell中会完全保留字符字面量),修改后的函数如下:

" vim/core.vim
function! F1()
        for line in getline(1, "$")
                execute '!echo '\'''. line . '\'''
        endfor
endfunction

内容的提问来源于stack exchange,提问作者tahzibi.jafar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:12:33