题
我一直没能得到Emacs从8空间标签4空间标签的时候按的 卡 在缓冲器与的主要模式 text-mode
.我已经加入下面的我 .emacs
:
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
;;; And I have tried
(setq indent-tabs-mode nil)
(setq tab-width 4)
无论如何我改变我 .emacs
文件(或我的缓冲区的地方变量)的 卡 按钮总是做同样的事情。
- 如果没有上面的文字,缩进 8 空间
- 如果有的文字在前线,缩进到开始第二个字
就像我爱Emacs这是越来越烦人。是否有办法使Emacs的至少缩4空间时,有没有的文字在前线?
解决方案
(customize-variable (quote tab-stop-list))
或加入 卡-名单 进入 定制集变量 在 .emacs 文件:
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(tab-stop-list (quote (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120))))
其他提示
简短的回答:
关键一点是要告诉emacs插入任何你想要当缩进,这样做是通过改变缩进行功能。这是比较容易改变它插入一个标签,然后变化的标签进4位比它更改插入4的空间。以下配置会解决你的问题:
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)
说明:
一个重要功能的各个主要的 模式是定制的关键 缩进适当的语言 编辑。
[...]
缩进行功能的变量 功能可以使用(和 各种各样的命令,如打电话时 缩进区域)缩进的电流 线。该命令 缩进-根据对模式并没有更多的 比这个叫功能。
[...]
默认值是缩相对 对于许多模式。
从缩相关@emacs手册:
缩进相关空间出在下一个 缩进点在前一个非空路线。
[...]
如果以前的非空白线没有 缩点超出柱点 开始,`tab-对-卡停'是做了 代替。
只是改变价值的缩进行功能的入选项功能并配置的标签插入为4的空间。
更新: 由于Emacs24.4:
tab-stop-list
现在是隐含地扩展至无穷。它的默认值是改变nil
这意味着停止每一个标签tab-width
列。
这意味着不再需要设置 tab-stop-list
在以下所示,为你可以把它设定为 nil
.
原来的答案。
它总是痛苦,我稍微看到的东西喜欢 (setq tab-stop-list 4 8 12 ................)
时 number-sequence
功能是坐在那里等待被使用。
(setq tab-stop-list (number-sequence 4 200 4))
或
(defun my-generate-tab-stops (&optional width max)
"Return a sequence suitable for `tab-stop-list'."
(let* ((max-column (or max 200))
(tab-width (or width tab-width))
(count (/ max-column tab-width)))
(number-sequence tab-width (* tab-width count) tab-width)))
(setq tab-width 4)
(setq tab-stop-list (my-generate-tab-stops))
你可能会发现更容易设置的标签如下:
M-x customize-group
在 Customize group:
迅速进入 indent
.
你会看到的一幕在这里你可以集所有你所缩进的选项,并设定他们为本届会议或保存他们的所有未来的会议。
如果你这样做你就会想到 设立一个定制的文件.
(setq tab-width 4)
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80))
(setq indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)
(setq c-default-style "linux")
(setq c-basic-offset 4)
(c-set-offset 'comment-intro 0)
这适用C++编码和评论里面太
(defun my-custom-settings-fn ()
(setq indent-tabs-mode t)
(setq tab-stop-list (number-sequence 2 200 2))
(setq tab-width 2)
(setq indent-line-function 'insert-tab))
(add-hook 'text-mode-hook 'my-custom-settings-fn)
这个问题不引起缺失的标签停止;就是这emacs有(新的吗?) 标签的方法称为缩相对,似乎旨在线上表格数据。TAB键是映射的方法缩进对项命令,其中要求任何方法的变量缩进行功能设置为,这是缩相关方法的文本模式。我还没想出一个好办法替代的缩进行功能的变量(文本模式挂钩是不工作,所以,也许是得到重置之后的模式挂钩运行?) 但是,一个简单的方法来摆脱这种行为是chuck的意图为项命令方法通过设置标签,以更简单的签到制表方法:
(定义的关键文本的模式--地图(大骨节病"标签")'tab-对-卡停)
试试这个:
(add-hook 'text-mode-hook
(function
(lambda ()
(setq tab-width 4)
(define-key text-mode-map "\C-i" 'self-insert-command)
)))
这将使卡总是插入一个字面签字与签停止每4个字符的(但仅仅在案文的模式)。如果那不是你要求,请描述的行为你愿意看到的。
你可以添加这些行的代码给你的.emacs的文件。它增加一个钩子文本的方式使用插入标签,而不是缩相关。
(custom-set-variables
'(indent-line-function 'insert-tab)
'(indent-tabs-mode t)
'(tab-width 4))
(add-hook 'text-mode-hook
(lambda() (setq indent-line-function 'insert-tab)))
我希望这有所帮助。
只是改变式c设定的风格,是对我来说足够。
添加这个给你的.emacs文件:
这将设置宽度,这一选项显示2个字符的(变数2到任何你想要的)
(setq default-tab-width 2)
确保emacs是实际上使用标签,而不是空间:
(global-set-key (kbd "TAB") 'self-insert-command)
此外,默认的用emacs的时候退格上一个标签是为了将其转换到空间和随后删除一个空间。这可以令人讨厌。如果你想要这只是删除该选项,可以这样做:
(setq c-backspace-function 'backward-delete-char)
享受!
定义可以影 (setq tab width 4)
所以要么使用 setq-default
或者让自知道你在做什么。我也有问题,类似于运和固定它有这独自一人,没有必要调整 tab-stop-list
或任何 insert
职能:
(custom-set-variables
'(tab-width 4 't)
)
发现它很有用添加这之后立即(从emacsWiki):
(defvaralias 'c-basic-offset 'tab-width)
(defvaralias 'cperl-indent-level 'tab-width)
最好的答案没有工作,直到我写这个的。emacs文件:
(global-set-key (kbd "TAB") 'self-insert-command)
这是唯一的解决办法,保持一个从越来越插入对我来说,没有序列或转换的标签空间。这两个似乎充足,但浪费:
(setq-default
indent-tabs-mode nil
tab-width 4
tab-stop-list (quote (4 8))
)
注意, quote
需要两个数字的工作(但不更多!)。
此外,在大多数主要方式(Python
例如)、压痕是自动的,在Emacs。如果你需要缩以外的自动缩,使用:
M-我
你有没有试过
(setq tab-width 4)
(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)
顺便说一下, C模式, 我加入 (setq-default c-basic-offset 4)
到。emacs。看看 http://www.emacswiki.org/emacs/IndentingC 对于细节。
从我的初始文件,不同的,因为我想要的空间,而不是标签:
(add-hook 'sql-mode-hook (lambda () (progn (setq-default tab-width 4) (setq indent-tabs-mode nil) (setq indent-line-function 'tab-to-tab-stop) (modify-syntax-entry ?_ "w") ; now '_' is not considered a word-delimiter (modify-syntax-entry ?- "w") ; now '-' is not considered a word-delimiter )))