如何提高编程速度
- Description
- Curriculum
- FAQ
- Reviews
教授专家快速编程的独家秘诀
课程内容:
– 在一周到两周内精通主流的编辑器和IDE(Emacs, Vim, Visual Studio Code, IntelliJ IDEA, Sublime Text 3)的文本文件操作
– 学会Linux/Unix的Shell,能够结合命令行程序和编辑器优化工作流
– 学会用 Lisp 拓展神之编辑器 Emacs. 掌握函数式编程技术
课程目标:
– *使你编写代码更轻松愉快*
– *编程速度在如Google,Facebook,Amazon这样精英荟萃的硅谷大公司也能位于前5%*
– 帮你增加影响力,让老板认定你就是好莱坞电影中的黑客程序员
课程分为两部分.
第一部分教文本文件操作术:
– 以流行的编辑器Visual Studio Code为例教授所有文本文件操作基本知识
– 以Vim的官方教程为参照,教授高效文本操作术
– 将Vim的技巧应用于Visusal Studio Code
– 研究最优化快捷键的方法: *任何工作流都可分解为多个基本文本文件操作命令.基于用Emacs插件keyfreq积累的一年统计数据,我只优化最常用的命令.此方法被Emacs Lisp世界排名第二的Bozhidar Batsov背书*
– 教授用于文本处理的正则表达式(regular expression)技术和文件路径匹配的glob pattern技术.它们被广泛用于各种语言编程.在本教程中会用于开发编辑器插件.
– 将以上技巧用于第三方编辑器和IDE
– 学习Emacs文本文件操作技术. 神之编辑器Emacs的用户有Facbook的创立者Mark Zuckerberg, 自由软件运动发起者Richard Stallman. 我Emacs Lisp世界排名18.所以有信心保证你学会
第二部分教Lisp编程.以Emacs为例,掌握独立开发插件,拓展编辑器的能力:
– 读者只要有初级程序员能力.有写过100行左右任何编程语言的代码的经验即可
– 学习Emacs Lisp基本概念: 变量, 函数, 运算符, 循环和条件判断语句, 文件读写,其他编辑器相关概念
– 学习Linux/Unix命令行和Shell基本知识
– 开发文件查找插件
– 开发文本搜索插件
– 开发代码自动成插件
– 开发代码导航插件
– 写代码优化拼写检查
– 写代码优化语法检查
小结:
– 第一部分对命令使用频率和快捷键设计的点评初学者节省精力和时间,为专家指出了优化效率的方向。
– 第二部分Lisp开发的例子是精心选择的.覆盖了程序员日常工作流.代码性能针对主流操作系统(Windows/Linux/macOS)都已优化
报告Bug:
– 如有 Emacs 的问题, 在我 Github 的 emacs.d 项目下报告可获得最快对应
– 其他问题在课程所在网站报告
– 确保相关软件升级至最新版
– Vim一直有含有字母x的快捷键无法使用的bug,升级到8.2版本后,此问题已修正.唯一的例外是快捷键”,xx”,建议使用其他快捷键代替”,xx”.
– 其他编辑器和IDE没有快捷键无法映射问题.*本课程从未把Vim作为主力编辑器推荐.Vim只是学会高效文本操作术的工具*
注意, 课程篇幅有限,只给出结论和怎么做,来龙去脉从简了. 如了解技术细节或获得最新技术更新:
– 可订阅知乎专栏”如何提高编程速度”
– 在 Github 上加我 @redguardtoo
– 我的微博 @emacsguru
-
1课程更新记录
# Changelog
## [2020-04-24]
- 加入 Emacs 官方教程视频 (zh)
- video on Emacs official tutorial (en)
## [2020-02-26]
- 加入更新ideavim至0.55.1的视频 (zh)
- 更新IntelliJ IDEA子窗口操作视频 (zh)
- `$HOME/.ideavimrc` 更新了 (zh)
- Add video to upgrade ideavim to 0.55.1 (en)
- Update video on sub-window operation of IntelliJ IDEA (en)
- `$HOME/.ideavimrc` is updated (en)
## [2019-09-31]
- 第一版发布 (zh)
- the first version is released (en)
-
2为什么要提高编程速度?具体如何做?
-
3使用科学数据提高编程效率
附件`keyfreq.txt`为我使用Emacs各种文本文件操作的一年统计数据。
-
4优化文本文件操作术的代价
-
5单个文件中查找替换字符串的练习资料
-
6多个文件多目录的文件文本操作练习资料
-
7取自于真实ReactJS项目的代码资料
-
8Visual Studio Code 配置文件
此配置文件为了配合教程,做了一些简化。例如没有用VSCode的第三方插件matchit的快捷键覆盖
VSCode默认的快捷键。建议在学习前面几章时不要执着于快捷键。到学习"用Vim的技术强化Visual Studio Code”一章时在研究如何优化快捷键。
启用其中所有功能需要安装vim和matchit两个插件。
我的个人VSCode完整配置在 https://github.com/redguardtoo/vscode-setup。在完成本教程前不建议使用此配置。
-
9IntelliJ IDEA的插件IdeaVim的设置
-
10Sublime Text 3的配置文件
-
11VSCode的精华只在于一个快捷键Ctrl+Shift+P
- 强调Execute All Commands需要大量使用,代替不常用的快捷键。此命令等价于Emacs的M-x命令。不要觉得这是人人都已掌握的常识。我可以断言,99%的用户 使用此命令的频率还是太低。不久之前我也是这99%的用户之一。
- 只有在我用 “使用科学数据提高编程效率” (https://zhuanlan.zhihu.com/p/68182816) 一文中科学方法测量过之后,我才意识到很多我以为应该常用的命令实际上用得不多。不值得为记住其快捷键浪费脑细胞。所以我使用Emacs中的M-x次数才多了起来。
-
12学习VSCode中File菜单下所有功能
- 很多资深用户也会在基本功上有遗漏。阻碍了他们的进一步提高。所谓基本功就是文本文件操作术。我的教程的目标就是补足所有的基本技术。所以会按照主菜单顺序讲解点评所有功能本教程讲述
- 专家实战经验. “实战”这个词可能已被用烂了。网上大多数教程中“实战”两个字的意思就是照着手册“实际操作一遍”。要它们质疑大公司产品经理的决定是绝对不敢的。我肯定是在教程中要把所有不合理的决定都质疑一遍的 (陈斌:VSCode对Emacs,代码浏览哪家强)
- 演示了如何充分利用Execute All Comands。少记好多快捷键。要把有限的精力放在少数几个常用的功能上。如伟人所教导的,”集中兵力打歼灭战“
- 尽可能用电脑自动完成工作
-
13Edit菜单下的Undo/Redo功能
-
14Edit菜单下的查找替换
程序员最常用功能。在选定区域查找替换非常有用。
-
15在选定区域内查找替换(VSCode版和Emacs版)
-
16Edit菜单下在多个文件中查找替换
在多个文件中查找替换是最有用的功能,大量用于重构和阅读代码。但是大多数程序员对此功能没有充分利用
-
17Edit菜单下注释代码
注释代码是最常用最经典的场景,但是被大多数程序员忽视。实际上有很大的优化空间。
-
18Edit菜单下Emmet工具箱
Emmet那套自动完成html代码已被现代的web开发淘汰了。不过工具箱中其他工具还有可取之处。
-
19Selection下拓展/收缩选择区域和其他技巧
是程序员最常用的技巧,一定要记住其快捷键并尽量多用
-
20Selection菜单下行操作
行拷贝很常用。
-
21Selection菜单下Multi-Cursor技术
-
22View菜单下Open View及通用菜单操作
-
23View菜单下Appearance菜单
-
24View菜单下Editor Layout菜单(子窗口操作)
非常经典常用的操作。必须多加练习和应用
-
25View菜单下选择左边栏和下面板
-
26View菜单下折叠行和显示空格字符
-
27Go菜单下跳转到另一个符号或当前符号的定义
程序员每时每刻必用功能,一定要记住并采用高效快捷键
-
28Go菜单下以文件名搜索并打开项目中任意文件
-
29Go菜单下回退到之前编辑过的地方
非常经典的功能,一般和查找定义一起用
-
30Go菜单在子窗口和打开的文件间移动控制焦点
-
31和跳转对应的Peek功能(看一眼但不动控制焦点)
-
32Go菜单跳到指定行和在匹配括号间跳转
常用功能。匹配括号间跳转如结合Vim插件则是大杀器。后续课程会给出更多细节
-
33Go菜单在跳到下一个语法错误
一般跳到第一个错误后就不需要再跳转了。自带的语法检查也好,第三方语法检查也好,都是实时检查错误。所以你不可能有两个以上错误。快捷键不用记。
-
34Go菜单下跳到下一个变化
-
35Debug菜单
-
36Terminal菜单
-
37Help菜单
-
38如何选择高质量插件
这个秘笈除了本教程外我从未公开过。因为我自己也开发了很多Emacs插件。如有人把我对其他插件的褒贬应用到我自己头上,会比较尴尬
-
47把Visual Studio Code变成Vim
-
48设置全局快捷键
-
49代码导航相关全局快捷键优化
-
50Visual Studio Code 全部设置
最新设置可从 https://www.github.com/redguardtoo/vscode-setup 下载。建议在学完本教程后再下载最新配置。在教程第一章已提供了一个简化的配合教程的设置,推荐使用词简化设置。
-
51File菜单的优化
-
52Edit菜单下优化Undo/Redo和剪贴板操作
-
53Edit菜单下查找替换的优化,学习正则表达式
-
54Edit菜单下查找替换多个文件的高级技巧
-
55Edit菜单下注释的优化,行选择的技巧
-
56Selection菜单下选择文本的高级技巧
-
57View菜单下子窗口高级技巧
-
58Go菜单下高级技巧
-
59在配对的符号间跳转的高级技巧
-
60代码自动完成的高级技巧
-
61跳转到声明(Go to Declaration)的高级技巧
理论上可选的。但实际上高手都用此技巧。
-
62在当前文件搜索文本的高级技巧
理论上可选的。但实际上高手都用此技巧。
-
63打开当前光标下的文件的高级技巧
理论上可选的。但实际上高手都用此技巧。
-
64把VSCode的Vim插件和Neovim结合
可选,如果你已精通Vim和VSCode,希望简化工作流,把查找替换语法统一到Vim的原生语法,可以用此技术。
Social Network