Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 缩进制表符模式仍使用空格_Emacs_Indentation - Fatal编程技术网

Emacs 缩进制表符模式仍使用空格

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

下面是我的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-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,我有个好消息。它从一开始就没有坏过。这是我的问题。我用退格测试了“如果是空格”。我不知道退格总是将制表符转换为空格。