Questions tagged «evil»

邪恶模式是Emacs的Vim仿真层。

5
如何将下划线视为单词的一部分?
我使用Emacs + evil模式。 当我将光标放在e(正常状态)诸如,的大块文本中abc_def_ghi时ciw(更改内部字词)仅更改def字符串的一部分,而Vim会更改整个字符串abc_def_ghi。 我evil该如何像Vim一样强迫下划线(即作为单词的一部分)?

1
Emacs不会在每个OS剪贴板上以Evil的Visual模式粘贴
设定: KAEL的GUI版本GNU Emacs 25.0.50.1(x86_64-w64-mingw32)/ 2015-07-25从EmacsW64 编译。 使用MELPA的最新版本的Evil打包Evil Windows 7 x64位。 情况: 使用仅启用了Evil的空Emacs配置进行了测试。我从Windows应用程序复制一些文本。然后,我将其粘贴到Emacs里面normal mode用p。我看到了文字。 然后我切换到Windows应用程序,选择另一个文本,将其复制。切换回Emacs,直观地选择文本,然后粘贴到visual mode。但是区域内的文本不会被Windows剪贴板中的文本替换。 这不是默认的Vim。我如何配置它,以使视觉文本被最新的复制操作(在本例中为Windows剪贴板)替换?

2
如何在Evil中获得类似于Vim的撤消行为?
Evil中的默认撤消行为过于粗糙,因为它考虑了在进入插入模式和将其保留为一个编辑操作之间发生的任何事情。在一次插入过程中输入整个文本段落,然后执行撤消操作时,将删除整个段落。与此相反,只要在插入模式下通过输入文本以外的其他方式移动光标,Vim就会启动一个新的撤消单元。 Evil具有一个自定义变量,可用于获取更细粒度的撤消历史记录: (setq evil-want-fine-undo t) 使用此设置,就像在Vim一样,在插入模式下移动光标时,Evil将启动一个新的撤消单元。但是,此设置也弄乱了替换操作的处理方式:如果使用替换单词cw,则必须撤消两次以还原原始单词:一次用于删除新单词,一次用于重新插入原始单词。这与Vim不一致,并且没有太大意义,因为replace应该是原子的。 问题:如何配置Evil和undo-tree以获得Vim的撤消行为?

2
如何关闭空白行上的Spacemacs波浪线?
我刚刚安装了Spacemacs,主要是因为它具有漂亮的默认值。我不满意的一个默认值是它将波浪号放在文件中的空行上。 我试过把(setq vi-tilde-fringe nil)它(setq indicate-empty-lines nil)放在dotspacemacs/user-config函数内部,似乎没有任何作用。 我如何才能一劳永逸地摆脱所有这些混乱的波浪线?
16 evil  spacemacs  fringe 

1
有关如何使用“邪恶模式”的说明
我正在考虑给邪恶模式一个机会。我进行了广泛的搜索,以查找您如何使用它,每个人都在共享他们的自定义设置。 我不明白的是,当您安装并激活Evil Mode时会自动使用Vim的密钥,还是必须根据需要自定义它们?换句话说,当我激活它时,我应该更改任何东西还是一切都会起作用? 还有一件事。在Emacs中,当您安装软件包时,应该为某些任务使用特定的密钥。例如,在AUCTeX中,您使用它C-c C-c进行编译,因此在Evil模式下,您对软件包使用哪些键?您必须为每个程序包自定义它们吗?
14 evil 


7
邪恶:以vim方式映射键盘绑定?
我试图使Evil函数evil-jump-to-tag,C-]行为像Emacs绑定M-.。 正常行为适合浏览标签文件,但我希望它也适用于Slime slime-edit-definition,Elisps elisp-slime-nav-find-elisp-thing-at-point,Clojures cider-jump-to-var等。 这些主要模式以及更多其他模式已经将等效的跳转绑定绑定到了键绑定上M-.。 为了在Evil模式下获得相同的行为,我是否需要为每种模式本地绑定一个键绑定,或者是否可以进行一个键绑定并告诉Emacs,每当按下此键时,请使用对该键绑定的功能在Emacs模式下?
13 keymap  evil 

1
邪恶正常状态图与邪恶运动状态图之间的差异
文档evil-normal-state-map: 正常状态的键盘映射。 文档evil-motion-state-map: 运动状态的按键图。 Vim是否具有所谓的“运动模式”?在Vim中,执行:help Normal-mode可以为您提供有关Vim模式的文档,而:help Motion-mode告诉我E149: Sorry, no help for Motion-mode。 另外,在以邪恶状态映射键时,应该使用哪个语句? (define-key evil-normal-state-map (kbd <key>) <command>) (define-key evil-motion-state-map (kbd <key>) <command>) 如果相关,我正在使用Spacemace。

