就freenode里面的#emacs频道,有一些六十多岁的emacs开发者,简直牛逼的不行了
IDE 也是有的。
Vscode: Alt + Mouse left click
Intellij: Alt + Shift + Mouse left click。想要一次性选中当前页面中所有的,就用Ctrl-command-g (mac上)。
但其实,ide有高效的refactor的方式,是会自动检测你的project的内容的,比方说你改了个class name,那么对应的其他地方import或者定义了object的话,就会提示你需不需要refractor。但这需要对语言/框架100%的理解,lsp现在也在实现这方面的东西。
我个人觉得这个是比传统的multucursor / iedit 方式方便的。这个不需要用户一个一个的去查看,一般来说都是选择refractor的,它甚至会区分comments里的内容,看你需不需要refactor。如果对一个新项目的内容不是特别熟悉的话,这个功能真的是满强大的。真是懒人日常必备😂,对理解项目也有帮助。
这种重构主要对语言支持比较好的情况, 比如Java, 非常成熟和安全. 但是对于那些脚本语言, 很难保证重构的正确性.
IDE 的 rename refactor 主要是对变量的重构比较方便, 有时候会进行一些代码级别复杂API重构,IDE就很难做到.
举个例子: 在项目中找到匹配某个正则表达式的行并进行 API 重新设计:
- color-moccur.el 中进行正则表达式匹配, 找到整个项目中所有匹配的行, 而不仅仅只是一个变量
- 在 moccur buffer 中按 r 进入编辑模式
- 然后在 moccur buffer 中用 multiple-cursor.el 进行批量匹配编辑, 多光标改 API
- 最后 Ctrl + C Ctrl + C 重构所有 API
这种级别的操作时, IDE 那种只是单纯的改变量和函数名称的动作就做不了了.
注释用的字体挺好看的,名字是什么?是等宽字体吗?
mac默认字体
公开吧,我在外面边遛娃边写代码,私信聊好累,也不能及时讨论
color-moccur。把相同文件名的聚合在一起,文件名单独一行,比较方便
那我整理成个文档另外发出来
私信你了~查看下
你是说类似要改:
emacs-china
emacs-china-lsp
emacs-china-general
这些类似的变量么?
确实用正则会很方便。
不过现在intelllij真的还是做的挺人性化的,它也有regex的选项可以勾选。
现在IDE都做的不错, 只是不喜欢点鼠标, 点一下, 我就忍不住卸载了.
我装 IDE 的目的就是定期去模仿一下他们优秀的插件.
这是没有 namespace 的无奈之举,其实是语言本身的设计问题。╮( ̄▽ ̄"")╭
我觉得不是鼠标本身有什么原罪,只是鼠标相关的绑定设计的太低效了:只能用左右键和滑轮,通过菜单和滚动来交互。像一些建模软件那样,和 Shift, Alt, Meta 键乃至鼠标手势组合提供更多的功能,其实用起来是很爽的。
商业世界, 唯快不破.
IDE世界都是面向鼠标快速出产品的, 没人像 Emacs/VIM 这些黑客慢慢磨细节.
e.g., CAD
以python为例
展示文档的意义不是很大
从doc中提取代码应该更有意义
将代码放到一个临时的buffer 可以执行 查看结果 扩展里面的函数(将代码插入当前buffer)
最后将代码回写到doc中
可以不改变原来的代码 用个简单的sqlite也可以
每个人用到的情况不同。。
本掉包侠表示展示doc的意义对我来说很大。。尤其是能针对性的显示argument documentation的。。至于文档中的代码。。我用到的package 的doc里有代码的就没多少,能直接放进source buffer里用的就更少了。。
虽然可以随时调出dash来看文档 但是终究不够specific
之前看到过不知道是IDEA还是什么的操作视频, 选中一段代码之后, refactor菜单里可以将这段代码转换为一个函数, 同时选中部分被自动替换为函数调用. 当然跟具体代码有关.
代码的智能化编辑是一个发展方向.
主要是要基于抽象语法树来做这些基础设施, Emacs底层是正则表达式, 这种东西在复杂场景一定都不靠谱.