完全禁用 Emacs 的 JavaScript 模式自动缩进

完全禁用 Emacs 的 JavaScript 模式自动缩进

我已经尝试在 JavaScript 中禁用 Emacs 中的自动缩进三个小时了,但找不到(好的)解决方案。

我的 Emacs 版本是 23.3.1 (i486-pc-linux-gnu,GTK+ 版本 2.24.3),至少它是这么说的。它是 Debian Linux (Wheezy) 的标准软件包,GUI 软件包。

我发现emacs javascript 自动缩进(和其他人),但不想安装另一种模式只是为了删除自动缩进(并且没有保证它会与它一起工作),基本模式也禁用语法突出显示,我想保留它,Cc Cl 不执行任何操作,设置javascript-auto-indent-flagnil不执行任何操作。

我真正想要的是:当且仅当我按下 TAB 键时插入制表符。“如果”部分有效,但“仅当”部分无效。我想知道为什么这么难?

答案1

在 Emacs 的 Javascript 模式中,字符}被绑定到函数js-insert-and-indent。你可以将它绑定到只需将此代码放入.emacs启动文件中即可插入自身:

(defun my-js-mode-hook ()
  "My personal Javascript mode hook."
  (local-set-key (kbd "TAB") 'tab-to-tab-stop)
  (local-set-key (kbd "RET") '(lambda () (interactive) (newline 1)))
  (local-set-key (kbd "SPC") 'self-insert)
  (local-set-key (kbd "}") 'self-insert))

(add-hook 'js-mode-hook 'my-js-mode-hook)

并重新启动 Emacs。如果您发现其他类似的字符,则可以local-set-key在钩子函数中添加更多调用,每个调用都会将不同的字符传递给该kbd函数。

相关内容