首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Tab在Emacs中插入一定数量的空格

如何让Tab在Emacs中插入一定数量的空格
EN

Stack Overflow用户
提问于 2017-01-13 06:43:21
回答 2查看 585关注 0票数 0

我不想在emacs中使用制表符,我想对其进行设置,以便按Tab键可以根据文件类型插入一定数量的空格。例如,在处理python文件时,我想按tab键插入4个空格。这是我当前的.emacs文件

代码语言:javascript
复制
(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个空格的缩进的使用。例如:

代码语言:javascript
复制
    r"""
    Return the value of the q-gamma function. 

    .. MATH::

        qgamma(z,q) = \Gamma_q (z).
    """

因此,对于带有"qgamma“的行,我必须以8个空格开头,我希望能够通过按tab键两次来实现这一点。但是,emacs认为这不是一个可以使用tab键两次的合适位置,所以每当我按tab键两次时,它都会将我带回到行的开头。

谢谢!

编辑:检查主模式变量表明它在python-mode上。

EN

回答 2

Stack Overflow用户

发布于 2017-01-14 04:36:12

M-x customize,搜索py-tab-indent,关闭它,然后Apply。我相信这就是你要找的行为。对其进行测试,如果是,则对该自定义执行Apply and Save

注意,正如@jpkotta指出的那样,上面的代码是用于python-mode.el的,而不是内置的python.el

票数 0
EN

Stack Overflow用户

发布于 2017-01-14 08:00:28

如果您使用的是内置python.el,则可以在python-mode-hook中将indent-line-function设置为indent-relative,而不是python-indent-line-function

代码语言:javascript
复制
(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。你想用什么就用什么,但要知道你使用的是什么,人们在文章和答案中引用的是哪些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41624375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档