2
我如何跳出括号?
我spacemacs用来编辑Python代码。 当我键入左括号时,会自动为我插入右括号,并将光标放在中间以进行进一步输入。但是:一旦我在括号内输入了内容,就需要一种快速的方法来跳出括号并在右括号后着陆。 现在,我切换到正常状态,将光标移动一个单位(当我在右括号之前的字符上),然后使用再次进入插入状态a。我怎样才能更有效地做到这一点?

3
可能在邪恶模式下不使用撤消树吗?
我每隔一段时间就会在undo-tree中遇到错误,无法通过以下已知错误,另一个报告和reddit线程来重做。 primitive-undo: Unrecognized entry in undo list undo-tree-canary 这确实很糟糕,并且如果您没有保存该文件的最新版本,可能会导致工作丢失。 由于我从未使用过分支撤消树功能,是否可以在邪恶模式下使用emacs线性撤消? 注意:我尝试过(global-undo-tree-mode -1)直接设置,(evil-mode 1)然后禁用撤消树,但是重做(Ctrl-R)在执行此操作后不起作用。

2
Emacs中的混合行号模式?
在相对行号模式下,是否可以显示当前行的绝对号而不是“ 0”?有时将其称为“混合线路号码模式”。 像这样: 7 6 this.oscs[i].oscillator.start(); 5 } 4 3 this.bindController(); 2 }; 1 252 factory.stop = function () { <- current line number shows 1 console.log('theremin: now in stop 2'); 2 this.leapController.disconnect(); 3 //this.leapController.removeListener('frame', factory.ctrlFrameHandler); 4 //this.leapController.removeListener('frame', this.ctrlFrameHandler); 5 this.leapController.removeListener('frame', this.leapController.listeners('frame')[0]); 这是在vim中执行操作的方法。 我快疯了,并在.emacs中激活相对行号模式,如下所示: (linum-mode) (linum-relative-global-mode) 我没有看到任何与此相关的软件包,也没有在现有软件包中对其进行任何自定义。我对elisp有点熟悉,因此也许可以弄清楚如何通过建议来钩住现有代码,但我宁愿避免采用这种方式。 非常感谢。
11 evil 

1
邪恶模式和正则表达式
在Vim中,如果要搜索X为数字的所有变量名LX,则只需键入即可/L\d。但是,这似乎不适用于evil。 Evil模式下是否有用于正则表达式的另一种语法,还是我不得不依靠一些Emacs功能来搜索和使用正则表达式进行替换? 我正在使用spacemacs,对Emacs中的大多数事情我一无所知,很高兴整日处于Evil模式:)。

2
如何坚持邪恶的标记?
我希望能够在emacs会话/实例之间保存我的缓冲区局部邪恶标记(用m标记位置,然后使用'或`跳转到该位置)。我不太确定该怎么做。我尝试安装/使用会话并像这样添加它们: (add-to-list 'session-locals-include 'evil-markers-alist) 但是,这不起作用,我不确定还有什么尝试。谢谢。

2
Evil中的默认Magit提交状态
我用evil。通常,当我提交时,我想立即开始输入,但是在中evil启动缓冲区evil-normal-state。我曾经设定 (evil-set-initial-state #'git-commit-mode 'insert) 但这不再起作用,因为Magit将text-mode其用于提交缓冲区。 我怎样才能使Magit的提交默认为evil-insert-state?
9 magit  evil 

1
如何在特定的邪恶状态下为模式设置按键绑定?
我有一套键绑定,既用于(Evil)的插入模式,web-mode又php-mode用于插入模式。所以我不能使用set-local-map。因为在正常模式下,相同的键将随后调用其他命令。因此,绑定evil-insert-state-map仅需处于活动状态。 我有以下内容: (eval-after-load 'php-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") (lambda () (interactive) (insert " = "))) (define-key evil-insert-state-map (kbd "C-<prior>") (lambda () (interactive) (insert "->"))))) (eval-after-load 'web-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") 'zencoding-expand-yas) (define-key evil-insert-state-map (kbd "C-<prior>") 'zencoding-expand-line))) 因此,每次web-mode或php-mode正在加载时,这些键绑定都会被激活。 问题是:假设我有两个打开的缓冲区,一个在中php-mode,另一个在中web-mode。当web-mode缓冲区是当前缓冲区并且我切换到另一个缓冲区时php-mode,web-mode绑定在php-mode缓冲区内部仍然处于活动状态。 我试图通过使用(add-hook 'web-mode-hook [...])和(add-hook 'php-mode-hook [...])而不是在中设置绑定来解决此问题eval-after-load。但是这种解决方案在这种情况下不起作用。 有什么建议么?我真的很感激。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.