如何评价子龙山人 spacemacss这个工具

如何评价 Emacs 的配置文件 Spacemacs?
IntroductionYou are a Vim user ?You do not need to know Emacs to use Spacemacs!You are an Emacs user ?You do not need to know Vim to use Spacemacs!
按时间排序
用了4年emacs。之前两年一直是参考purecell的配置。见证了spacemacs从无到有,并不断壮大的历程。应该来说从来没有一个emacs配置有这样的参与度和活跃度。purecell的配置在几年前可以说是最好的参考配置。然而和现在的spacemacs相比,也有些逊色了。spacemacs的架构可以说充分考虑了扩展性,以及社区参与。通过layer来隔离不同功能的配置,这样它可以肆无忌惮包含所有emacs可以包含的功能,然后用户使用的时候可以挑选自己需要的layer进行启动。通过use-package异步加载包,大幅度的提高了启动速度,再也不用担心配置太多,启动变慢了。这样让一份配置更灵活,不在只是一个人特色的配置,而是适应一群人的通用配置。让emacs配置从个人玩具进化成了平台。最近我放弃了曾经使用的purcell的配置,加入了spacemacs.但这并没有太影响我的使用习惯和体验。我依然使用emacs的默认按键方式,但多出了leader key的新方式。我把自己老的配置中常用的功能也porting到spacemacs中,这也并没有花费太多时间,还帮我过滤掉很多自己曾经的无用配置,并大幅度的提高了启动速度。(刚开始用use-package确实让我有点困惑,毕竟异步)结论就是不仅vim用户适合使用spacemacs,老emacs用户也适合迁移过去,关了它操蛋的evil模式就是了。
花哨,用来参考不错,用起来繁琐
一已经使用了一段时间的spacemacs,说下对它的感受,首先说下自己的情况,我已经使用emacs了一年半了,并且不使用evil模式,略懂emacs的配置,尝试使用了下spacemacs的配置。先说优点:1. 界面美观2. layer的概念很好说下不好的地方1. 因为spacemacs 使用了好多前置键,导致很多快捷键都要重新熟悉,这一点是我感觉不好的。2. 给后期的拓展增加了难度总体来说spacemcs还是一个很不错的配置。建议没有使用过emacs 的人尝试使用。每个emacser最终都会有自己的一套配置。Enjoy it!
迁移到Spacemacsspacemacs 是 emacs 社区最近比较火的话题,水木上有不少相关讨论。我目前使用的 emacs 配置是几年积累下来的结果,本不想折腾,要迁移过去,想想都麻烦。禁不住好奇,还是从 github 上下载了安装包试一试,前几次安装并不顺利,没能顺利用起来。有这样几个问题:提示找不到某个 package。查看了包目录,此包已经下载,但个别文件大小为 0。解决方法是把此包删除,重新启动 emacs 下载安装。下载包时提示找不到,这是网络问题,挂上 vpn 就行。解决这两个小问题后,就能用上了。启用有点慢,在我 i5 的 PC 上,大约十多秒。我原来的 emacs 配置启动较快,大约在两秒左右。默认仅加载很少几个包,但使用 orgmode 编辑时,lazy 加载 helm 会比较慢,也需要 6 秒左右。 Spacemacs 优点还是很多的,我觉得这几点做得不错:快捷键归类不错,提示也很好。快捷键设计成三键式,第一键又叫 leader 键,是空格键。第二键是功能归类键,比如:file 相关的快捷键在 f 键下, buffer 相关的在 b 键下,搜索相关的在 s 键下。第三键是具体功能健,比如删除 buffer 是 d。每次按键后,mini-buffer 中有详细的按键提示,告诉你下一步按什么键是什么对应的功能。基本不用专门记忆,用几次就熟悉了。即插即用式的安装,多平台支持,方便迁移。在远程 vps 服务器上,下载安装包后,安装 spacemacs-base 就可以使用了。快捷键和基本编辑方式不用重新学习,比 emacs 裸奔强太多了,也不用把自已的配置文件全部搬过来,还没那么多平台差异问题。最小化个人配置。自带的包配置非常全面,个人只要做些微小的定制修改就能直接使用。版本管理时, .emacs.d直接使用 github 上 spacemacs 的 develop 分支,不做任何改动。自已的配置修改提交到私人 repo,比起原来 50 多兆的配置文件,这样迷你多了。目前已经把 orgmode 和 org2blog 配置完成,写博客是没有问题了。c-c++模式也启动了,但还没有详细定制,有时间再看看。Spacemacs配置方法这两天摸索了 spacemacs 的配置方法。定制的指导思想,除了 =.spacemacs=文件,不改动 spacemacs 的其它任何文件。以后升级或迁移配置时,直接从 github 下载最新 spacemacs 代码即可,不用做任何改动。在 .spacemacs 配置中,重定义私有配置目录为 ~/.spacemacs.private ,自定义 layer 和 snippets 都放在此目录中。在 emacs 裸奔的机器上,下载并安装完 spacemacs,再下载私有配置,就能使用了。配置过程中的几个主要修改点:自定义私有目录在 .spacemacs 文件中,修改以下配置dotspacemacs-configuration-layer-path '("~/.spacemacs.private/")
修改已有 layer 的配置spacemacs 中,部分 layer 会有 config.el 配置文件,该文件中保存 layer 的定制修改,但我并不想对 spacemacs 原始文件做任何改动。因为一旦修改了 spacemacs 的 layer 文件,就要把 spacemacs 代码也纳入私有 repo 管理 ,而我希望私有 repo 尽可能小,只有自已的配置,没有第三方代码。办法是有的,在 .spacemacs 中,选择加载包时,可以直接定制配置。(auto-completion
:variables
;; auto-completion-front-end 'auto-complete
auto-completion-return-key-behavior 'complete
auto-completion-tab-key-behavior 'cycle
auto-completion-enable-snippets-in-popup t
auto-completion-complete-with-key-sequence nil
auto-completion-complete-with-key-sequence-delay 0.1
auto-completion-private-snippets-directory
(concat (car dotspacemacs-configuration-layer-path) "snippets/")
auto-completion-enable-sort-by-usage t
添加一个 package自已原来一直用 org2blog 写博客,但 spacemacs 中没有集成这个包,怎么办?先用下面命令添加一个 layer,根据提示一步步完成。M-x configuration-layer/create-layer
完成后,得到
和 package.el 。在 package.el 中,有详细的说明,怎么定义此 package 的引用和初始化函数。在定义过程中要用到 use-package 这个包,可以去 github 看下使用方法,简单来说,初始化 init 部分在包加载前调用, config 部分在包加载后调用。修改基本配置如果不需要用到其它 package,只是修改基本配置,直接在 .spacemacs 文件的 dotspacemacs/user-config函数中修改就可以了。修改完后,不一定需要重新启动 emacs,使用快捷键 SPC f e R 可以重装加载配置。但有些配置是添加到配置列表中的,重新加载配置不启作用,这种情况就需要重启 emacs 了。Spacemacs WorkflowSpacemacs 的优势在于预装了很多有用的 package, 整合到一起,无冲突。并在此基础上定义了一套方便的快捷键。使用 spacemacs 之前,担心快捷键太多记不住。实际上,使用几次后,发现快捷键定义还是很有规律的,而且有按键提示,不需要太多记忆。熟悉几个主要操作后,可以提高 emacs 的使用效率。打开文件一般情况下,我们经常操作的文件不会太多,都在最近文件列表里,列出最近使用 buffer 的快捷键是 SPC b b 。另外一个比较有用的是 SPC TAB ,在最近使用的两个 buffer 中切换。如果要找的文件不在最近列表中,可以使用 SPC
f L ,调用全盘快速搜索程序,windows 上默认使用 es.exe ,linux 上默认使用 locate ,快速定位到目标文件。跳到函数定义在编辑配置文件,或查看 emacs-lisp 文件时, SPC s j 可以在 minibuffer 中列出所有函数列表,选中后司跳到定义处。搜索字符串搜索功能有几个常见场景搜索光标下字符串使用 vim 的 superstar 功能就,只要按一下 * 就能快速搜索。搜索输入的字符串SPC s s 是 helm-swoop 的快捷键,类似于 multi-occur 的功能,输入字符串,在 minibuffer 中列出该字符串出现的所有列,选择后跳转。写作 blog打开
文件后, C-z 退出 evil 模式,个人感觉在 evim 模式下,使用中文输入法不太方便。M-& 跳转到文件最后,输入 blog-drawer ,这是我自定义的一个 snippet,用于创建 blog 标题和 drawer。* $1
:PROPERTIES:
:CATEGORY: ${2:代码}
写完文章后, M-x org2blog/wp-post-subtree-and-publish 发布 blog。这个命令是个自定义函数;;;###autoload
(defun org2blog/wp-post-subtree-and-publish ()
"Publish the current subtree as a page."
(interactive)
(org2blog/wp-post-subtree t))
在linode上使用Spacemacs一直在用 linode vps,安装的 ubuntu 系统,远程用 putty 连接,emacs 是主力编辑器。emacs 配置是 ftp 上传的,安装成功后就一直没有更新过。没有用 git 托管,配置同步终究是不太方便。今天有时间,决定把 spacemacs 配置同步到 github,再更新到 linode。我的 spacemacs 配置一共有三部分:一个 .emacs.d 目录,是 spacemacs 的原始代码,未做任何修改;一个 .spacemacs.private 目录,存放私有 layer 和 snippets;一个 .spacemacs 文件,就是 spacemacs 配置文件。直接从 github 下载 spacemacs 的 develop 分支,作为 .emacs.d 目录:git clone /syl20bnr/spacemacs.git .emacs.d
git branch develop remotes/origin/develop
git checkout develop
在本地建立一个目录 .spacemacs.config ,并在目录内新建两个符号链接,保存 spacemacs 的私有配置,并将这个目录上传到 github。PS: junction 语法太 BT,参数顺序与 ln 是反的。junction -s .spacemacs.private ../fj/.spacemacs.private
junction -s .spacemacs ../fj/.spacemacs
远程 linode 上,下载 spacemacs 的私有配置,并创建符号链接。cd ~
git clone /sweord/.spacemacs.config.git
ln -s .spacemacs.config/.spacemacs.private .spacemacs.private
ln -s .spacemacs.config/.spacemacs .spacemacs
启动 emacs,没有成功安装,提示找不到某个 el 文件,查看 emacs 版本太老还是 24.3 的,需要安装新版本的 emacs-25.1add-apt-repository -y ppa:ubuntu-elisp
apt-get update
apt-get install emacs-snapshot
由于码农的洁癖,老版本必须删除。先查看安装包的名称:dpkg -S emacs
再全部删除:apt-get remove emacs24-bin-common emacs24-common emacs24-common-non-dfsg emacs24-nox
启动 emacs,spacemacs 自启成功,自动安装一百三十多个 package 后,成功启动了。linode 服务器网速不错,整个安装过程非常快。查看 spacemacs 启动时间,才两点几秒,太快了。要知道,spacemacs 在我的 x200 笔记本上启动时间大约 15 秒多,在我的 i5-2240 CPU 台式机上,启动时间要 8 秒多,在 linode 上为什么这么快?查看了 cpu 信息,原来是 X5 2680 v5 , cache 有 30M,相当 NB 啊。cat /proc/cpuinfo
第一点就是帅,一下把emacs丑了吧唧的ui掰了回来。第二点就是结构好,lisp哪都好,就是容易成垃圾堆。第三点就是重视evil结合,有的东西想不起来elisp怎么搞直接就escape到vim快捷键搞定。
表明我不喜欢spacemacs!用了一会儿就删了!对于我这种Emacs渣渣来说,完全不喜欢这种东西,我的配置还是很简单elpy(python)+multi-term(terminal)+web-mode!!我本来就不喜欢那种大配置!因为有些功能我根本见不到它!我也不喜欢把Emacs改成VIM!你们都说VIM大法好,难道这种spacemacs还得要我花时间去学VIM大法,显然不开心了!还是玩好自己的Emacs吧!要不然就直接用vs得了,他的配置文件更大
从2008年开始试图从vim转向emacs,共有两次坚持了几个月,但是失败了。好消息是,2015年底转向spacemacs,成功了,现在正在用spacemacs,非常舒服。
如果你 Vim 和 Emacs都会点,又不想自己折腾配置,那这个适合你。配合其丰富的文档,上手很快。
没加自己的配置试用了下,起初觉得很惊艳,实际用了下,各种不方便。对于新用户而言是个好东西,不用一开始就去折腾各种 package,这过程容易吓跑一大波新用户。多年的老用户就没必要使用了,当然里面的 package 列表可以参考,收为己用。
谁说学习Lisp就要用 Emacs,用 Sublime Text 照样是大神, 配置简单,界面清晰。本人:以前曾经是 Vim fans,后来学习了一小段时间的 Emacs,现在直接用 Sublime Text。偶尔会用 Xcode 来阅读纯 c 代码,因为他能很好在代码里面跳来跳去。
vim其实挺好用的,主要是习惯问题。
首先,它得是个“新”编辑器……
我大概有资格谈谈这个问题,因为Sylvain Benner是受了我的激励和启发才开发了spacemacs:- spacemacs在我心目中大概是top2的地位,和steve purcell的设置不相上下,steve purcell的配置可能更成熟,唯一的缺点是不用evil- spacemacs充分利用了evil-leader这个大杀器,一般从vim迁移不过来的人主要还是思想不够开放,leader键用得少(leader键是什么参考这里。我是一旦意识到leader的潜力,立刻反过来把vim按照我emacs的快捷键重设了一遍- 诸如是否太重量级的问题实际不是问题,autoload就是解决方案。此类优化技术在顶级配置中必定都早已应用了- 对于emacs的一些封装也是高手通用做法,比如~/.spacemacs就是~/.custom.el,只不过名字不一样罢了,虽然emacs老用户可能有点不习惯,但这是一种营销手段,目前看来挺成功。-Sylvain Benner这个人我是很看好的,能力非常强,一点就透,比如我在reddit上说vim tutor是入门emacs的捷径,他就立刻开发了evil的对应版本evil-tutor,然后通知了我。最后,让我来点心灵鸡汤,成为Emacs高手,赢得世界性声誉(象Sylvain Benner那样,给自己挣得近2000颗github星星),实际上不难,关键是付之于行动,为社区做实质性贡献(比如Sylvain Benner把leader键改为空格键,这是他的主打卖点)。国人应该比加拿大白人Sylvain Benner有优势,我”一年成为emacs高手“最早是用中文写的,英文版晚的多。在“一年”一文里我是知无不言言无不尽了,而Sylvain Benner和我的交流只是G+上的只言片语。但他的执行力是超级强悍的。
他这个说白了就是一个强大的配置文件 我正在用 感觉iu非常漂亮 其他的因为我不怎么自己折腾配置 跟我以前一直用的oh-my-emacs 比没有看出太大差别
这个编辑器最近在Github上非常活跃,前几天试用了一下,结果一下子被(elisp)恶心到了,说到底还是一个经过精心配置好的Emacs,Emacs的复杂性被掩盖起来了,但是当我想改一下Evil配置的时候,发现非常折腾,小问题非常多,感觉还是适合Emacs用户使用。我是重度Vim用户,Vim现在虽然是勉强够用,但是还远远不够好,期待NeoVim能改变这个局面。
===============================更新放前面===========================大家别看我这个了,这是当时稍微试了一下就随便一写,推荐大家看一下一个优秀网友自己录制的视频:===============================更新================================有的朋友使用了spacemacs但是没有发现什么神奇的效果,原因可能是没有将各种层的支持加入到.spacemacs里面。下面是方法:1. 打开~/.spacemacs2. 找到dotspacemacs-configuration-layers , 在后面添加你所需要的功能。3. 想要什么功能,可以到contrib文件夹里查找。4. 更多的,需要你自己去文档里阅读。follow me!!!============================以上是更新==============================今天下午逛知乎的时候无意看到了题主的这个问题,我平时是一个Emacs fans,所以看到这个问题就下意识的google了以下。然后,就是下面的内容了。首先, 这不是一个编辑器. 这就是一份配置工程. vim 有vimrc. Emacs有.emacs.d. 这就是Emacs的.emacs.d配置工程. 它利用了Emacs的evil插件还有别的一些插件, 实现了Emacs中使用VIM的快捷键.为什么说他是一个编辑器呢? 可能是因为它已经将原生的Emacs改造成了另一个模样把.我现在使用的配置是[oh-my-emacs](),这是一个非常好的配置。特点如下:1. 使用Emacs的org-mode模式的babel功能实现了整个工程.讲代码放在了文档之中,非常有创意.2. 工程结构不错, 它借鉴了[prelude]()的工程结构,比较清晰明了.但是也会因为第一点的一些问题,不是很容易拓展.3. 强大,是真的非常强大.功能非常丰富,大而全.支持非常多的编程语言,尤其是我经常使用的Python, 可以说是完美支持.4. 文档非常好. 得益于第一点, `oh-my-emacs`的文档就是程序的注释,非常非常完善.5. 对evil支持非常好,也就是说在emacs中使出vim的快感.但是!!!!我看到`spacemacs`之后,我打算换成`spacemacs`.为什么呢?1. 它是我见过最好看的Emacs配置.2. 工程结构太完美.3. 它是我见过文档最全,最丰富,最易懂的Emacs配置.比`oh-my-emacs`好好几个量级.4. 它非常容易拓展,工程结构简直漂亮.5. 功能更强大.可以看一下这个截图.6. 开发人员更多.在开源世界里, 这个工程拥有上千的fork量,开发非常活跃.7. 对evil的支持更加好,它的主打就是evil.8. 它非常精致.简直给粗糙的Emacs上了一层美丽的妆.9. 操作更人性化,细节考虑太周到了,毕竟有这么多人开发.下面是我随手截的一些图片:这是第一次安装spacemacs的界面,完全看不出是Emacs,整个安装过程很精致.这是helm补全功能, 做的很好用, 很人性化.这是spacemacs里的终端, 使用emacs的朋友可能诟病emacs的终端不好用,不支持clear命令, 这一次spacemacs做的非常好, 而且支持clear命令.这是打开Python文件之后,使用IPYTHON进行调试.卧糙, org-mode还有这样玩的. 珍妮马...看看spacemacs支持哪些东西.支持哪些语言?当然,肯定不止这些..当然,肯定不止这些..
我感觉又要有人吵一架了
我只想大声的说 vim是最好的 (hahahahah
曾试图转到 Emacs 然后失败的 Vim 中毒用户表示这种在 Emacs 上面模拟 Vim 的东西对我没有任何吸引力,它不能跑任何已有的 Vim 插件,也不能像 Vim 那样去配置。有些人啊,真是图样,隔壁的 Neovim 几乎完全兼容 Vimscript,在它上面做了语法的扩展,还用了目前最快的脚本解释器 LuaJIT 做后端,还支持 Client/Server,以后可能支持远程编辑、远程终端、远程调试、以及各种语言开发的插件,比那什么破烂 elisp 高到不知道哪里去了~(逃
精神病人们终于拥有属于自己的编辑器了~
已有帐号?
无法登录?
社交帐号登录318671人阅读
emacs(7)
Linux(18)
作者: 陈斌(redguardtoo)
版权: 本文采用以下协议进行授权,,转载请注明作者及出处.
成为高手很容易.当初我在Vi阵营,偶尔用Emacs还忘记&退出&的快捷键,一年后我.
很多文章强调Emacs有多牛,但关于&如何做&则语焉不详.即使涉及到&如何做&,谈细节多而方法论少,所以本文就 侧重方法论.
全文结构如下:
为什么Emacs值得学习,如对开源文化熟悉可跳过这一章,否则至少读一下态度一节本文最核心观点,要充分利用高手成果,不要重新发明轮子尽快掌握Emacs的步骤进一步提高的提示(社区,阅读,知识管理)跳出具体Emacs技巧,重要的是人答疑和小结
为什么用Emacs(可选)
简单谈谈,因重点是&怎么做&,不是&为什么&.
真正精通后Emacs,其他编辑器自然精通
一旦尝过最好的,你自然了解好的编辑器应该有哪些功能.
比如一个内嵌的插件管理器是最基本的.
如下载了第三方插件,如果发觉其有问题,可以在.
插件服务器关闭了,应可以在.
目前流行的编辑器如还做不到以上几点.
Emacs 的特点决定了其社区水准不低
Emacs 用 Lisp 开发,Lisp 不同寻常的语法决定了其开发者都是资深开发者,掌握了多门语言.
Lisp 并不能给你带来任何好处,所以其社区成员都是纯粹的技术爱好者,投机取巧的功利主义者对其没有兴趣.
和IDE比较,Emacs 做的更多更快
IDE针对特定语言或框架优化,而Emacs完成通用任务更有效.
例如,我碰到难题,需要上IRC请教国外高手(工作流是,粘贴代码到, 在irc提问,看网页,将解决方案粘贴回来),Emacs 集成了IRC工具和浏览器 (例如),操作就很方便.
我使用 Visual Studio 多年,Firefox 也是高手,相信我,大多数情况下 Emacs 更快.
口说无凭,请看高手操作的 youtube 视频,
顺便说一下,很多初学者关心的代码自动完成,几门主流语言支持都不错(包括java).
Emacs会永存
,公司会倒闭.但自由软件基金会将一直存在下去.
Emacs作为其招牌软件也会维护下去,我的投资永不会贬值.
可以立刻开始工作.
软件开源,配置是纯文本,且资源消耗小,安装包很小 (命令行版本 30M 左右),任何环境下都可用.
这在大项目中特别有益,例如,某项目需同时编辑 Perl, Java,C, Bash, SQL, 要编辑远程服务器上的代码,网速不快. Emacs的优势就体现出来了.
一年指的是一年中的空闲时间
我没说一年内须什么事都不干专学Emacs, 我最反对没有短期回报的悬梁刺股.
我利用一年中通勤时间就取得了很大进步,自信到可以写下本文.
态度决定一切
重要的是头脑开放,不先入为主.
新手的问题是,根据之前习惯 盲目 设定了入门必知.有些必知还很费时间.
网上教程列出的初学者必知快捷键我都 不知道 ,因为Emacs Lisp的语法我也只掌握了一小部分. , 但是这没有妨碍我写出如前所述,我掌握Emacs只用了一年
也要避免门户之见,比如用了Emacs就排斥Vim的快捷键.比如一定要Helm和Ido中二选一(我是同时用的).治疗就是重读武侠小说&笑傲江湖&.
开始前,解释一下后文用到的命名惯例,
&C& 表示按下Ctrl键,&M&表示按下Alt键&M-x my-command&表示同时按下&Alt&和&X&, 输入&my-command&,然后回车
无Linux/Unix经验新手的快速指南(可选)
安装Emacs 24不安装任何第三方插件掌握基本知识,什么是环境变量(比如PATH, HOME之类的变量),什么是stdin, stdout, pipe读官方教程,学会基本的文本操作(大概十几个快捷键)使用Emacs 24自带的作个人管理org-mode关键是用起来,只要记住按TAB键是展开内容就可以了,其他都不用学
这步的目的是:
理解Emacs可爱之处知道Emacs如何和其他软件交互
读官方教程
按以下步骤阅读教程:
不安装任何插件打开Emacs, 比如在Shell中运行命令&emacs -nw -Q&同时按下 Alt 和 X 健,输入 help-with-tutorial(类似快捷键后文简写为`M-x help-with-tutorial` 代替),回车.
仅需半小时.关于Emacs多难学的谬论可以休矣.半小时的代价微不足道.想想你去练了多少个半小时吧.
即使你不打算使用Emacs默认的快捷键,这步也是必须的,不要跳过!
最起码要知道以下命令,
&M-x describe-variable&, 快捷键&C-h v&, 查看变量的文档&M-x describe-function&, 快捷键&C-h f&, 查看命令的文档&M-x describe-key&, 快捷键 &C-h k&, 查看快捷键的文档
以实际问题作为切入点
微小的努力如能得到巨大回报,你会越学越有乐趣,进入一个感情上的正反馈.
在任何领域要成为高手,兴趣是最重要的.
以我为例,我急需
的工具,而 Emacs 的
是同类软件中最好的(没有之一). 用 Org-mode 大大节省了时间后,我对Emacs爱屋及乌,兴趣高涨了100倍.
反面例子是很多人以啃Lisp教程开始他们的Emacs之旅,坚持下来的人寥寥无几.
待解决的问题设定优先度
关键在于理性地考虑你最迫切需要解决的一个问题.
以这个问题作为出发点,除此之外都可以妥协.
虽然Emacs无所不能,但是饭也要一口一口吃.有时候退一步进两步.
例如,我一直以为Emacs的中文显示很完美,所以搞不懂为什么有人会在字体配置上花那么多时间.在陆续接到反馈后,我才明白原来是因为我一直在终端下使用Emacs,终端软件可以完美显示中文字体,所以就没Emacs什么事了.需要配置字体的人用的是图形界面Emacs.
当初只在终端下使用Emacs是因为需连接到远程服务器.我认为这是重点.甚至为此放弃了漂亮的配色主题(后来发觉此牺牲毫无必要).
塞翁失马,由此也避免了图形界面版本的所有问题.
站在巨人的肩膀上
这方面我是个负面榜样.刚开始抱着玩的心态,到处找有趣的配置粘贴到我的配置中去.
这是浪费时间!
我应一开始就照抄的.
警告,Purcell 总爱试用最新的 Web 开发的新技术,对他而言稳定性不是第一位的,如果你有热情和能力,愿意一起折腾,那么水平会提高很快.
这个如果是很重要的前提,当我上了Purcell的船时,我已有10年开发经验,精通多种语言.
如你不愿折腾,那至少不要重复我的错误,不要质疑,不要创新,跟着高手做.直说了把,你是初学者,开始阶段应以模仿为主.这点怎么强调也不过分!
为了加深印象,让我再举一例.有人向我反映,Emacs 快捷键太多,背起来压力很大.我的建议是,拿高手配置来用,而不是强加给自己背快捷键这样无聊的任务.你会发觉高手已安装了名为 的插件,使直接输入命令比快捷键还快.
如果你还未信服,请再考虑一下我的理由:
文章标题是 一年成为高手,不是一年入门.高手是世界级别的高手,不是关起门来一个小圈子内的高手我就是这么做的,你可以说到底是态度问题,如果你真下定决心,考虑到Purcell的天赋和勤奋,追赶他的最好办法只有加入他要超越高手就必须了解其标杆在哪,你需要一年时间去模仿去学习基于Purcell的配置给他报bug(甚至是提交补丁),你就是考虑到了他未考虑到的问题,至少在这点就超过他了,日积月累就很可观了.
好吧,你现在信服了.但是你是否 真正理解 了?
比如你是否马上推论到:即使不用高手的配置,也可在github上订阅(watch)高手配置,其更新通知等价于免费的维护服务.
像武侠小说那样拜高手为师是白日做梦.唯一能让高手指点的办法是先付出.最可靠的付出就是报bug.
我就是这样.
不要有报bug低级的想法.很多高手都是乐于且善于报bug.倒是菜鸟喜欢重新发明轮子.
帮助高手,你的起点就高,还有得到指点的好处.
前提是起点高,要在高手已有工作上改善.即使是微小的改善,如果坚持一段时间,就是巨大的进步了,你就可以在这一点上笑傲江湖.
再找出另一高手需要改善的地方,使用同样的方法.
例如,默认在Emacs中移动子窗口焦点不是很方便.需按&C-x O&多次.我找到了emacs插件,只要按&C-x O&一次,会有提示子窗口编号,接下来只要输入编号就可以了.但还有改善空间,我又找到了,只要按&M-NUM&就可以了.
window-number.el已完美,但Alt键还是有点慢,我结合和,可以按逗号和数字飞速切换子窗口了.
加入社区更上一层楼
最重要的是专一.
例如,上有很多有趣的话题.请克制兴趣,不去定阅和Emacs无关的话题.
是最好的.优点是一直能访问.
Google Plus
贴子质量高.例如,我加入了 Linkedin和Facebook的Emacs论坛,目前都退出了.不是它们不专业,只是Google Plus讨论技术层次较高.
目前人气不如reddit,原因在于Google.
GitHub 是 geek 云集的地方
GitHub 的版本控制服务很好.现在它的社区化倾向越来越强了,我喜欢.
例如,可以看一下
上最酷的 Emacs 插件.
Emacs牛人的博客
最好的是,多个Emacs博客的集合.
我偏爱的是&列举最有用的命令&之类的具体问题.很多回答大开眼界.即使我已精通Emacs.
那种&如何入门&的问题,人人都能插上一脚.即使有高水平的回答,也淹没在众多平庸回答中.
如果你的问题就是比较泛泛而谈的,从一个能测量水准的具体问题入手找到高手,然后看高手是如何回答那些比较泛的问题的.
在 twitter 上以 &emacs :en& 定期搜索
twitter人多,更新结果快.
之所以加上&:en&是因为要排除日文内容.
在 stackoverflow 上搜索相关讨论
google &emacs-related-keywords &
我会定期搜索,同一帖子反复精读.因为讨论质量很高.
是Emacs专门的问答子社区.
到 Youtube 上看 emacs 相关的视频
例如,我就是看了
而爱上 org-mode.
不过Youtube搜索结果是最佳匹配的.由于相关视频并不多,如按照默认算法,每次总是那几个.所以如果关注最新进展,搜索应以时间排序.
读书最有效
是社区维护的文档,是最酷插件和最佳实践的集合点.
有人抱怨文档太乱,质量参差不齐.前者我有同感.后者不赞同.EmacsWiki文档质量相当高,因其是 唯一的 半官方文档.忍受其乱中有序的现状吧.
最佳阅读方法是,选定一特定主题,从头读到尾.这样对最新进展都了解了.是否要采用其建议另当别论.
Emacs Lisp 书籍推荐(可选)
Bob Glickstein的是最好的.
生动,例子丰富.作者用心安排了书的结构.例如,很早就介绍了defadvice的用法.defadvice 是Emacs Lisp的精华.
Xah Lee 提供也相当不错.
Steve Yegge的Emacs Lisp教程
他的很简洁.我特别喜欢&Statements&一章.
不要低估长期管理的累积效应.
正面例子参考Steve Purcell的配置. 2000年开始14年的维护! 8年github记录! 1000多颗星的配置决非浪得虚名.
知识积累的越多,这些知识之间的联系就会越多.联系增长的速度是以指数的方式增长的.如从头来过,意味着积累的知识的书面记录丢失了.损失是很大的.基数已归零,增长的量又能有多少.
所以决不要重置配置!
这也是后文谈到为什么要用工具保存配置和知识的原因.
配置纳入 github 的版本控制
我的配置见 .
版本控制可以认为是一个集中式的知识管理,任何时刻任何地点对配置的修改都要及时上传合并 (merge).这是积累能力的关键.
共享实际也是一种利己行为,有很多人使用我的配置,等于帮我测试.
将相关资料 (如电子图书,博客文章) 备份
我将所有资讯都放在 dropbox 的服务器上,这样资料就同步到我的智能手机和我的平板电脑上,我可利用空闲时间学习.
请.注意,dropbox 客户端完全可以在国内使用,虽然访问其首页可能有点问题.
我还写了许多博客文章.这些文章都存在org格式的文件中.最后发布的静态博客也纳入版本控制,参见.
第三方插件推荐
初学者的问题是装了太多插件,管理成了问题.
我建议的原则是少而精,被少数最优秀的插件培养出品味后,可自由挑选适合的.
标准如下:
高品质常更新很强大
所有插件都可通过包管理器下载.
以下是清单:
将 Emacs变为Vim
org-mode,全能的笔记工具
自动完成输入,支持各种语言和后端
auto-complete
快捷键选中文本,可将选择区域伸缩
让输入命令变得飞快
强大的文本模板输入工具
对不同语言做语法检查
自动完成,在其上有插件完成具体功能
和helm类似,helm和ido可同时用
javascript的主模式,自带语法解释器
网络浏览器(需安装命令行工具w3m)
Lisp 写的 Web 服务器
自动输入需要成对输入的字符如括号
跳转到不同的子窗口
switch-window.el
支持各种 HTML 文件
标记版本控制的diff(支持subversion)
Emacs是一种生活方式
牛人其他方面也很牛.举一反三你收获会很多.
就是这样一个有牛人气质的女孩,这是她的
. 她学习的方式是
,这样她在房间里走来走去的时候也可以听文档了.
我现在有意识地整理高手名单,观察他们 除了Emacs外 用什么工具.
的维护者Masafumi Oyamada(网名mooz)也开发了和. 特别是percol,使我命令行效率提高了10倍.
这个阶段可称之为 心中有剑,手中无剑.
是否用Emacs不重要了,重要的是随心所欲.例如,很多人争论哪个编辑器自带的文件管理较好.我,就跳出五行外,不在三界中了.
付之于行动
如何行动因人而异.
关键是真正理解本文要点.
例如,你是否意识到之前的章节意味着以下行动:
找出所有插件的作者在Quora/Twitter/Github/Reddit/Google+上跟随他们通读他们已发表的贴子
菜鸟怎么开始
到 参考&Install stable version in easiest way&一节.
只要点击下载两个zip文件就可以了,不需git的任何知识.
Steve Purcell 的配置是否有文档可以参考?
除了 README 外没有,我主要是通过看 EmacsWiki 和源代码来了解.窍门是源代码文件的头部有使用指南和作者的联系方式.
高手的配置是否太重量级?
高手的配置都是轻量级的,因为他们知道如何优化.
比如有种叫的技术. 只有用到模块的某一功能时那个模块才会被载入内存. 我推荐的高手都知道这类技巧.
除了Purcell的配置,还有其他高手的设置吗?
(Spacemacs是针对Vim用户优化的,所以非Vim用户不用试了).
有没有更简单的配置?
去掉了Git依赖.网络不是必须的安装了拼音输入法C++支持强大
注意,Purcell作为顶尖Web开发者,会试用最新的Web技术,而我的配置Web类插件更新会滞后一段时间.另外我的工具链和Purcell不完全一致.你自己权衡了.
该使用Emacs的哪个版本
目前稳定版是Emacs 24.3 或 24.4,建议不要用高于此版本的Emacs.
通常不用担心版本问题.主流的Linux发行版会处理.
Vi高手要转阵营吗?
嘿嘿,我也是Vi精通后转到Emacs的.就是因为Emacs的强大(例如和 gdb 的完美结合)以及其脚本语言是Lisp.
当然Vi的多模式编辑和快捷键比Emacs要高效得多,所以最佳方案是Vi+Emacs.
目前我用, 在Emacs下模拟Vim,结合两者优点.
现在我是 神用编辑器之神!
警告,我默认启用了Vim的快捷键,不习惯可打开~/.emacs.d/init.el,将其中一行代码注释掉,细节参考README.
为什么很多Vim高手不能接受Evil?
因为他们对Vim快捷键做了深度配置.Emacs默认要经常按Ctrl键,如自定义的Vim快捷键也用Ctrl键,难免有冲突.
解决办法是大家都使(Vim直接支持,Emacs需).
还有一个办法是呆在Vim的舒适区里.如能忍受没有org-mode和lisp的生活,那么不会有问题.
如犹豫不决,请重读&态度决定一切&一节.
我一旦认识到Evil和Evil-leader的潜力,立刻把我Vim的设置按Emacs的重设了一遍。
更光辉灿烂的例子就是spacemacs的作者了,无数的github星星代表了他的成功.
不习惯默认快捷键,怎么办?
默认快捷键经过几十年考验相当高效,未成为高手前还是要忍.
如一定要在用 Windows 快捷键的,可考虑 .
快捷键太多记不住怎么办?
没必要记,我也只记常用的十几个快捷键.顺其自然,多用记住,不用就忘,很正常.
目前很多高手在用 ,可飞快输入命令,快捷键实际上不需要了.
使用牛人配置后,界面有些奇怪的 bug,怎么改?
不要改! 参考上文一章,你觉得奇怪是因为缺乏经验,把某些特性误认为是bug.请坚持至少一年.
例如,有人反映右边第80列处总有一竖线,希望能去掉.
实际上这是一特性,提醒用户一行宽度不要超过第80列. 这是 .
我建议第一年应 尽量理解而不妄加判断.
已更新软件包,但是没有任何作用,也没有任何错误信息
删除HOME目录下的&.emacs&, &~/.emacs.d/init.el&就是取代原来的&.emacs&.
如有任何关于如何配置的问题
读官方教程善用 google 和我提供的信息
例如,问:在 .emacs.d 中的 init.el 文件起什么作用?答:google &emacswiki init.el&.
使用牛人配置后启动报错,如何解决?
先确认已装上了 你需要的 第三方命令行工具,这些工具是可选的,清单见.
如排除了以上原因,带上&–debug-init&参数重新启动,然后将错误信息及环境报告到对应的开发者.
报告时应给出细节.例如很多读者给我的bug都是由于第三方插件版本较新引起的,我拿到版本号后,才能下载特定版本已重现 bug.否则只能靠猜,来回邮件浪费很多时间.
牛人的配置太复杂,还是从一简单的配置改起好控制
那你就是走我后悔莫及的老路,一个人在黑暗中摸索.开头兴致很高,但现实是残酷的,碰到复杂问题解决不了.只能逃避,借口Emacs太复杂而放弃了.
我最终醒悟过来走上光明大道,很多走上岐路的人恐怕就没这个觉悟和毅力了.
希望自己掌控坦率地说是一个非技术问题,因为没有自信心,所以有补偿心态. 希望通过一种错误的方式来证明自己.结局无非是恶性循环.
正确地方法是放下身段至少一年 (我已反复强调这一点),打好基本功,读书,虚心向高手学习.
为什么我用了牛人配置后自己额外添加的插件无效
Emacs 是个开放平台,其众多插件发布前并不一定有严格的测试.所以插件之间可能有冲突.
这也是我为什么建议初学者直接使用牛人配置的原因,因为牛人已经解决了众多兼容性的问题,你只要直接享受他的服务就行了.
即使你发觉了牛人尚未来得及处理的bug,最有效方法是提交报告给牛人,而不是自己去钻研Lisp.
我想用 Windows 版本的 Emacs 而不是 Cygwin 版本,怎么做?
需对命令行操作熟悉.关键知识点有两个:
设置 HOME 环境变量,因为 .emacs.d 中的某些 elisp 脚本假定 .emacs.d 在 HOME 所指定的路径中.Emacs 的某些功能需要使用第三方的命令行工具,这些工具的路径应该添加至环境变量 PATH 中 (可选,原因见后面).
如你不知道如何在 Windows 下添加修改环境变量,不知道如何安装第三方工具,建议还是先用Cygwin中的Emacs,因它已自带工具,没有的话安装也方便.且在 Cygwin 下环境变量 HOME 默认已设.
第三方命令行工具清单请参考 中的 README.
Emacs 在代码跳转和自动完成上和商业IDE有差距,怎么办?
这个差距说到底是后端语法解析引擎的问题.通常这个问题都是以微软的Visual Studio和IBM的Eclipse作参照.
就C++来说目前有用苹果公司的
的方案,效果不错.具体用什么插件来调用这些引擎有很多选择,不展开了.
实战中,我通常就用ctags作为后端引擎,因其通吃所有语言. 虽然解析效果差一点,但是恰当的命名规范(尽量少重名)可以弥补.
如ctags不满意,可考虑用 (gtags).
以上讨论的都是后端引擎.
就前端界面来说,做的比较好的是,维护很活跃,你可就特定语言如何配置咨询其开发者.
Java和C#语言的主力开发工具最好用IDE而不是Emacs.C#又比Java更难在Emacs中使用.原因你懂的.
强烈建议用.
这是最佳的,我已试过 所有 可选项.
我用. 但有很多其他方案.
如你必须访问Microsoft Exchange Servers, 还要用.
用了Davmail后, 还可以用 来分捡邮件. Davmail+Popfile让我生活在天堂.
为什么 Emacs 启动时从服务器 (elpa) 安装第三方软件包 (package) 会失败?
请启动 Emacs 后,运行 `M-x package-refresh-contents` 以从服务器更新软件索引,然后重启 Emacs 即可.
如果你没有用Emacs24,没有完全拷贝高手的配置 (这是本文的中心思想),那么你需要安装package.el,细节参考.
Emacs 下载软件包 (package) 是通过 http 方式,所以如果网络出问题的话你需要用 http 代理服务器,具体操作见后文.
有些网站 Emacs 访问不了
在命令行中启动 Emacs 时加上 &http_proxy=your-proxy-server-ip:port& 前缀.
http_proxy=http://127.0.0.1:8000 emacs -nw
有些软件包下载不下来,也不会用代理
和我的配置配套的是我建立的独立的第三方包服务,请参考.
早点学习 Emacs Lisp 是否有助于成为 Emacs 高手?
否,只会起阻碍作用!
Lisp语法和通常的语言不同,除非有相当编程经验(至少10年),一般人都会对其有一点负面情绪(当然是毫无道理的偏见!).学习任何新东西,长期来说兴趣最重要.一开始应避免任何负面情绪.
Emacs Lisp又是只用于Emacs的语言,有大量术语需要掌握.如&Buffer&,&Yank&,&Font face&,只有资深用户才能理解.
所以在软件使用没有相当基础前学习其拓展语言是浪费时间.
参考前文关于找到切入点的一节,我推荐的顺序是,先用优秀的配置享受到好处,有了兴趣后学习Lisp就水到渠成了.
有世界级高手(名字不点了)对我的建议不以为然,他说Lisp很强大很有趣,应该先学.
但是他的盲点在于,忘记了自己转向Emacs前在其他编辑器上已一览众山小了.他用Python拓展Sublime已熟到厌烦,Lisp的奇特语法反而刺激了兴趣.编辑器的常用术语也不在话下. 而本文针对的是大多数的凡人.
选择适合自己的路,一年以后天才也好,凡人也好, 达到的高度都是一样的.
掌握 Emacs Lisp 是否是成为高手的必要条件?
否.但Lisp是很强大的语言,特点是一切皆可改.当我说&一切&的时候,我就是指字面意义上的&一切&,不是修辞上的夸张.
我用过许多编辑器,除了Emacs没有一个能做到&一切可改&这点 .vim也不行.
所以学点Lisp对提高Emacs水平没坏处.另外Lisp语法不错,值得程序员一学.
顺便说一下,Lisp很简单,比VB容易多了,一旦你适应其语法,就会发觉它其实蛮友好的,至少少打很多字.
有必要学习键盘宏(Keyboard Macros)吗?
没必要,Lisp足够了.
但是键盘宏生成的Lisp代码有时候比较有趣,建议你精通Lisp后再来玩玩键盘宏.
基本操作我会了,下一步学什么迷茫中
关键是你打算用这把瑞士军刀做什么.
前文已强调过以兴趣和解决实际问题作为切入点.
举一些我自己的例子说明:
我有写博客需要,懒得用Wordpress那个破界面,所以用开发Ruby on Rails程序需要IDE,装了 rinari做跨平台C++桌面开发,装了cmake-mode需在多个子窗口间跳来跳去,所以装了大项目需同时调试多种语言,所以装了,这样不用记特定语言的语法就可注释掉代码.
如何学习org-mode?
是不错的中文教程.
最好的英文教程是Carsten Dominik(Org-mode发明者)在.其要点为org-mode本质是一个文本文件,只要记住按TAB展开或者缩进条目就可以了.其他特性可慢慢学.
对于&一切都用Emacs来完成&的观点你怎么看?
不要走火入魔.Emacs本质是个平台,提供了无限可能性.
从实用角度讲,Emacs和其他工具结合有时能更快完成工作(不过在没有一年的修炼之前 千万不要猜Emacs不能做什么).
以下是Emacs不一定能吃独食的地方:
剪贴簿: 应结合命令行工具xsel(Linux)/pbpaste(OSX)/putclip(Cygwin)Web浏览: 用Firefox结合插件如keysnail远程登录管理: 用screen/tmuxFTP: 用专门的FTP软件文件管理: 用专用软件Lisp速度比较慢,如有大计算量的工作,交给第三方工具来作.
重点是头脑灵活,既坚信Emacs无所不能,也适当变通.
以及 ,也可通过我 email&chenbin DOT sh AT GMAIL DOT COM&联系我.我在新浪
上开通账号 emacsguru.
主力博客为 .
我不回答具体配置的问题.如你通读本文,应知道哪里找答案更好.
再强调一下本文最重要的观点:
以 基于解决实际问题产生的兴趣引导完全照抄世界顶尖高手如Steve Purcell的配置,尽量避免自己写Lisp给高手报bug就是最好的学习,学习Emacs和 学任何专业技能(拉小提琴,解数学题)的方法论都是一样的,请参考.
关键是你以严肃的态度把其当作专业技能学习.
很多人之所以不赞同我的核心观点,是因为内心深处还有把Emacs当玩具来炫耀&我有多酷&的意识.
Emacs强大到可以作为另类娱乐来博眼球.但本质是专业人士使用的神器.
打个比方,职业杀手对于刀只关心两件事:
高效地杀人任何环境下都可靠
刀的装饰是否漂亮或技巧是否自己原创对他并不重要.
Emacs就是那把刀.
本文官方网址为 .
有任何疑问,请在以上网址报bug.这比Email快.因GitHub会以邮件通知我,GitHub邮件永远归类至我的最优先文件夹下.
如给我发Email,会淹没于垃圾邮件中.
不要复制粘帖本文
Emacs 本质上是一个社区和平台,不断有新的有趣的人和技术出现.我会定期更新本文.
如果你拷贝粘帖全文,会使自己和他人错过更新.
我建议分享本文的链接,
中英文纯文字版会发布在 GitHub 上 ()中文 HTML 版会发布到我的官方博客 ()考虑到中国大陆的网络情况,还有另一中文 HTML 版镜像 ()
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:787567次
积分:6071
积分:6071
排名:第2696名
原创:127篇
评论:560条
(1)(1)(1)(1)(1)(1)(1)(2)(1)(2)(2)(2)(2)(4)(3)(3)(3)(1)(1)(2)(1)(1)(1)(1)(2)(1)(1)(3)(1)(1)(2)(6)(4)(4)(2)(1)(2)(2)(2)(15)(4)(1)(14)(12)(12)

我要回帖

更多关于 spacemacs python 的文章

 

随机推荐