关于evil的问题

有什么关于evil的键位说明吗 虽然说evil模拟的是vim,但二者始终是有点不同的啊. 那么新手该如何上手evil呢,从vim学起吗?

如果你熟悉 emacs 的按键,其实没有很大的必要去用 evil 啊。

如果真要用 evil,我觉得还是得从 vim 学起,其实 vim 入门不难,常用的就这几种模式:普通模式、插入模式、选择模式。找篇好点的入门文章,花一下午就能学会基本操作了。网上可以找到 vim 的键位图,可以先看图记按键。

emacs的基本按键我也是会的,只是权衡再三后我觉得还是使用evil来的好一些

虽然我已经把caps和ctrl键换了,但是按久了发现小拇指还是会有点不舒服的,所以更倾向于evil

其实最简单的vim的操作我是会的.

但是有些比较"高级"一点的操作就不知道了.

如果只是使用那些简单的功能的话,hydra都提供了着方面的设置

Evil 把和 Vim 不同的地方看成是 bug。如果你发现有不同的地方,可以报告,他们会修复的。

如果你只是略懂 Vim 的话,还是建议先过一遍 vimtutor 吧。我个人编辑的时候是没发现有什么不一样的地方。

有一个问题,他们应该是有解决方案的,但是我找不到了 就是向上C-u的设置要怎么改呢

然而 Evil 并沒有提供多少 Emacs 原生沒有的功能。rectangle edit, keyboard macro, regexp replace, universal argument, registry 这些 Emacs 本身就有。高级功能也就 Vim 特色的 Ex 模式,实际沒人会去用(这个是设计给网络很差,终端刷新很慢的极端环境用的),Evil 也沒做。

光是正则就已经不同了。

看看变量evil-want-C-u-scroll 的文档吧。还有一些其他的 evil-want-* 的变量你也许也有兴趣。

PS:可以用 helm-apropos 或者类似的工具输入关键字探索。这些都很容易自己发现的。

evil-ex-search-vim-style-regexp?我不确定(因为我自己不用),如果真是不一样,那就是个 bug 喽。

多了一种模式,就多了一个操作维度 。 所以 evil 还是有必要学习一下的。

不过,如果仅仅学习 evil 或 vim 的按键绑定,那就。。。辛苦你来一趟了。

我并没有深入对比过 evil 和 vim,不过,想来与 vim 多半还是有区别的。


evil 内核还是 Emacs 那些东西,所以,不如先了解下 Emacs 基本定制,甚至 elisp 语言?

如果仅仅是要解决按键绑定问题,那倒简单的多。搜索一下,多半都能得到想要的结果。

@LdBeth 你太低估 vim 的 Ex 模式了。Best of VIM Tips, gVIM's Key Features zzapper 了解一下。

那我要考考你,Ex 模式的 i 命令怎麼用。实际上很多 Vim 教程都沒提到这回事。


你试试用 vim -E 打开一個文件,在 : 后面输入 i 再回车,然后想办法退出吧。

TECO 都用过的我第一次用的時候差點心态爆炸。比退出 ed 还难。


ESC 沒用,空行沒用,q 沒用,^C^D 都沒用,ed 好歹 ^D 能起作用。可不要放弃啊。

问题可以具体点。

没明白你在说什么,按 q 就退出了。

有全屏 visual 可以用,干嘛跑到行模式下?咱们说的 Ex 可能不是同一个东西。

你沒按 i,退不出可不要想着 kill 啊。

这个才是 Ex 模式。你说的是 Vi 的 ex 命令 (ex command)模式。

好吧。刚试了下,按 i 后确实退不出来。一会去搜一下咋退出。

不过,我还是不能理解有全屏 visual 不用,跑到这个下面是什么情况?可能是历史遗留吧。


一般讨论 vim,说到 Ex 都是指的 ex command。

(这个是设计给网络很差,终端刷新很慢的极端环境用的)

本來 ex 就是 ed 的升級版。vi 则是 ex 的升級版。

答案是在新的一行用一个 .

Entering Ex mode.  Type "visual" to go to Normal mode.
:i
dsa
zc.
.
:

这个恐怕还真不能称之为“高级功能”。 :roll_eyes:

1 个赞

難道SMTP Reply Codes after DATA and the Subsequent是跟它學的?

不好说,ex 的历史还是挺久的。

Ex command mode 也能用这个命令,只能说明多數 Vim 用户也都沒深入研究过这个。

确实没有用过这个模式,刚看了下功能介绍:

Switch to "Ex" mode.  This is a bit like typing ":"
commands one after another, except:
- You don't have to keep pressing ":".
- The screen doesn't get updated after each command.
- There is no normal command-line editing.
- Mappings and abbreviations are not used.
In fact, you are editing the lines with the "standard"
line-input editing commands (<Del> or <BS> to erase,
CTRL-U to kill the whole line).
Vim will enter this mode by default if it's invoked as
"ex" on the command-line.
Use the ":vi" command |:visual| to exit "Ex" mode.
Note: In older versions of Vim "Q" formatted text,
that is now done with |gq|.  But if you use the
|vimrc_example.vim| script "Q" works like "gq".

和我第一印象挺相符的,“行编辑模式”。

1 个赞

不就和你用 Framebuffer 一个道理嘛