一年成为Emacs高手(像神一样使用编辑器),写给互联网大厂员工的真心话_一年emacs-程序员宅基地

技术标签: 2024年程序员学习  编辑器  emacs  

打开Emacs后,同时按下Alt和X健,输入help-with-tutorial(后文中,类似快捷键以简写`M-x help-with-tutorial`代替),回车.

仅需半小时.关于Emacs的多难学的谬论可以休矣,因为半小时的代价微不足道.想想你去年有多少小时白白虚度了吧.

这步是必须的,不要跳过!

例如,我发觉很多读者的问题是不知道如何查看变量函数的文档,这在官方教程中都有说明.

5 以兴趣和急需解决的问题作为切入点


因为如果微小的努力能得到巨大的回报,你就会越学越有乐趣,进入一个感情上的正反馈.

长期来说,在任何领域要成为高手,兴趣是最重要的.

以我为例,我急需GTD的工具,而emacs的org-mode是世界上最好的GTD工具(没有之一).用org-mode大大节省了时间后,我对于emacs爱屋及乌,兴趣高涨了100倍.

6 站在巨人的肩膀上


这方面我是个负面榜样.开始阶段我还是抱着玩的心态,喜欢到处找有趣的配置粘贴到我的.emacs中去.

这是浪费时间!

我应该一开始就照抄世界级大师Steve Purcellemacs配置 .

警告,Purcell总爱试用最新的Web开发的新技术,对他而言稳定性不是第一位的,如果你有足够的热情和能力,愿意和他一起折腾,那么你的Emacs水平会提高得很快.

这个如果是很重要的前提,当我上了Purcell的贼船时,我已有10年开发经验,精通多种开发语言.

如果你不愿意过于折腾,那么你至少不要重复我的错误,你不要质疑,你不要创新,你要跟着高手做.比如Eric Schulte的Emacs-starter-kit很适合初学者.Bozhidar Batsov的配置也不错(不一定适合初学者).也可以用我的配置.

直说了把,你是初学者,开始阶段应以学习模仿为主.这点怎么强调也不过分!

为了加深印象,让我再举一个例子.一些读者向我反映,Emacs快捷键太多,背起来压力很大.实际上这是初学者先入为主的偏见.对高手来说,有了恰当的工具后,快捷键很多情况下并不需要.盲目地去背快捷键只会延迟你成为高手那一刻的到来.如果你只是复制了高手的配置开始使用而不是纠结于完成被快捷键这个无聊的任务,你会发觉高手以安装了名为smex的插件,使得你直接输入命令比用快捷键还快.所以背快捷键也不需要了.

顺便说一下,很多高手的配置需要git才能更新,这意味着你需要安装git和cygwin(限于windows平台).这是买一送二,我又给你介绍了两个高手必备的世界级工具.

7 高手都在哪里


7.1 加入google plus的Emacs社区

Google Plus的Emacs社区在此时( 2012-12-25 二)Geek的气场非常强,讨论的贴子质量非常高.我上过很多大众和小众的Emacs社区,这是我的经验之谈.例如,我加入了Linkedin和Facebook的Emacs社区,目前都退出了.并不是这些社区不够专业,只是Google Plus讨论问题的技术层次比较高.

如果你只能加入一个网络社区的话,那么就是Google plus了.

另外,著名Emacs用户Xah Lee(个人网站为李杀网, 其账号名为ErgoEmacs)每周二会在Google Plus上组织一次Emacs问答.

7.2 reddit的Emacs社区质量也不错

reddit上一些讨论挺有新意,深度上不及Google+.

由于Prism事件,一些Emacs高手抗议Google泄漏隐私给美国政府的NSA,离开了google+社区,他们可能以后会把主要精力投入reddit,所以reddit会在geek的氛围上有所增强.

7.3 github是geek云集的地方

github的版本控制服务很好.现在它的社区化倾向越来越强了,我喜欢.

例如,可以看一下https://github.com/languages/Emacs%20Lisp上最酷的Emacs插件.

7.4 Emacs牛人的博客

最好的是Planet Emacsen,多个Emacs博客的集合.

8 搜索最新讯息


8.1 在twitter上以"emacs :en"定期搜索

twitter人多,更新结果快.

8.2 在stackoverflow上搜索emacs相关的讨论

google “emacs-related-keywords site:stackoverflow.com”

我会定期搜索,同样的帖子反复精读.因为stackoverflow上的讨论质量很高.

8.3 使用google快讯

每周一次给我邮箱发一次摘要,仅限最佳结果.这样的话信息质量可以得到保证.

8.4 到Youtube上看emacs相关的视频

例如,我就是看了Google Tech Talks上这个Org-mode作者的介绍而爱上org-mode.

