Emacs跟Vi一样,都是Linux/Unix下流行的编辑器,但是它们跟Notepad、Word、VisualCode等比起来,对初学者不友好,入门的门槛高的一塌糊涂!
尤其是好不容易会使用Vi了,到了Emacs又要推倒重来,谁也不想吃两遍苦啊!那么有什么办法么?还真有!Emacs专门开发了可以让Vi用户快速上手,直接在Emacs里使用Vi命令的插件,也就是Evil插件。
这一创新举措极大地降低了Vi/Vim用户迁移至Emacs的门槛,使得那些习惯于Vi操作方式的用户能够无缝地在Emacs环境中继续他们的工作流程。Evil插件不仅模拟了Vi的基本命令,如移动光标、删除文本、复制粘贴等,还深入到了Vi的高级功能,如宏录制与回放、寄存器操作以及复杂的文本对象选择,让用户在Emacs中也能享受到Vi带来的高效与便捷。
通过Evil插件,Emacs用户群体得以进一步扩大,吸引了那些原本因操作习惯问题而犹豫不决的Vi/Vim爱好者。这不仅增强了Emacs的竞争力,也促进了文本编辑器领域的多元化发展。同时,Evil插件的存在也鼓励了Emacs社区与Vi/Vim社区之间的交流与融合,使得两者在保持各自特色的同时,能够相互借鉴、共同进步。
Emacs中安装插件
首先从插件管理器找到需要的插件:
安装 Evil 插件
先看一下说明
1. 使用包管理器安装
通过 MELPA 安装(推荐):
- 确保你的 Emacs 已配置 MELPA 源。在
~/.emacs
或~/.emacs.d/init.el
中添加:(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize)
安装步骤
查找软件,使用命令:M-x package-list-packages
选中Evil 按回车,C-x o
:切换窗口。
然后点击install 按回车,就开始安装了。
安装完成后显示:
Package evil is installed.
Status: Installed in ‘evil-1.15.0/’. [Delete]
Version: 1.15.0
Commit: 008a6cdb12f15e748979a7d1c2f26c34c84dedbf
Summary: extensible vi layer
Website: https://github.com/emacs-evil/evil
Keywords: [emulation] [vim]
Maintainer: Tom Dalziel <tom.dalziel@gmail.com>
Other versions: 1.15.0 (nongnu).
Evil is an extensible vi layer for Emacs. It emulates the main
features of Vim, and provides facilities for writing custom
按照提示将下面的代码写入~/.emacs(后来得知并不需要):
(add-to-list 'load-path "~/.emacs.d/evil")
(require 'evil)
(evil-mode 1)
安装完成后验证
验证配置,启动emacs,在 Emacs 中执行 C-h v load-path
,确认 Evil 的路径已正确添加。
确实已经添加了:
Value:
("~/.emacs.d/evil" "/home/skywalk/.emacs.d/elpa/evil-1.15.0"
"/home/skywalk/.emacs.d/elpa/gptel-0.9.8"
"/home/skywalk/.emacs.d/elpa/transient-0.8.7"
"/usr/local/share/emacs/30.1/site-lisp"
"/usr/local/share/emacs/site-lisp"
"/usr/local/share/emacs/site-lisp/git"
"/usr/local/share/emacs/30.1/lisp"
"/usr/local/share/emacs/30.1/lisp/vc"
"/usr/local/share/emacs/30.1/lisp/use-package"
"/usr/local/share/emacs/30.1/lisp/url"
"/usr/local/share/emacs/30.1/lisp/textmodes"
"/usr/local/share/emacs/30.1/lisp/progmodes"
"/usr/local/share/emacs/30.1/lisp/play"
"/usr/local/share/emacs/30.1/lisp/org"
"/usr/local/share/emacs/30.1/lisp/nxml"
"/usr/local/share/emacs/30.1/lisp/net"
使用VI的快捷键进行操作
启动emacs,打开或创建文件
C-x C-f
:打开或创建文件。
然后使用i 进入编辑状态,键入文本,然后按ESC+: ,然后键入wq,保存退出,证明EMASC已经支持VI的指令!
安装gpt插件
C-s查找gtp,发现有这个插件:gptel
选中gptel按回车,C-x o
:切换窗口。点击install
国内较快的Emacs插件源的加速镜像
国内有较快的 Emacs 的 MELPA 源,例如浙江大学开源软件镜像站提供的 MELPA 镜像源。
浙江大学开源软件镜像站提供了包括 MELPA 在内的多个 Emacs 软件包源的镜像,这些镜像源可以加速国内用户访问和下载 Emacs 插件的速度。具体配置方法如下:
添加镜像源到 Emacs 配置文件:
在 ~/.emacs
或 ~/.emacs.d/init.el
文件中添加以下代码:
(setq package-archives '(("gnu" . "https://mirrors.zju.edu.cn/elpa/gnu/")
("melpa" . "https://mirrors.zju.edu.cn/elpa/melpa/")))
(package-initialize)
更新源索引:
- 在 Emacs 中执行
M-x package-refresh-contents
命令,更新源索引以获取最新的插件列表。
安装所需插件:
- 使用
M-x package-install RET package-name
命令安装所需的 Emacs 插件。
此外,国内用户还可以考虑使用其他国内镜像源,如清华大学的镜像源,但具体配置可能略有不同。需要注意的是,不同镜像源可能提供的插件版本和数量有所差异,用户可以根据自己的需求选择合适的镜像源。
调试
发现给的配置文件需要进行修改
(add-to-list 'load-path "~/.emacs.d/evil")
(require 'evil)
(evil-mode 1)
真正的目录在:~/.emacs.d/elpa/evil-1.15.0
经咨询:
利用包管理器的自动加载机制(推荐)
若通过 MELPA 等包管理器安装,Emacs 会自动管理
load-path
,无需手动添加:(require 'package) (package-initialize) ;; 确保包管理器初始化 (require 'evil) ;; 直接加载 Evil (evil-mode 1)
所以,应该是不用手工添加的。