Emacs 缩进制表符模式仍使用空格
下面是我的init.el脚本。它正在加载,因为列指示器可见。不管如何编辑任何C文件,当我只需要制表符时,tab键仍会产生4个空格(Emacs 缩进制表符模式仍使用空格,emacs,indentation,Emacs,Indentation,下面是我的init.el脚本。它正在加载,因为列指示器可见。不管如何编辑任何C文件,当我只需要制表符时,tab键仍会产生4个空格(\t)。我从未使用过lisp,而且我是emacs新手,怎么了 (setq-default indent-tabs-mode t) (require 'fill-column-indicator) (defun my-c-mode-hook () (setq-default c-default-style "bsd" c-basi
\t
)。我从未使用过lisp,而且我是emacs新手,怎么了
(setq-default indent-tabs-mode t)
(require 'fill-column-indicator)
(defun my-c-mode-hook ()
(setq-default c-default-style "bsd"
c-basic-offset 4
tab-width 4
indent-tabs-mode t)
(c-set-offset 'substatement-open 0)
(fci-mode))
(add-hook 'c-mode-hook 'my-c-mode-hook)
试试这个:
(setq c-default-style“bsd”)
(卸下my-c-mode-hook()
(setq c-基本-偏移量4
标签宽度4
缩进制表符(模式t)
(c-设置-偏移“子状态打开0)
(fci模式)
(添加挂钩'c-mode-hook'my-c-mode-hook)
变量有一个全局值,可能还有一个缓冲区局部值
此外,某些变量在设置时会自动使用缓冲区局部值。这些变量包括c-basic-offset
、制表符宽度
、和缩进制表符模式
(如果通过c-hv进行描述,您可以自己看到)
setq default
设置变量的全局值,但在c-mode-hook
运行时,缓冲区局部值已经建立,因此在该点设置默认值并不是您真正想要的,因为它不会影响现有的局部值(尽管这取决于模式的工作方式,但这样做可能会导致将来的缓冲区具有所需的值)
setq
在存在缓冲区局部值时设置缓冲区局部值(否则设置全局值),因此这是您希望用于大多数这些变量的值
c-default-style
相反,它不会自动缓冲本地,因此使用c-mode-hook
设置它应该没有任何意义。我们只需设置它的(全局)值一次。感谢您提供的信息,不幸的是,这不起作用。我正处于~/.emacs.d/init.el
文件中唯一的代码是您发布的代码的位置。Atlas,当我打开一个新的emacs进程时,我打开临时缓冲区,并运行M-x c-mode
。我继续键入main(){
。这会自动将我缩进4个空格:(。即使我手动缩进,我也会得到4个空格。仅供参考,根本没有~/.emacs
文件。我还想添加基本模式使用\t
很好。我无法复制你的问题。你能运行emacs-Q
然后粘贴上面的代码(减去(fci模式)吗
呼叫,因为这不是标准)进入scratch缓冲区,使用M-x eval buffer
对其进行评估,然后查看是否出现问题?如果没有,则说明是您的配置中存在其他原因造成的。此外,M-x emacs version
报告了什么?因此,我实际上跳到emacs IRC上,并与长者交谈。他们无法复制解决我的问题。我使用了emacs-qtmp.c
然后运行M-xc-set-style RET-bsd
。我在缩进上得到了8个空格,长者(包括你自己)有标签。更糟糕的是,我在另外两台debian服务器上安装了emacs,我重复了这个过程,甚至在那些服务器上也得到了空间。3台不同的机器,3次新安装,所有这些都不产生标签。版本24.5.1/lgw01-04
,24.4.1/trouble
,24.5.1/trouble
分别在我的桌面上,服务器A和服务器B上非常抱歉。Phils,我有个好消息。它从一开始就没有坏过。这是我的问题。我用退格测试了“如果是空格”。我不知道退格总是将制表符转换为空格。