注意,Youtube搜索的结果是最佳匹配的.问题是关于Emacs的视频并不太多,如果按照Youtube的算法,我每次搜索看到的总是那几个录像.所以如果关注重点是看看Emacs社区有些什么新东西的话,默认搜索结果应以时间排序.

9 将emacs配置管理起来


我将emacs配置纳入github的版本控制,见https://github.com/redguardtoo/emacs.d.

版本控制可以是认为一个集中式的知识管理,任何时刻任何地点对Emacs配置的修改都要及时上传和合并(merge).这点对于个人能力的长期积累很重要.

10 将emacs相关资料(如电子图书,博客文章)管理起来


我将我收集的所有Emacs相关资讯都放在dropbox的服务器上,然后用dropbox的软件同步资料到我的智能手机和我的IPad上,这样我可以充分利用空闲时间学习.

点击这里注册dropbox帐号.注意,dropbox客户端完全可以在国内使用,虽然访问其首页可能有点问题.

11 EmacsWiki


EmacsWiki是一个社区维护的Emacs文档,可以认为是最酷插件和最佳实践的集合点

12 Emacs Lisp书籍推荐(可选)


关于Emacs Lisp (elisp)书籍,我已读完<An Introduction to Programming in Emacs Lisp by Robert J. Chassell>.我建议你不要读该书.因为写得不好.很枯燥,重点不突出,而且内容已有点过时了.

我正在读<Writing GNU Emacs Extensions by Bob Glickstein>.我强烈推荐这本书,重点突出,生动,例子丰富.作者明显是高手,并且用心安排了书的结构.例如,他很早就介绍了defadvice的用法.我很认同这点,dfadvice是elisp语言的精华.

Xah Lee提供付费Emacs Lisp教程也相当不错.

13 认识到Emacs是一种生活方式


如果你照着我以上的做法做,就可以认识到Emacs牛人其他也很牛.Emacs实际上体现了牛人的一种生活方式.

像那些牛人一样思考,像那些牛人一样做事,不要怀疑,不要犹豫,很快你就会发觉自己也开始有些牛人的气质了.

例如,Sacha Chua就是这样一个有牛人气质的女孩,这是她的Youtube录像. 她学习Emacs的方式是让Emacs自动将手册语音合成, 这样她在房间里走来走去的时候也可以听文档了.

想想看, 这些用Emacs的人都是什么样的Geek啊!所以,我认为Emacs不仅仅是一种工具,它是个社区,一种文化.

对我而言,加入Emacs社区让我学会了谦卑.当我明白了Emacs的其朴素的设计思想和其强大的可拓展性后,我的感觉是敬畏,因为我做不出这样的软件.

我既没有能力把一个编辑器设计成一个人工智能语言Lisp的平台,也不可能花30多年的时间对一个软件精益求精.

14 精品Emacs第三方插件推荐


我推荐插件标准如下:

  • 高品质

  • 经常更新

  • 功能强大

所有插件都可以通过Emacs的package manager下载.

以下是插件清单:

| 名称 | 说明 | 同类插件 |

| — | — | — |

| evil | 将Emacs变为vi | viper |

| org | org-mode,全能的note工具 | 不知道 |

| org2blog | 给wordpress写博客 | 不知道 |

| company-mode | 自动完成输入,支持各种语言和后端 | cedet, auto-complete |

| expand-region | 按快捷键选中当前文本,可以将选择区域扩展或者收缩 | 不知道 |

| smex | 让输入M-x command变得飞快 | 不知道 |

| yasnippet | 强大的文本模板输入工具 | 不知道 |

| flymake-xxxx | 以flymake开头的所有包,针对不同语言做语法检查 | flycheck |

| helm | 选择和自动完成的框架,在其上有很多插件完成具体功能 | ido |

| ido | 和helm类似,我是helm和ido同时用 | helm |

| js2-mode | javascript的major-mode,自带javascript语法解释器 | javascript-mode,js-mode,js3-mode |

| w3m | Emacs的网络浏览器 | 不知道 |

| elnode | elisp写的Web服务器 | 不知道 |

| smartparens | 自动输入需要成对输入的字符如右括号之类的字符 | autopair |

| window-numbering.el | 跳转到不同的子窗口 | 不知道 |

| web-mode | 支持各种HTML文件 | nxml-mode,nxhtml-mode,html-mode |

15 小结


看到这里你应该很清楚了,我的方法就是以兴趣作为切入点,以天才作为榜样,大量阅读,大量练习.

如果你想获得真才实学,想变得更强,变得更优秀,这就是唯一的方法,唯一的捷径.

这个方法不是我发明的,古往今来的杰出人士都是这么做的,如果你需要一点"更科学的"论证,请参考一万小时天才理论.

16 联系我


这是我的twittergoogle plus以及微博,也可以通过我的email联系我.我也在新浪weibo.com上开通账号emacsguru.

我的主力博客为http://blog.binchen.org.

