我想分享一下我的emacs配置和学习思路,并向大家介绍一些我觉得有用的package

好的 还在体验中 玩起来感觉还是可以的 配置还没仔细看 麻烦问下 项目管理和搜索用的什么包 keypad模式下没有看到相关快捷键

那个我用的默认的project快捷键(C-x p),我一般内置有就尽可能用内置的不再额外配置了,你的which-key如果能用的话应该可以看到如下界面

不过我更常用的还是consult-grep,这个你在normal或者motion模式下按 space s d就能看到这个,使用非常高频,会先提示搜索路径接着开始搜索

另外我有一点个人的使用心得,就是尽可能早地开始自己搭配置。我自己emacs用了很久,刚开始一直是用别人的配置进步很慢,出错不知道怎么debug,加功能也是磕磕绊绊的,直到开始自己做配置才真正有所进步。

因此如果我是给刚学emacs的自己做建议:

  • 先多看看别人的配置玩一玩,知道有啥功能,然后尽早自己从头搭一个配置,刚开始不知道怎么配就配个最简单的(我就是这样,而且现在也很简单),坚持先慢慢用起来(可以开一个成熟的配置和一个自己的配置,没事就用用自己的),目的是为了熟悉 emacs 本身的逻辑
  • 然后想加什么功能就去尝试查,可以看看blog或者别人的配置,也可以直接问其他配置的作者,一点一点自己搭起来一个

不仅自己进步快,更能真正体会到 “如臂使指” 地使用emacs的感觉,其他人的配置不管再好,也很难给你这个感觉的

感谢建议 我也用了2年了 一直在用别人而配置 太过复杂不好掌握 试了试你的 还不错 也许可以成为一个新的起点 建议 github 开启discussions 有问题也方便大家问

比如常见的一些操作

  1. 查找文本批量替换 (身为vim患者 还没玩明白)
  2. 快速回到光标上一次移动前的位置
  3. 翻页什么的

因为习惯了leadkey的模式 (doom emacs ) 所以起手 都是 空格+project 不常用的命令才会空格+x 去手动执行

关于这个project 其实因人而异 陈斌说编辑器 没有项目的概念 直接打开一个文件 然后就开始编辑 搜索的时候有个rootdir就行 其实我也不用

嗯嗯,已经开了discussion

我之前也是一个vim用户,切换到emacs里发现有些习惯可以很容易保持,比如hjkl或者y p等等,有一些习惯如果想和vim一致就需要使用evil再加一堆包,复杂度变高了导致有时候加功能或者遇到bug时不太好解决。我为了能容易的维护配置和减轻心理负担,大部分我都尽可能用emacs自带的,当然你喜欢也可以加上去,这个只是个取舍而已,

说回操作,这几个功能其实我自己做了替代:

  1. 替换现在用 M-%(自带的),或者用meow带的grab指令
  2. 这个有两个操作可以实现,第一个是比较笨的, 和vim手动记忆位置一样,先按 m+字母比如按 ”m a" 设置一个记忆点,再用 ’ a 返回来,适合于指定返回。另一个是在 nomal模式下先按 g, 再按 m,会看到之前的所有位置,选一个想去的就行
  3. 翻页的快捷键vim的会和emacs冲突,我就用 C-v 和 M-v 做翻页了,习惯了也还好

用久了特别是功能都是自己加的之后,我反倒越来越喜欢用M-x的方式执行命令了,一是不需要记忆低频功能的快捷键,也不需要额外设置,省心。而高频命令我都设了快捷键,已经肌肉记忆了。二是在输入命令模糊匹配的时候经常看到一些没用过的命令,很有趣或者很有用,是不错的发现。

嗯嗯 明白 我在读读配置 emacs的重点就是折腾 感觉你的配置还是挺好的 确实解决了大佬们的配置层级架构过于复杂的问题
可以好好学习一番

这个其实核心是 borg 和 setup做的好,这两个包一用,配置就和平铺一样,彼此的依赖很少了,加减功能都方便

我只知道use-package 现在都用setup了吗/

问题1: 就是一个基本操作 比如我查找引用 跳到了一个别的文件 看了一眼就想回去 应该怎么操作 vim 之前是 C-o 就可以跳转到上一次的光标位置

问题2: 我更改了 init.org中的某个配置 应该如何刷新 emacs的配置 每次全部重新编译很废时间

  1. “M-,”,我里面复用了xref做了压栈设置,任何时候你通过"g d" 或者"g D"跳转到定义或者引用,都可以通过"M-,"后退,以及”C-M-,"前进。当前不止这两个命令可以,还有一些其他的也支持"M-,"的记忆,你可以看看init.org中"xref jump back"小结
  2. 使得配置生效有两个,一个是直接eval这个修改,即时生效。如果你的刷新指的是快速复原配置并保留修改,那在命令行运行"make init-build"然后重新启动emacs,这个命令大概一秒左右,

我日常的修改配置场景看能否对你有借鉴意义,比如修改了inir.org的某一行代码:

  1. 简单配置修改完直接在 ")"后面 C-x C-e 即时生效
  2. 复杂的修改
  • 先调出termimal (C-`)键,或者用外置的terminal都行
  • 然后执行 make init-build,大概就1s左右的时间(这一步会tangle所有的配置并编 译,它仅仅编译init.org这一个文件,其他的所有的包都不会动,所有非常快)。
  • 最后"Space a r" ,这步会重启emacs。当然你直接关了emacs再开也一样的

这个编译有个好处,如果改配置导致编译挂了,会直接报错,这个时候原有的emacs 配置其实还可以用。编译的结果直到重启emacs才会生效。

好的收到 ~~~

麻烦在问一下 按下空格后 显示的minibuffer如何调整大小 我改了以下之后变成一行了 而且好像显示不全

简单点说 怎么调整以下 跟doom 一样 固定高度 好看一点…

doom的可能只是因为在leadermap下绑定的键多,因为我记得他用的which-key

不过可以用自带的 transient 或者hydra来做,在 normal 模式下按 g 键就能看到一个,或者 space s 键。你看看这个样式的喜欢不

在用你的配置时候发现一个问题 图片打开以后不显示透明度 不知道是什么问题 emacs 30.1.50

我在另一个问题里看到你的问题应该是使用 emacs-dashboard 时无法透明显示,这里有一个 issue 你可以关注一下:Logo or any other png image doesnot work with transparent background · Issue #458 · emacs-dashboard/emacs-dashboard · GitHub

从讨论来看,这是 emacs 本身的问题而不是 emacs-dashboard 或者配置的问题, 比较简单的解决方法是选择合适的图片格式