我已经尝试在 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-flag
为nil
不执行任何操作。
我真正想要的是:当且仅当我按下 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
函数。