admin

Emacs And Spacemacs
Vim 与 Emacs  vim与emacs被称为Linux下两大神之编辑器,其历史可以追溯到数十年前了。为何它们...
扫描右侧二维码阅读全文
13
2018/12

Emacs And Spacemacs

Vim 与 Emacs

  vim与emacs被称为Linux下两大神之编辑器,其历史可以追溯到数十年前了。为何它们到现在依旧备受追捧呢?因为它们具有很高的通用性与可扩展性。当然,如果你是要开发中大型项目建议还是使用IDE,IDE针对某一种或几种特定的环境会做出更好的优化。而 vim与emacs我更多是用作日常的programming,Notes等等,vim 与 Emacs具有非常高的通用性,且使用熟练可以大幅度提高我们的工作效率,实现“所想即所写”。

孰优孰劣

  Vim 与 emacs 之争一直是一个爆点,vim or emacs? That's a question. 这里我简单谈一下我使用二者的感受:
- vim: 编辑效率更高,启动更快等 ,这里是我的vim相关配置My Vim Configuration
- emacs : 插件更丰富,可以完成更多任务,org-mode 等内置的工具都对个人日常管理有很大帮助....但组合按键经常要用ctrl 或 alt(meta),感觉编辑效率不如vim

学习之路

  像c++或是深度学习框架tensorflow :) 一样,vim 与 emacs 的学习曲线都是比较陡峭的(严格来说我觉得emacs比vim更难上手),但只要用熟了,绝对是神器!到那时候你会觉得手指脱离键盘去点鼠标都是浪费时间,且为自己高度定制的 vim 与emacs 几乎可以让你完成你想完成的任何任务。

Emacs

  开始阶段的学习不建议一个个地背快捷键或是自定义配置,我们先clone github上大神的配置,

git clone https://github.com/purcell/emacs.d

然后在终端输入emacs(emacs -nw进入终端模式的emacs) 按下 'alt + M'并输入help-with-tutorial,根据官方提供的教程先大致过一遍几个基础的快捷键。然后我的建议是从org-mode入手做个人的日常管理(如笔记,to-do-list)等,慢慢学习emacs的技巧,这里我也列出一些常用的emacs快捷键(其中C-表示ctrl + ,M-表示Alt + ):

C-x C-f     打开/新建文件
C-x C-s     保存当前缓冲区
C-x C-w     当前缓冲区另存为
C-x C-v     关闭当前Buffer并打开新文件
C-x i       光标处插入文件
C-x b       切换Buffer
C-x C-b     显示Buffer列表
C-x k       关闭当前Buffer
C-x C-c     关闭Emacs
C-c C-z     终止shell中的进程
C-f         前进一个字符
C-b       后退一个字符
C-p       上一行
C-n       下一行
M-f       前进一个单词
M-b     后退一个单词
C-a       行首
C-e       行尾
C-v       下翻一页
M-v      上翻一页

Spacemacs

The best editor is neither vim or emacs, it's vim and emacs !

  引用Github地址上的作者原话,spacemacs可以算是vim 与emacs的结合版,这对从vim过渡过来的用户是相当友好的(只需在Dotfile中配置vim的编辑模式即可,否则恐怕需要花很长一段时间重新熟悉emacs的按键(当然emacs也可以通过插件Evil插件实现与vim相同的快捷键)

安装(环境为Ubuntu 16.04)

  打开终端,emacs版本低于24.4的同学在安装spacemacs的packages的时候可能会出现各种问题,我们先用emacs --version命令check一下emacs的版本,如果低于24.4,建议编译安装emacs 25.1(不要装太高的版本,spacemacs可能不支持)

wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-25.1.tar.xz
tar xvf emacs-25.1.tar.xz
# 主要是为了解决依赖问题,也可以直接编译再根据报的错安装相关依赖
sudo apt-get install libXpm-dev libjpeg-dev libgif-dev libtiff5-dev
# apt 解决不了的依赖问题
sudo aptitude install libgtk2.0-dev(#可能需要先sudo apt-get install aptitude 安装aptitude)
./configure --prefix=/usr/local/emacs
make -j4
make install
# 设置环境变量
echo ' PATH="/usr/local/emacs/bin:$PATH" ' >> ~/.bashrc
source ~/.bashrc
# 设置软链接,非必需
cd /usr/bin ; rm emacs
sudo ln -s /usr/local/emacs/bin/emacs emacs

此时如果不出问题,我们的emacs25.1就已经编译完成了,接下来我们安装spacemacs:

# 备份原先的emacs
mv ~/.emacs.d ~/.emacs.d.bak
git clone https://github.com/syl20bnr/spacemacs
# 设置alias ,因为图形界面的字体可能需要配置(参考repo),为了省事,我们直接用emacs -nw 进入terminal
alias emacs='emacs -nw'
# 启动emacs
emacs

进入spacemacs之后它会询问你要用vim的键盘设置还是emacs的,选择你习惯的即可,然后的两个version的spacemacs建议选择heavy 版本的,虽然稍大一点,但是全。之后就会进入包的安装过程了。这一步可能会出现点问题,如果报错××package is unavailable,原因是melpa源是国外的,国内安装可能会出现问题,这里我参照官网所说的把https 改成 http依旧不行,最后我的解决方式是:(不清楚原理,但确实可以解决问题):
1. 依旧使用emacs(而非emacs --insecure启动)
2. vim .spacemacs 在 dotspacemacs/user-init()中 加入

(setq configuration-layer--elpa-archives
      '(("melpa-cn" . "http://elpa.emacs-china.org/melpa/")
        ("org-cn"   . "http://elpa.emacs-china.org/org/")
        ("gnu-cn"   . "http://elpa.emacs-china.org/gnu/")))

即添加国内源,重新启动emacs即可

定制(Customize)

  我主要还是使用原生的配置,只修改了下theme还有font size(更适应org-mode,我目前还是主要用来记笔记,代码用vim写),如图所示,文件也可以在我的repo中找到。这里的定制主题还有另外一种方式: 进入emacs 后 alt + M,输入customize-themes, 选择相应的theme,保存即可。
  相关的高级配置可以参考spacemacs-themes
.spacemacs

参考

elpa.emacs-china
编译安装emacs与spacemacs

沧海南浔 于2018-12-13 22:05:53 星期四

Last modification:March 13th, 2019 at 07:06 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment