【发布时间】:2017-06-08 10:15:45
【问题描述】:
我无法将 Emacs 设置为使用 Javascript。当我按下“{”和“}”时,我希望 Emacs 自动缩进。当我在 C 上编写代码时,它工作得非常好。当我按“}”时,括号取代了它的位置。 我希望看到这样的东西:
但我明白了:
我不明白为什么括号仍然存在。
您能告诉我,我该怎么做才能使它正确吗?
我想,我需要在我的 .emacs 文件中添加一些东西,不是吗?
这是我的 .emacs:
(setq c-default-style "bsd"
c-basic-offset 4)
(setq-default c-basic-offset 4
tab-width 4
indent-tabs-mode nil)
(setq make-backup-files nil
auto-save-default nil
auto-save-list-file-name nil)
(global-set-key (kbd "RET") 'newline-and-indent)
(show-paren-mode t) ; Highlight expression between {}, (), []
(setq show-paren-style 'parenthesis) ; parenthesis | expression | mixed
(add-hook 'html-mode-hook
(lambda ()
;; Default indentation is usually 2 spaces, changing to 4.
(set (make-local-variable 'sgml-basic-offset) 2)
(setq tab-width 2)
)
)
(setq font-lock-maximum-decoration
'((html-mode . 1)))
(setq column-number-mode t)
;(electric-pair-mode t)
;(setq electric-pair-preserve-balance nil)
;(electric-indent-mode -1)
; 80 letters rule (highlight)
(setq-default
whitespace-line-column 78
whitespace-style '(face lines-tail))
(add-hook 'prog-mode-hook #'whitespace-mode) ; only if I write code
(add-hook 'text-mode-hook #'whitespace-mode) ; and the other cases
; Use all c-mode settings when I code on javascript (indent, tab-width, ...)
;(add-hook 'js-mode-hook 'c-mode)
;(add-hook 'js-mode-hook #'c-default-style)
;(add-to-list 'auto-mode-alist '("\\.js\\'" . c-mode))
【问题讨论】:
-
你是用自带的js-mode还是other js modes?
-
我想说你的
(global-set-key (kbd "RET") 'newline-and-indent)行可能有问题。你可以试试没有吗? (之后,indent-according-to-mode?) -
内置js模式。
标签: javascript emacs indentation auto-indent