vlambda博客
学习文章列表

Emacs的简单使用与配置

查看版本

查看emacs版本办法,键盘按下Alt+x,输入emacs-version即可查看emacs版本。

emacs的界面

  • 绿色:菜单栏

  • 红色:工具栏

  • 黄色:编辑区域

  • 蓝色:状态栏

  • 紫色:交互区域(输出信息,M-x操作等)

基本操作速记

别太多,先学会一点点光标的移动:

  • Ctrl + n:将光标移动到下一行。

Ctrl + p:将光标移动到上一行。

Ctrl + f:向前移动一个字符。

Ctrl + b:向后移动一个字符。

Ctrl + k:从光标位置到末尾删除。

Ctrl + a:回到行首。

Ctrl + e:回到行尾。

Alt + <:回到编辑区域最开始位置。

Alt + >:回到编辑区域最后的位置。

Ctrl + v:向下翻一屏。

Alt + v:向上翻一屏。

自带文档

Ctrl + h:之后再按t,查看文档;速记:Help Tutorial

查看快捷键的含义:Ctrl + h k;速记:Help Keybind

查看函数的定义及快捷键绑定:速记:Help Function

对外观做些改变

图形化配置

Alt + x customize

  • 菜单栏

    • menu-bar-mode
  • 工具栏

    • tool-bar-mode
  • 滚动条

    • scroll-bar-mode

优势:不用写ELisp代码

劣势

  • 搜素

  • 生成的配置代码只能是单一文件配置,显得凌乱

  • 扩展的配置不容易进行

  • 涉及到复杂逻辑的(如条件判断)不方便配置

配置文件初体验

创建文件~/.emacs并写入以下内容:

(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1

具体操作步骤

首先创建.emacs文件:

touch .emacs~

之后用emacs打开文件:

emacs .emacs~

emacs中使用快捷键Ctrl + x后输入1,表示只保留当前窗口。

Ctrl + x, Ctrl s:保存文件

Ctrl + x, Ctrl + c:关闭emacs

认识配置文件

Emacs配置文件的位置,会按照以下顺序去查找:

  • ~/.emacs

  • ~/.emacs.d

  • ~/.config/emacs/init.el

第一个是单一文件配置;第二个更符合工程化;第三个仅适用于≥27的版本。

  • Ctrl + x Ctrl + f:输入文件名称即可打开文件

软件源

(setq package-archives '(("gnu"   . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
                         ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))

使用use-package管理拓展

  • 什么是use-package

    • 简单来说,是一个宏

    • 用更简单统一的方式去管理插件

  • 怎么用

    • 基本格式,并举个例子
;; 最简洁的格式
(use-package restart-emacs) 
;; 常用的格式
(use-package smooth-scrolling
  :ensure t  ;是否一定要确保已安装
  :defer nil ;是否要延迟加载
  :init (setq smooth-scrolling-margin 2)  ;初始化参数
  :config (smooth-scrolling-mode t)  ;基本配置参数
  :bind  ;快捷键的绑定
  :hook)  ;hook模式的绑定 

建议添加的配置(部分来自use-package官方建议:)

(eval-and-compile
  (setq use-package-always-ensure t;不用每个包都手动添加:ensure t关键字
  (setq use-package-always-defer t;默认都是延迟加载
  (setq use-package-always-demand nil)
  (setq use-package-expand-minimally t)
  (setq use-package-verbose t)) 

更换个主题

教程演示采用的主题是  gruvbox-theme

(use-package gruvbox-theme
  :init (load-theme 'gruvbox-dark-soft t)) 
;; 顺便配置一个好看一点的Mode Line
(use-package smart-mode-line
  :init
  (setq sml/no-confirm-load-theme t)
  (setq sml/theme 'respectful)
  (sml/setup)) 

总结