我不会回答Emacs配置的具体问题,因为如果你通读本文,应该知道哪里找答案更好.

17 答疑


17.1 Steve Purcell的配置是否有文档可以参考?

除了README外没有,我主要是通过看EmacsWiki和源代码来了解.一个窍门是通常主源代码文件的头部有使用指南.

17.2 Steve Pucell的Emacs配置需运行git和subversion,有没有更简单的配置?

那么你可以用我的配置:

  • 去掉了git和subversion的依赖. 你只要下载我的配置,确保网络OK(因第一次启动Emacs会自动下载安装软件包).

  • 已安装了拼音输入法eim

  • C++支持强大,因我还做一些桌面开发

注意,Purcell是顶尖的Web开发者,他会试用各种最新的Web开发技术,如果你用了我的配置,Web开发插件更新会滞后一段时间.另外我的开发工具链和Purcell的不完全一致.你自己权衡了.

17.3 我已是Vi高手,为什么要转到Emacs来?

嘿嘿,我也是Vi精通后转到Emacs的.我转换阵营的原因就是因为Emacs的强大(例如和gdb的完美结合)以及其脚本语言是lisp.

当然Vi的多模式编辑和快捷键比Emacs要高效得多,所以最佳方案是Vi的快捷键加上Emacs的强大.

目前我在用evil-mode,在Emacs下模拟Vim操作,结合了两者的优点.简单地说,现在我的运行模式"神用编辑器之神".

警告,Steve Purcell和我默认都启用了Vim的快捷键,如果你不习惯的话,可以打开~/.emacs.d/init.el,将其中相应的一行注释掉,具体注释哪一行请参考README.

17.4 我对于Emacs的默认快捷键很不习惯,怎么办?

Emacs的快捷键是经过几十年考验相当高效的,我建议你在未成为高手前还是学习Emacs的默认快捷键.

如果一定要在Emacs下用Windows快捷键的,可以考虑ergoemacs.

17.5 Emacs快捷键太多记不住怎么办?

没有必要记快捷键,我也只能记住常用的十几个快捷键.顺其自然,常用的命令你自然会记住快捷键,过一段时间不用了,又会忘掉,这很正常.

目前很多高手在用Smex,可以飞快输入命令,很多快捷键实际上不需要了.

17.6 使用牛人的Emacs的配置后,发觉界面有些奇怪的bug,怎么改?

不要改!参考上文[站在巨人的肩膀上]一章,你觉得奇怪可能是因为缺乏经验,把某些特性误认为是bug.请坚持至少一年.

例如,有人向我反映,在编辑任何文本的时候,会发觉右边约第80列处总有一竖线,希望能去掉.这实际上是一特性,提醒你每一行不要宽度不要超过第80列.这里是每行不要超过80列的原因.

我建议你学习Emacs的第一年的原则应是,理解而不判断.

17.7 已按指示下载更新软件包,但是好象没有任何作用,也没有任何错误信息

删除home目录下的.emacs,~/.emacs.d/init.el就是取代原来的.emacs.

17.8 我有任何关于如何配置Emacs的具体问题

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

面试真题

Spring源码笔记

[外链图片转存中…(img-mYutACBg-1711094225051)]
[外链图片转存中…(img-riM9XntN-1711094225052)]
[外链图片转存中…(img-vmeg8Q3B-1711094225052)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-0s8BrWpC-1711094225053)]

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

[外链图片转存中…(img-7AMO7w7J-1711094225054)]

