Doom-Emacs安装和基本使用方法
1 Doom-Emacs用前须知
Doom-Emacs(下面称为Doom)是Emacs的一个比较复杂的配置包,主要目的是使Emacs拥有Vim的出色编辑能力,同时让新手配置起来相对容易些。 但后一个目标几乎是不可能的事情,因为你既要会用Emacs,还要会用Vim,而它们是全宇宙学习难度最高的两个编辑器。
如果这两个编辑器你都没有用过,建议:
- 分别安装纯纯的Vim和Emacs
- 按出厂配置(不更改配置不安装插件),学习使用一段时间
就算Doom把Emacs彻底打扮成别人家孩子的样子,Doom也还是Emacs的一个配置包。所以使用Doom的时候还是要求了解Emacs自家的东西多些,对Vim的要求并不高。 Vim相关的内容掌握下面的就可以顺利使用Doom(其实也不少):
- Vim的模式概念:普通模式、插入模式、视图模式等
- 模式的切换方法
- 不同模式下的操作
2 安装和基本配置
2.1 安装
- Doom要求Emacs版本26.3以上。本人操作系统使用的是Debian稳定版(buster),安装源中提供的版本较低,要从Emacs站点下载源代码编译。看说明编译安装即可,没有什么困难,不赘述。其他依赖的软件如git、ripgrep、find和fd都可以使用Debian官方源安装。
- 参考项目主页的说明安装Doom就没有问题
注意:Doom使用Emacs的配置目录“~/.emacs.d”,请把原配置文件移走备份好!
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
安装要下载很多软件包,耐心等待完成。
2.2 基本配置
- Doom的个人配置文件在“~/.doom.d”目录下,原个人配置目录“~/.emacs.d”已被当成Doom的“系统”目录
- .doom.d目录下初始有三个配置文件
- init.el
- packages.el
- config.el
初次使用可完全不改配置,也可修改init.el文件,注释掉一部分不使用的配置。修改前两个文件都要运行下面命令,做一些“同步”设置:
~/.emacs.d/bin/doom sync
修改“~/.profile”文件,把“~/emacs.d/bin”路径添加到程序路径,方便直接使用doom命令。
NOTE:Doom配置文件的封装有点过份,可修改性太差,老Emacser要是感觉不方便,可考虑 bling/dotemacs (github)作为替代方案。
3 使用方法
3.1 理解Emacs的按键表示方法
- C-x 表示同时按下Ctrl和x
- M-x 表示同时按下Meta(Alt或者Esc键)和x键
- SPC表示空格键
- S 有时表示SHIFT键(放在连字号前时)
- RET或者<return>表示回车键
- TAB或者<tab>表示制表符键
- 如果不是和控制键联合使用,表示顺序按键
- C-c ab:表示先同时按下Ctrl和c键,再顺序按下a和b
- C-c C-c a:表示同时按下Ctrl和c键两次,再按a
- SPC f s:表示顺序按下SPC、f和s键
3.2 状态(state)切换
Vim的“模式”在Doom中称为“状态”(因为“模式”在Emacs中已有其他意义),是Evil包引入和实现。
- 默认是普通状态(normal state),可进行vim普通模式下的操作
- 按Esc键可从其他状态返回普通状态
- 从普通状态切换到其他状态的按键
- i:插入状态
- v:视图状态
- V:行视图状态(整行选取)
- C-v:块视图状态(矩形框选取)
- C-z:正常Emacs状态切换,可在所有模式中使用该按键。“Emacs状态”是没有打扮过的Emacs,该状态下可以使用原生Emacs的编辑方式。
除Emacs状态外,其他状态下的操作参考Vim的使用方法。
3.3 空格键(SPC)使用
- SPC在Doom的普通状态和视图状态下有特殊用途,它相当于Emacs的Ctrl或Meta命令前缀,用于执行命令
- 如果按下SPC键后不操作,窗口下方会出现命令提示菜单。
4 常用SPC命令
4.1 SPC f:文件操作
- f:打开/查找文件
- d:打开目录(Dired)
- s:保存文件
- r:最近文件列表
- y:拷贝当前文件名(路径)
- C:大写,拷贝当前文件(询问目标位置)
- D:大写,删除当前文件
- R:大写,重命名/移动文件
- S:另存
4.2 SPC b:缓冲区操作
- b:缓冲区列表
- n/[:切换到前一个缓冲区
- p/]:切换到后一个缓冲区
- s:保存当前缓冲区(使用命令和 SPC f s 可能不同)
- S:保存所有缓冲区
- d/k:关闭当前缓冲区
- O:关闭其他缓冲区
- K:关闭所有缓冲区
- z:隐藏/最小化当前缓冲区
- Z:关闭所有隐藏的缓冲区
4.3 SPC w:窗口操作
此菜单命令非常多,常用的有:
- v:垂直分割窗口
- s:水平分割窗口
- h/j/k/l:在窗口间移动光标(激活编辑窗口)
- w/W:向前/后窗口移动光标(比hjkl顺手)
- H/J/K/L:窗口位置置换/移动命令
- T:撕开窗口(把当前撕出来,试试就知道什么效果了)
- q:关闭当前窗口
- n:和s作用相同
- m:最大化当前窗口(全部、水平或垂直最大化,有提示)
- =:等分所有窗口(其他调整大小的命令不大实用,不如自己绑定按键)
4.4 SPC o:打开其他程序/界面
- p:打开/关闭treemacs目录树
- T:打开终端
- f:打开一个新窗口(显示当前缓冲区内容,等于在多窗口中同时编辑一个文件,内容同步!)
- a:org agenda (SPC a A 等于 SPC o a a)
4.5 SPC t:切换(toggle)
- l:行号
- b:字体模式
- F:全屏模式等
4.6 其他
- SPC q q:退出程序
- SPC h:帮助菜单,还有主题切换(SPC h t,不知道为啥放到这里)
- SPC p:项目操作。本人不习惯此类操作,不介绍。
Doom-Emacs安装和基本使用方法相关推荐
- Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作
Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作 一.写在前面 1.1 明确目标:搭建一个完整的Python开发环境 1.2 前置工作 二.Doom ...
- doom emacs如何安装新插件和自定义快捷键
doom emacs如何安装新插件和自定义快捷键 最近在学习和使用doom emacs,遇到了2个问题. 问题1: 虽然doom emacs已经配置了很多的三方插件,但是还有些个性化的插件如何按doo ...
- Emacs 安装配置使用教程
Emacs 安装配置使用教程 来源 https://www.jianshu.com/u/a27b97f900f7 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑器和编辑器之神 - ...
- 【积水成渊-逐步定制自己的Emacs神器】3:为Emacs安装扩展
前言 本文介绍了如何使用Emacs的Package-Mode来为其安装扩展包,讲解如何添加新的Package源和如何安装Package.以安装一个新的主题包Solarizd和Markdown编辑扩展M ...
- 《⑨也懂系列:GNU Emacs安装教程Ver.2》世界著名的顶级全能文本编辑器
备注:我的全部文章首发在自己的独立博客(http://rsreland.net)上,编程相关文章会同步到这里,不过文章的维护是优先那边.然后本篇文章的地址是:http://rsreland.net/a ...
- 从零开始——Emacs 安装配置使用教程 2015
从零开始--Emacs 安装配置使用教程 2015 字数11995 阅读13410 评论12 喜欢41 教程存档Github 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑 ...
- 计算机 电脑 系统安装教程,安装电脑的操作系统的方法
安装电脑的操作系统的方法 现如今,电脑的使用越来越普遍,几乎每家每户都有电脑,而电脑的操作离不开操作系统,下面小编整理了安装电脑的操作系统的方法,供大家参阅. 1.在电脑光驱里放入要安装的系统光盘.( ...
- PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
一:Mcrypt简介 Mcrypt是PHP的一个扩展,完成了常用加密算法的封装.其实该扩展是对mcrypt标准类库的封装,mcrypt完成了相当多的常用加密算法,如DES, TripleDES, Bl ...
- python bs4 安装_Python安装Bs4的多种方法
安装方法一: ①进入python文件夹执行指令(前提是支持pip指令): pip3 install Beautifulsoup4 ②回车待安装完成,如果出现以下红框中内容,即代表安装成功 ③验证是否可 ...
最新文章
- ranorex自动化测试框架开发--控件操作
- 租车信息系统数据库设计(3)
- 百度商业大规模微服务分布式监控系统-凤睛
- 在Spring中使用JDK定时器实现调度任务
- 无需部署即可测试JPQL / HQL
- 职高有计算机专业前途怎么样,职高有哪些专业前途好有发展前景
- 将普通文章内容替换为微信图文消息符合的内容
- Nginx之开门见山
- MsSQL SQLServer 查询 表中字段的及类型是否为空
- python简单爬虫代码-一则python3的简单爬虫代码
- c语言函数可变长参数,一种使用变长参数为C程序构造灵活回调函数的方法
- 通过ssh远程连接Ubuntu主机
- www.idcnd.net传媒官方客服提供
- IT民工系列 —— 前言
- CCProxy + Proxifier 通过另一台电脑访问网络
- Chromium网页Layer Tree创建过程分析
- layerui如何隐藏按钮?
- 【PYNQ】PYNQ的视频资料介绍
- iptables之state模块使用
- php.ino,北京大学POMINO v2 NO2卫星产品发布