39

我刚刚从 VIM 迁移到 Spacemacs,并且想将选项卡宽度从默认 (\t?) 更改为只有 2 个空格。我找到了类似的命令

(setq-default indent-tabs-mode nil)

(setq tab-width 4) ; or any other preferred value
(defvaralias 'c-basic-offset 'tab-width)
(defvaralias 'cperl-indent-level 'tab-width)

我的问题是我不知道它们是否正确,我应该在 .spacemacs 文件中的哪个位置插入它们,以及它们的含义。

4

2 回答 2

54

我发现这篇文章: http ://blog.binchen.org/posts/easy-indentation-setup-in-emacs-for-web-development.html

我将这部分代码添加到任何函数之外的 .spacemacs 文件中(但在之前(defun dotspacemacs/user-init () ... )):

(defun my-setup-indent (n)
  ;; java/c/c++
  (setq c-basic-offset n)
  ;; web development
  (setq coffee-tab-width n) ; coffeescript
  (setq javascript-indent-level n) ; javascript-mode
  (setq js-indent-level n) ; js-mode
  (setq js2-basic-offset n) ; js2-mode, in latest js2-mode, it's alias of js-indent-level
  (setq web-mode-markup-indent-offset n) ; web-mode, html tag in html file
  (setq web-mode-css-indent-offset n) ; web-mode, css in html file
  (setq web-mode-code-indent-offset n) ; web-mode, js code in html file
  (setq css-indent-offset n) ; css-mode
  )

并添加了行

(my-setup-indent 2) ; indent 2 spaces width

变成(defun dotspacemacs/user-init () ... )这样:

(defun dotspacemacs/user-init ()
  "Initialization function for user code.
It is called immediately after `dotspacemacs/init', before layer configuration
executes.
 This function is mostly useful for variables that need to be set
before packages are loaded. If you are unsure, you should try in setting them in
`dotspacemacs/user-config' first."
  (my-setup-indent 2) ; indent 2 spaces width
  )
于 2016-04-19T13:16:11.990 回答
27

您也可以通过在 spacemacs 中standard-indent调用命令来自定义变量,将其设置为 2 。customize-variable这会将自定义保存到您的.spacemacs文件中。

编辑:

要运行“customize-variable”,请使用热键 Mx(在大多数系统上为 alt-x),然后在提示中键入 custom-variable。

您可以使用搜索来搜索“标准缩进”

于 2016-07-22T16:40:39.647 回答