我不想在emacs中使用制表符,我想对其进行设置,以便按Tab键可以根据文件类型插入一定数量的空格。例如,在处理python文件时,我想按tab键插入4个空格。这是我当前的.emacs文件
(setq-default indent-tabs-mode nil)
(setq tab-width 4)
(setq tab-stop-list (number-sequence 4 200 4))目前,每当我按tab键时,它只会在emacs认为合适的位置添加任何空格。例如,如果我打开一个python文件并按tab键,什么也不会发生。但是,如果我输入" if :“,然后在下一行按Tab键,它会添加4个空格。但是,如果我再次按tab键,就会返回到行的开头。我想我只是想让它添加一组空格,简单明了(除非有人能给我一个很好的理由,为什么在一行中循环使用Tab键是有用的)。
我想这样做的主要原因是因为我正在做一个项目,在这个项目中,注释遵循一种特定的格式,涉及到基于4个空格的缩进的使用。例如:
r"""
Return the value of the q-gamma function.
.. MATH::
qgamma(z,q) = \Gamma_q (z).
"""因此,对于带有"qgamma“的行,我必须以8个空格开头,我希望能够通过按tab键两次来实现这一点。但是,emacs认为这不是一个可以使用tab键两次的合适位置,所以每当我按tab键两次时,它都会将我带回到行的开头。
谢谢!
编辑:检查主模式变量表明它在python-mode上。
发布于 2017-01-14 04:36:12
M-x customize,搜索py-tab-indent,关闭它,然后Apply。我相信这就是你要找的行为。对其进行测试,如果是,则对该自定义执行Apply and Save。
注意,正如@jpkotta指出的那样,上面的代码是用于python-mode.el的,而不是内置的python.el。
发布于 2017-01-14 08:00:28
如果您使用的是内置python.el,则可以在python-mode-hook中将indent-line-function设置为indent-relative,而不是python-indent-line-function。
(defun jpk/python-mode-hook ()
(setq indent-line-function #'indent-relative))
(add-hook 'python-mode-hook #'jpk/python-mode-hook)每种主要模式都有自己的缩进函数,由indent-line-function变量指向。indent-relative是一个非常基本的、通用的缩进函数,用于fundamental-mode (最基本的主要模式)。
python-mode.el在Emacs中有点奇怪,因为它有两个广泛使用的主要模式,内置的Python和第三方的Python。你想用什么就用什么,但要知道你使用的是什么,人们在文章和答案中引用的是哪些。
https://stackoverflow.com/questions/41624375
复制相似问题