gpt4 book ai didi

configuration - 在 Emacs 毒蛇模式中插入空格而不是 TAB

转载 作者:行者123 更新时间:2023-12-01 11:09:55 25 4
gpt4 key购买 nike

我是 vim 的长期用户,最近发现 emacs 有毒蛇模式,提供两全其美的功能(至少对我而言)。但是有一件事真的很困扰我,因为我主要用 python 编码,制表符和空格的混合是一件大事。

在插入模式下,我想在按 TAB 时插入 viper-shift-width 空格而不是 TAB。我怎样才能做到这一点?我想一些简单的 lisp 函数/设置就是解决方案。

我没有在毒蛇模式设置中找到任何可以做到这一点的东西。

编辑:

我的 .emacs 中有 (setq-default indent-tabs-mode nil) 但是当我在 viper 中处于插入模式(在插入模式的 vim 中)时,这不起作用-模式

最佳答案

首先,您应该确保'indent-tabs-mode的默认值是nil ,像这样:

(setq-default indent-tabs-mode nil)

然后,在viper-mode , 这也取决于你的 viper-expert-level .在 1 级或 2 级,TAB似乎绑定(bind)到 'self-insert-command通过模式 map viper-insert-diehard-minor-mode (专家级别为 1 或 2 时启用)。我猜它试图提供最大的 vi 兼容性,这意味着您牺牲了一些 Emacs 功能,包括使用一些非常基本的自定义。

所以...您可以将您的专家级别提高到 3 或更高:

(setq viper-expert-level 5)        ; really, why use anything less?

如果你真的想要级别 1 或 2,但不希望 TAB 成为一个自插入命令,那么将它添加到你的 .viper 文件中:

(define-key viper-insert-diehard-map (kbd "TAB") 'viper-insert-tab)

即使在第 1 级,这对我来说也很有效。

关于configuration - 在 Emacs 毒蛇模式中插入空格而不是 TAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com