emacs如何将标签大小设置为4个字符?

时间:2013-03-25 21:55:02

标签: emacs elisp

我的标签尺寸有问题。它总是2个字符,但我想要4个。

我的代码:

(defun my-c++-mode-hook ()
    (set (make-local-variable 'compilation-parse-errors-filename-function)
  'process-error-filename)
    (local-set-key (kbd "C-c b") 'compile)       ; KBD
    (setq compile-command "scons")
    (setq indent-tabs-mode nil)
    (setq tab-width 4)
    (setq c-basic-indent 4)
    )
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
(add-hook 'c-mode-common-hook 'my-c++-mode-hook)

因此。当我打字时:

void f() {
  // Here I need 4 chars but I'm getting only 2 when I'm pressing TAB
}

2 个答案:

答案 0 :(得分:1)

basic offset表示其他缩进基于它。所以,

for () {
....if () { // 4 spaces
........ // 8 spaces
....}
}

引用Gnue Emacs

此样式变量保存缩进级别

之间的基本偏移量

所以你不会得到:

for () {
....if () { // 4 spaces
...... // 6 spaces
....}
}

但当然,如果你愿意,你可以这样做。

通常,建议使用空格而不是标签:

(setq-default indent-tabs-mode nil)

使用M-x untabify为特定缓冲区执行此操作。

答案 1 :(得分:0)

我在Post找到的正确答案:

(setq c-basic-offset 4)

但是我仍然不明白是什么(setq c-basic-indent 4)以及为什么这么多建议在互联网上使用它?