[外链图片转存中…(img-d1cZUeep-1711094225054)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_61067876/article/details/136943837

智能推荐

Pytorch保存和加载模型(load和load_state_dict)-程序员宅基地

文章浏览阅读4.9w次,点赞74次,收藏204次。Pytorch目前成为学术界最流行的DL框架,没有之一。很大程度上,简洁直观地操作有关。模型的保存和加载,于pytorch而言,也是很简单的。本文做了一个比较实验,方便大家理解。首先,要清楚几个函数:torch.save,torch.load,state_dict(),load_state_dict()。先举最简单的例子:import torchmodel = torch.load('my_model.pth')torch.save(model, 'new_model.pth')上面的代码非_load_state_dict

fiv.js实现 flv格式监控视频流拉码(前端)-程序员宅基地

文章浏览阅读633次。最近项目有个新需求,需要实时直播工厂监控,与后端沟通交流也查询资料确定了fiv方案,优点在于相较于flash插件系列方案更独立(何况flash都被众大浏览器抛弃了),相较于hls延迟更低。遇到解决的问题也蛮多的,比如cors跨域问题,视频空白问题,视频卡顿问题,欢迎交流。第二步 在自己的页面引入fiv.js。接下来就是在页面写代码 上完整代码。_fiv.js

Android 基于Zxing二维码扫描的光速实现_fastqrcodescannerview-程序员宅基地

文章浏览阅读1w次。Android 十分钟光速实现二维码扫描前言在项目中要使用到二维码的相关内容,我们第一时间想到的是使用大名鼎鼎的zxing或者ZBar开源框架:github-zxing官方库的地址 github-ZBar官方库的地址除了这两个有名的框架之外,还有@bingoogolapple大神的扫描库github-BGAQRCode库以及国外@dlazaro66大神的github-QRCodeReaderView_fastqrcodescannerview

影视站长必备资料合集_九草影视-程序员宅基地

文章浏览阅读4.8w次。苹果cms最新程序官方网盘:https://www.lanzous.com/u/magicblack推荐使用卧龙资源: http://wolongzy.net (速度快,稳定)共有资源30719+八戒资源站 http://zy.bajieziyuan.com (秒播)共有资源20308+麻花资源资源站http://www.mahuazy.ne..._九草影视

python语言属于什么语言,python属于什么类型语言-程序员宅基地

文章浏览阅读861次,点赞21次,收藏10次。而今以及未来的时代,将会是人工智能以及大数据的时代,在这样一个时代背景下,必然要顺应时代的发展与变化,未来新一代青少年,需要掌握人工智能此类高端技术,那么,在众多编程语言当中,最为擅长数据处理,最能够在"人工智能”方面发挥作用的,就是Python!2 通过大量招聘与应聘数据的记录(有多少招聘岗位的发布,某种类型岗位的平均薪酬是多少,每天固定时间收集并处理一次数据),通过一年数据的积累,能够得到某种岗位的发展趋势以及时间(月份)对工作的相关影响。大量的数据处理,是大数据以及人工智能技术的基础。

[附源码]PHP计算机毕业设计天津市杨柳青智慧景区信息系统(程序+LW)_php景区票系统源码-程序员宅基地

文章浏览阅读159次。附源码]PHP计算机毕业设计天津市杨柳青智慧景区信息系统(程序+LW)该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:小皮PHPstudy。项目技术:php+ Vue等等组成,B/S模式 +Vscode管理+前后端分离等等。环境需要1.运行环境:最好是小皮phpstudy最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发环境:Vscode或HbuilderX都可以。推荐HbuilderX;3.mysql。_php景区票系统源码

随便推点

Apache Phoenix介绍(SQL on HBase)-程序员宅基地

文章浏览阅读372次。2019独角兽企业重金招聘Python工程师标准>>> ..._apache phoenix官网函数介绍

sqlmap [CRITICAL] can‘t establish SSL connection_can't establish ssl connection-程序员宅基地

文章浏览阅读969次。因为网站是https的,需要ssl证书书,有的网站遇到这种情况就没法跑。有几种解决办法,我采用了如下办法解决。先加个 –-force-ssl参数,再加上bp(或者其他)的代理。sqlmap碰见了如下错误。bp可以看到测试记录。_can't establish ssl connection

微信小程序_sitemaplocation-程序员宅基地

文章浏览阅读257次。sitemapLocation:暴露至外部搜索的相关配置项。可滚动视图区域。一般是固定区域内,然后将图片、列表等超过尺寸的内容放进去,从而实现滚动。常用参数如下:比如:其中white-space属性用来处理元素中的空白,有几种选项:normal、nowrap、pre、pre-wrap、pre-line、break-spaces。一般scroll-view与white-space合用,此处选择nowrap表示不对超过一行的数据进行换行,如果选择normal则会换行,滚动失效。事件包括:点击tap、输入i_sitemaplocation

Python爬虫怎么学?面向招聘岗位职责学习,看看你的技术能拿多少薪资(3)-程序员宅基地

文章浏览阅读911次,点赞8次,收藏20次。Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2021-11-14_在玩牌程序中,每一组牌用数字1 13代表。输入数字,显示相应的牌。其中2 10直-程序员宅基地

文章浏览阅读2.1k次。“21天好习惯”第二期—1经典例题:在玩牌程序中,每一组牌用数字1〜13代表。输入数字,显示相应的牌。其中2〜10直接显示数字,而数字1、11、12、13则分别用Ace、Jack、Queen、King来表示。解法:..._在玩牌程序中,每一组牌用数字1 13代表。输入数字,显示相应的牌。其中2 10直

VxWorks基本概念及常见问题及BSP 概念-程序员宅基地

文章浏览阅读5.2k次。VxWorks基本概念及常见问题 (Drew 在开发过程中对下面概念的理解) Bootrom和Boot image的区别,Boot image和VxWorks image的联系和区别bootrom 是指on-chip bootrom,在CPU芯片内部,内嵌有小的boot程序(bootloader),类似于PC机主板上的BIOS的存储区域。和boot image不是一回事。VxWorks文档中的bo_vxworks基本概念及常见问题

推荐文章

热门文章

相关标签