我正在学习当前的Emacs而我正在尝试设置我的初始化文件。 目前它看起来像这样(在网络的某个地方找到):
(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)
(global-set-key (kbd "TAB") 'self-insert-command)
(setq default-tab-width 4)
(setq tab-width 4)
(setq c-basic-indent 4)
但它的行为与Vim的标签风格不同。
我只是希望它在使用标签时表现得像Vim。 这意味着不用空格替换制表符(我认为默认情况下Emacs会这样做)。
这样每个人都可以按首选标签宽度编辑文件。我通常使用4作为标签宽度。当我按Backspace时,它将向后移动相同的数字,这意味着如果我将tab设置为4并按Tab键,那么在按下Backspace后它将返回4个字符。 它也应该总是使用4个空格作为标签。因为有时在emacs中它不会这样做。
答案 0 :(得分:6)
可以配置Vim的标签处理,因此它不能很好地描述您想要做什么,但是大部分描述的其余部分都有足够的信息。
处理标签的最简单方法是永远不要使用它们。因此,如果以您喜欢的方式设置标签需要一些工作,请不要感到惊讶。
您已设置 Tab 键以插入制表符。这不是Emacs中的自定义:通常 Tab 键用于缩进当前行。您所做的就是默认值,但语言特定的模式仍然可以使 Tab 缩进。我假设你加入c-basic-indent
你正在研究C代码;所以你需要告诉C模式你不希望 Tab 缩进。这应该这样做:
(eval-after-load "cc-mode"
'(define-key c-mode-map (kbd "TAB") 'self-insert-command))
您遇到的另一件事是,默认情况下, Backspace 键会尝试向后移动一列而不是一个字符。以下内容应该删除一个字符:
(global-set-key (kbd "DEL") 'backward-delete-char)
(setq c-backspace-function 'backward-delete-char)