* .zsh文件以默认模式打开(对我来说是文本模式).但是,sh-mode实际上是多种模式,包括zsh,bash等的行为.如何告诉emacs在sh-mode的zsh风格中专门打开* .zsh文件?
解决方法
sh-mode的味道是从shebang行(脚本的第一行)中自动检测的.如果您有“#!/ bin / zsh”,则会假设zsh并且(例如)autoload将被识别为关键字.如果第一行是“#!/ bin / bash”,则无法识别自动加载
要使emacs将* .zsh文件识别为shell脚本,只需将其添加到init文件中:
(add-to-list 'auto-mode-alist '("\\.zsh\\'" . sh-mode))
当你不想使用shebang时选择一种风味的程序化方法是在sh模式缓冲区中这样做:
(sh-set-shell "zsh")
所以在你的情况下你需要的东西(除非你使用shebang)是更新auto-mode-alist,如上所述
(add-hook 'sh-mode-hook (lambda () (if (string-match "\\.zsh$" buffer-file-name) (sh-set-shell "zsh"))))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。