0

我有标签大小的问题。它总是 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
}
4

2 回答 2

1

我在Post找到的正确答案:

(setq c-basic-offset 4)

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

于 2013-03-25T22:08:16.683 回答
1

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

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

引用GNU Emacs

此样式变量保存缩进级别之间的基本偏移量

所以你不会得到:

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

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

通常,建议使用空格而不是制表符:

(setq-default indent-tabs-mode nil)

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

于 2013-03-25T22:12:54.467 回答