如何解决Vim ALE:修复程序标记检测外壳文件类型
我搜索过的.vimrc文件在其 shfmt 修复程序中没有自动保存'-w'的标志。 E.g.:
let g:ale_sh_shfmt_options = '-i 2 -s'
如您所见,不是-w
标志。
在使用bash时,必须提供此标志才能自动保存某些修复程序的更改:
(bash) $ shfmt --help
# -w write result to file instead of stdout
通过尝试和失败,令人惊讶的是,在我的$ MYVIMRC中,这无法自动保存修订:
let g:ale_sh_shfmt_options = '-w'
直到我没有找到以下行之前,没有自动保存的成功(此后我可以发表评论):
let g:ale_sh_shfmt_options = '-i 2'
有人可以向我解释这种好奇的行为吗?请。
我的感觉是,一旦添加了其他标志,Vim-ALE就会将标志-w
添加到 shfmt 中,但不会那样。
但是这种感觉与代码不符,对吗?我不是vimscript专家,但是在https://github.com/dense-analysis/ale/blob/master/autoload/ale/fixers/shfmt.vim中,所有被覆盖的是默认的 shfmt 缩进标记将固定器缩进更改为当前Vim缓冲区缩进(x-tab或y-space)。也许所有这些都是不好的巧合,当我采购$ MYVIMRC时,实际花费的时间比预期的要长。
我的问题实际上比仅仅shfmt
更普遍,这是关于 Vim-ALE覆盖的固定器默认标志(在$ MYVIMRC中没有明确命令的情况) 。为了找出答案,每个修复者都应该阅读其ALE vimscript?像shfmt-Vim-ALE。
我求求你,答案可以避免C ++ compile-config json文件主题吗?这似乎是很先进的,并且不确定是否相关(我在搜索当前问题时才发现它)。
PD:我的$ MYVIMRC与{ALE和shfmt}代码相关:
Plug 'dense-analysis/ale'
autocmd FileType python,json,sh :let b:ale_fix_on_save = 1
let g:ale_fixers = {
\'*': ['remove_trailing_lines','trim_whitespace'],\'sh': ['shfmt'],\}
" auto save NOT explicity needed (override bash shfmt cmd,which does need -w flag):
" let g:ale_sh_shfmt_options = '-w'
" Indent by 2 spaces ($shfmt --help;):
let g:ale_sh_shfmt_options = '-i 2'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。