gpt4 book ai didi

使用模式行突出显示 Vim bash 语法

转载 作者:行者123 更新时间:2023-12-05 08:55:00 26 4
gpt4 key购买 nike

根据许多在线文档(e.g.),我应该能够通过添加以下行来通过模式行启用 bash 语法突出显示:

# vim:let g:is_bash=1:set filetype=sh:

.vimrc 中:

filetype plugin indent on
syntax on
set modeline
set modelines=4

不幸的是,当我添加这些行时,我收到一条错误消息:

"packer/shunit2/include.sh" 85L, 2749C
Error detected while processing modelines:
line 85:
E518: Unknown option: let

第 85 行当然是上面的模式行。 (这是文件中的最后一行。)

为什么尽管有这么多页面建议它应该起作用,但错误消息是什么意思,以及如何更改此设置以便我的 bash 脚本以正确的 bash 语法突出显示打开?

最佳答案

不,that answer是错的。您不能在模型行 中定义变量,只能在那里设置(某些)选项(出于安全原因)。

要实现 bash 语法高亮,您有以下选择:

  • 在你的 ~/.vimrc 中全局 让 g:is_bash = 1。这是最简单的选项,但仅当您编辑的所有内容都是 Bash(不是 Korn shell 或任何其他 shell 方言)时才有效。
  • 正确设置shebang#!/bin/bash$VIMRUNTIME/syntax/sh.vim 会自动检测到它。
  • 编写 Bash 文件的自定义检测。如果您可以根据文件位置/名称执行此操作,:autocmd BufNew,BufRead {pattern} let b:is_bash = 1 就可以了。如果需要检查文件内容,将代码放在~/.vim/ftplugin/sh_bashdetection.vim 左右。
  • 如果你所有的 Bash 文件都在某些项目/目录中,本地 vimrc 插件(我推荐 localrc plugin(尤其是 my own enhancements ),它甚至允许本地文件类型特定的配置) .这样,您可以将命令 (let b:is_bash = 1) 放入该项目根目录中的 .lvimrc 文件中,它会自动应用设置该子目录树中的所有文件。
  • 如果你真的想走modeline路线,let-modeline plugin实现这一点。

关于使用模式行突出显示 Vim bash 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47563208/

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