如何使用 ' ' 字符而不是 2(或 1)个空格使 vanilla emacs 正确缩进 C/C++ 代码

问题描述 投票:0回答:1

我的 emacs 总是使用 2 个(或 1 个)空格而不是像我希望的那样使用 ' ' 字符来缩进我的 C/C++ 代码。我已经尝试过

(setq indent-tabs-mode t)
,但没有任何作用。执行
M-i
确实会插入一个实际的制表符,但是一旦我输入“()”或“;”,它就会删除“ ”字符并插入 2 个空格。

是的,我尝试过使用 c++-mode-hook,但它使用 4 个空格而不是 ' ' 字符。

另外,如果不可能,我宁愿禁用自动缩进。

这是我的 init.el 文件:

;;Start package.el with emacs:
(require 'package)
;;Add Melpa to repository list:
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;;Initialize package.el:
(package-initialize)

;;Install auto-complete:
(package-install 'auto-complete)
(require 'auto-complete)
;;Use default config for every startup:
(require 'auto-complete-config)
(ac-config-default)

;;Install yasnippet:
(package-install 'yasnippet)
(require 'yasnippet)
(yas-global-mode 1)

;;Install auto-complete-c-headers mode:
(package-install 'auto-complete-c-headers)

;;Inhibits startup message: 
(setq inhibit-splash-screen t)

;;Make emacs use tabs instead of spaces for indenting:
(setq indent-tabs-mode t)

;;Turn on electric pair mode (ie. auto-close brackets):
(electric-pair-mode 1)

;;Turn on gdb-many-windows mode:
(setq gdb-many-windows t)

PS。我发现 emacs 配置文件格式非常混乱,而且我根本不知道 elisp 之类的。

PS。如果有某种 emacs 已经可以做到这一点并且适合用作 C/C++ IDE,那么请告诉我。

emacs indentation
1个回答
0
投票

indent-tabs-mode
变量是buffer-local,这意味着如果您使用
setq
,则更改仅适用于本地缓冲区 - 在您的情况下是
init.el

相反,您可以在 C++ 模式的钩子中自定义它,如下所示:

(defun my/c++-hook ()
  (setq indent-tabs-mode t)
  (setq tab-width 4)
  )
(add-hook 'c++-mode-hook 'alexott/c-c++-hook)

附注您可以查看我的 CCMode 配置

© www.soinside.com 2019 - 2024. All rights reserved.