Emacs Lisp函数用于在4和8之间切换变量'tab-width'

use*_*880 1 emacs

我工作的源代码树的文件缩进了不同的选项卡值(更不用说空格)了,我能做的最好的事情就是设置emacs来使用在我修改的代码区域中找到的样式.而不是将Mx set-variable tab-width设置为4或8,用于在这两个值之间切换tab-width的键绑定将有很大帮助.

谢谢.

Tre*_*son 12

;; Obviously substitute your preferred key for <f8>
(global-set-key (kbd "<f8>") 'tf-toggle-tab-width-setting) ; ' "fix" highlighting

(defun tf-toggle-tab-width-setting ()
    "Toggle setting tab widths between 4 and 8"
    (interactive)
    (setq tab-width (if (= tab-width 8) 4 8))
    (redraw-display))
Run Code Online (Sandbox Code Playgroud)

根据建议的评论编辑添加重绘显示


pol*_*lot 5

不完全回答问题(给出的答案足够好),但您可能需要考虑设置每个文件的局部变量.例如,假设"//"表示使用您的语言发表评论,您可以将以下内容放在文件的第一行:

// -*- tab-width: 4 -*-
Run Code Online (Sandbox Code Playgroud)

每当您访问该文件时,emacs都会为您设置变量.有关基于文件的变量的更多信息,请参见http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html.

当然,如果文件是在一个小组之间共享的话,这可能不是一个选择 - 除非你能说服你的大学这个第一行评论是完全无害且非常有用的!