注1:时间有限,一次不能完成本文,慢慢添加、改进。
注2:暂时没有注2.
最早偏听偏信,嫌弃 Emacs “臃肿”,忍受着不停的“哔哔哔”,先学习了 Vim。
后来在好奇心和折腾的本能驱使下,开始走上 Emacs 之路。
但我并不是所谓的 Emacs 党。
我的常用机器上默认不开 ssh server, 要 root 权限进行编辑的时候,用不了tramp mode
,
所以是sudo vim
。
在测试机上的编辑文件的时候,Vim/Vi 也是首选了。懒,就一个字。
我不用 Emacs 的 evil mode
,倒是在Vim 里做了以下4个的键位映射/绑定:
imap
学习的各个阶段
imap
imap
imap
我把自己定位在“编辑器用户”,都不考虑插件开发,所以大概分为3个阶段:
陌生、熟练、高手。
陌生 -> 熟悉
印象
Vim 给我的印象是:谦虚、谨慎、高效。
让它做什么就做什么,感觉很好控制和沟通,不做多余的事。
当然也要讲它的“语言”,简单高效的按键和命令。
Emacs 的印象则是:激进。
做了很多不想它做的事,怎么配置都达不到理想状态。
比如:自动缩进使用制表符tab
还是空格。搞了几次,头大,然后把 Emacs 卸载了。
操作
Vim 用户应该都有的初体验:不知道怎么输入、怎么退出。
但是在不断的“哔哔哔”声之后,开始享受它的按键方式。
Emacs 的问题就在频繁使用Ctrl
、Alt
、Esc
的别扭。
虽然习惯之后谈不上享受,但也是非常高效。
配置复杂度
不算空行和注释,
Vim 的配置文件,30行之内就能“够用”,并且语法简明。
Emacs 则需要100行左右,或者更多,语法是elisp
,只能说“很好玩”。
熟悉 -> 熟练:
vim:
成就感不断提高,但如果跟 emacs 比较,感觉移动速度低于预期。
多文件操作体验不顺畅。
需求插件。
emacs:
开始体会到它奇葩的学习曲线。
但并不建议开始 living in emacs。
探索更多功能,需求更多配置。
emacs 自带了很多插件,早就在用了, 之前没在意到吧。
熟练 -> 高手:
[还没到“高手”阶段]
其他养成好的 编程/写作 习惯
看过一个 编程培训班在线视频,那讲课人的编程习惯,就算是 万能神本尊都救不了他,
更不用说“编辑器之神”或者“神之编辑器”了。
语法高亮
关闭。
理由:
语法高亮干扰代码阅读?注:暂时引用这个地址,有时间转到sf 来。
方法:
- 启动:
emacs --color=never
- 配置:
.emacs
(global-font-lock-mode 0)
.vimrc
syntax off
- 命令:
M-x font-lock-mode
server mode
emacs
- 启动:
emacs --daemon
- 配置:
(server-mode)
- 使用
emacsclient
vim
vim server/client 模式需要编译时开启支持。
通过vim -h| grep servername
有没有输出检查,如果没有,
则需要安装 带c/s mode 支持的vim。
然后,vim --servername xx
vim --serverlist
vim --remote xx
对 Vim 插件的理解
我理解 Vim 的特点的灵巧、精准,过分的用插件填充,真的会让它变得臃肿。
所以我不会想把 Vim 变成 IDE,
比如,
我会用cscope
调用vim
,而不想用一个 cscope.vim
的插件。
emacs 配置
gnu global
gtags 提供的cscope 类似界面的工具:
(setq cscope-program “gtags-cscope”)