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
相关产品推荐
相关产品推荐

