Sta*_*tan 3 emacs configuration elisp spaces viper-mode
我很长时间用户,最近发现emacs有viper-mode,提供两全其美(至少对我而言).然而有一件事真的困扰我,因为我主要是在python编码,并且标签和空格的混合是一个大问题.
当处于插入模式时,我想在按TAB时插入viper-shift-width空格而不是TAB.我怎样才能做到这一点?我想一些简单的lisp函数/设置就是解决方案.
我没有在viper模式设置中找到任何可以执行此操作的内容.
编辑:
我有(setq-default indent-tabs-mode nil)
.emacs但是当我在viper-mode中处于插入模式(在插入模式的vim meaing中)时这不起作用
首先,您应该确保默认值为'indent-tabs-mode
is nil
,如下所示:
(setq-default indent-tabs-mode nil)
Run Code Online (Sandbox Code Playgroud)
然后,在viper-mode
,它还取决于你viper-expert-level
.在级别1或2,TAB
似乎'self-insert-command
通过模式映射绑定viper-insert-diehard-minor-mode
(当专家级别为1或2时启用).我想它正试图提供最大的vi兼容性,这意味着你牺牲了一些Emacs功能,包括使用一些非常基本的自定义.
所以...你可以将你的专家水平提高到3或更高:
(setq viper-expert-level 5) ; really, why use anything less?
Run Code Online (Sandbox Code Playgroud)
如果您确实需要1级或2级,但希望TAB不是自插入命令,请将其添加到.viper文件中:
(define-key viper-insert-diehard-map (kbd "TAB") 'viper-insert-tab)
Run Code Online (Sandbox Code Playgroud)
这对我来说很有用,即使是在第1级.
归档时间: |
|
查看次数: |
1395 次 |
最近记录: |