菜鸟们联合起来,我们一起学习Emacs吧

Vim、Emacs配置和使用
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

菜鸟们联合起来,我们一起学习Emacs吧

#1

帖子 yangdawei.hit » 2015-01-25 21:48

虽然想学Emacs很久了,但一直没有找到好的学习路径。今天看到了陈斌的大作——《一年成为Emacs高手(像神一样使用编辑器)》(http://blog.binchen.org/posts/yi-nian-c ... ji-qi.html),惊为天人所作。受此牛文鼓舞,决定开始学习Emacs。陈斌大作没有纠缠在细枝末节之中,开篇就将系统学习、学用结合、“站在巨人肩膀上”的学习观念建立起来,令人耳目一新,心向往之。本人发此帖旨在记录学习过程与心得,接受大家的批评和指正。

准备工作:
1. 安装emacs

代码: 全选

sudo apt-get install emacs
2. 安装git,用于下载陈斌的配置文件。

代码: 全选

sudo apt-get install git
cd ~
rm .emacs
rm -r .emacs.d
git clone https://github.com/redguardtoo/emacs.d.git .emacs.d
emacs -nw --batch -l ~/.emacs.d/init.el -f package-refresh-contents
注意:(a) 由于文件夹.emacs.d已存在,应先删除; (b) .emacs应删除,~/.emacs.d/init.el 取代了它的作用; (c) 代码中最后一行用于更新宏包库; (d) 安装了陈斌版配置文件的最大好处就是可以直接体会各类插件功能和配置效果,在这个阶段学会使用远比学会实现有意义。

3. 解决Emacs与fcitx的冲突
由于我的系统默认是英文语言,输入法为fcitx,刚配置完的Emacs还不能由Ctrl-Space激活fcitx输入中文。解决方法是:
(a) 编辑init.el文件加入一行语句屏蔽Ctrl-Space键(默认该键为块标记键)。在输入时注意,由于已经有了配置文件,输入时环境具有智能提示,可在具有提示时用tab键自动补足命令。

代码: 全选

(global-set-key (kbd "C-SPC") 'nil)
(b) 增加中文编码。编辑~/.profile文件,在文件末尾增加一行语句:

代码: 全选

export LC_CTYPE=zh_CN.UTF-8
完成上述两步后重新登录桌面(或重启)即可解决在Emacs中不能激活fcitx输入法的问题。

4. 准备学习笔记
如陈斌所说,最好的学习途径就是阅读和练习。为了把练习和阅读结合起来,我打算用Emacs录入学习笔记。牛文指出:写笔记org-mode当然是不二选择。虽然牛文中也推荐了中文教程,但让我搞明白org-mode还是官网中下载到的指南(http://orgmode.org/orgguide.pdf)。稍加阅读,即可直接撰写学习笔记了。现在,让我们开始吧(编辑后缀名为org的文件即进入org-mode环境)。

代码: 全选

emacs learning.org
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#2

帖子 yangdawei.hit » 2015-01-25 23:27

由于陈斌的配置启用了Vim快捷键,即默认编辑方式是Vim的,所以今晚学习的第一步是掌握简单的Vim编辑命令(够菜的吧,我用的教材是《大家来学Vim》)。 :em19
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#3

帖子 adagio » 2015-01-26 0:44

呸!我宁愿被VI憋死也不愿被Emacs搞死,当然我申明我基本也就用gedit、notepad++就够了 :em04
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#4

帖子 yangdawei.hit » 2015-01-26 12:22

下载到了一本好书《Learning the Vi and Vim Editors》,和大家分享。

链接:http://pan.baidu.com/s/1eQeVxKI
密码:ft1p
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#5

帖子 lainme » 2015-01-26 14:24

一年……太可怕了
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#6

帖子 jinjiachen » 2015-01-26 16:30

多用用就好了 :em05
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#7

帖子 yangdawei.hit » 2015-02-02 8:36

陈斌提示在github上给配置报错或提出问题。此前没有玩过github,刚刚注册了个帐号,提了个问题。为了方便更多菜鸟参与,把这个过程分享一下。

1. 登录 http://www.github.com 注册个帐号。
2. 打开陈斌的仓库 https://github.com/redguardtoo/masterin ... ide/issues
3. 点击issue按钮,见附图1。
4. 切换到报错视图后,点击 New Issue 按钮,见图2。弹出报错对话框。

好了,向大神请教吧。
附件
snap1.png
snap2.png
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#8

帖子 yangdawei.hit » 2015-02-04 12:06

代码: 全选

emacs -nw --batch -l ~/.emacs.d/init.el -f package-refresh-contents
这条命令很重要,时不时运行一下就能跟进陈斌的最新配置了。
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#9

帖子 yangdawei.hit » 2015-02-07 16:41

几天来使用Emacs,已经基本适应这一文字编辑方式。几处心得分享如下:

1. 按陈斌的配置,打开即有某种格式的文件(如.org, .py)即进入vi模式编辑状态。若编辑的文件不在即有格式范围之中(如.txt),则默认为Emacs模式,不会切换到vi模式。为了进入vi模式,需要用命令:C-z。当然,切换回去则是再按一遍C-z。这是问了陈斌本人给出的回复:https://github.com/redguardtoo/masterin ... /issues/48

2. Ctrl键与CapsLock键还是有必要更换的,否则太不方便。无论是用笔记本键盘,还是台式机键盘,Ctrl键都被Windows键侵占了面积,只好将它和稍大一些的CapsLock键更换一下。刚开始有一些不适应,毕竟切换中文输入法多使用Ctrl+Space,现在要用CapsLcok+Space。还有平时多用的Ctrl-c和Ctrl-v,现在也需要将小指展开去找CapsLock键了。现在已经完全适应这种更换,小指确实比以前舒服多了。两键的交换方法见:viewtopic.php?f=35&t=468152

3. 对于我这个菜鸟而言,最务实的学习起点还是先掌握好vi编辑命令。我参考了兄弟连的Linux教程第5章,很快就学会了基本的vi命令。见http://yun.itxdl.cn/course/56

4. 文档命令

打开文档:C-x C-f

另存文档:C-x w

文档间的切换命令:C-x right or C-x left,当然也可以用 C-x b,然后输入文档名称,注意当提示显示蓝色色块时即已智能匹配得到要切换的文件,可按回车打开该文件。

5. 窗口命令

左右分割:C-x 3
窗口切换:M-1 M-2...
上次由 yangdawei.hit 在 2015-02-07 18:47,总共编辑 1 次。
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#10

帖子 yangdawei.hit » 2015-02-07 17:18

正在看bird8848的帖子: viewtopic.php?f=68&t=309791。这个论坛好帖如云。
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#11

帖子 yangdawei.hit » 2015-02-13 9:57

http://vim.wikia.com/wiki/Copy,_cut_and_paste
先转引原文:

代码: 全选

copy-and-plate text using a [b]visual selection[/b] in Vim:

Cut and paste:

  1. Position the cursor where you want to begin cutting.
  2. Press v to select characters (or uppercase V to select whole lines).
  3. Move the cursor to the end of what you want to cut.
  4. Press d to cut (or y to copy).
  5. Move to where you would like to paste.
  6. Press P to paste before the cursor, or p to paste after. 

Copy and paste is performed with the same steps except for step 4 where you would press y instead of d:

    d = delete = cut
    y = yank = copy
再作短评:

行拷贝采用Nyy的方式,但若欲拷贝的行数较多以至不便确定时,用可视选择拷贝就是一个较好的选择。拷贝和粘帖都是一样的,特殊之处在于用v标记拷贝(剪切)起始处,用V标记拷贝(剪切)起始行。拷贝还是剪切取决于移动后标记结尾处后使用y还是d。
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#12

帖子 yangdawei.hit » 2015-02-17 22:44

推荐两本好书:
1. Learning GNU Emacs
2. Writing GNU Emacs Extensions

链接:http://pan.baidu.com/s/1dD3uAQX
密码:y8k6
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#13

帖子 yangdawei.hit » 2015-02-27 21:13

1. 过去几天尝试了取消了默Vi的操作模式,感觉Emacs模式确实不如Vi好用,又换了回来。看来大神们的设置确实是经过实践检验出来的。
2. 安装了AUCTex和CDLatex设置,极大提升了Latex的撰写效率。CDLatex模式并不象很多网上写的在.emacs里(在陈斌的配置中应写在init.el)加载cdlatex就可以了,至少在我这里是手动安装了该宏包。(M-x package-install [RET] cdlatex [RET]),见https://marmalade-repo.org/packages/cdlatex。AUCTex的安装见手册或大多数网上总结即可。
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#14

帖子 yangdawei.hit » 2015-05-15 19:18

不退出emacs重新加载.emacs或init.el的方法:

1. 若只重新加载更改过的一个函数,只需要将光标移至该函数后面,然后按C-x C-e即可。
2. 若想重新加载配置文件,则在打开该文件状态下,执行M-x load-file,然后按两下回车键,表示加载当前文档即可。

上述方法的来源为:http://stackoverflow.com/questions/2580 ... hanging-it
yangdawei.hit
帖子: 245
注册时间: 2015-01-02 15:32
系统: Debian

Re: 菜鸟们联合起来,我们一起学习Emacs吧

#15

帖子 yangdawei.hit » 2015-05-15 19:28

在emacs中执行shell命令的方法:

M-x shell

上述方法来源:http://stackoverflow.com/questions/2352 ... thin-emacs
回复