Roife
1
下午 vibe 了一个小包:scrollview.el,虽然还没来得及 review,但是用起来还不错,先发出来分享一下。
项目地址:GitHub - roife/scrollview.el · GitHub
它能在 fringe 里显示一个滚动条,同时把搜索结果、诊断信息、VC diff hunk 等标记也放进来。灵感主要来自于 VS Code 和 Zed。
它能做什么
- 在 left/right fringe 显示垂直滚动条
- 内置一些 sign group:
search:当前 isearch lazy highlight 的匹配位置
diagnostics:Flymake 诊断,以及已加载的 Flycheck errors
conflicts:通过 smerge-mode 找 conflict markers
keywords:通过 hl-todo 找 TODO/HACK 等关键词
spell:ispell 中的拼写
vc:通过 diff-hl 显示 add/change/delete hunk
- 提供
scrollview-next / scrollview-prev / scrollview-first / scrollview-last 在可见 sign 之间跳转
利用这个插件,可以节省掉很多 modeline 上的空间,比如 progress、flymake indicator 等。
感谢 GitHub - emacsorphanage/yascroll: Yet Another Scroll Bar Mode · GitHub ,大量参考了这个仓库的代码
7 个赞
windows doom emacs 如何配置使用呢?我按这个配置看不到 fringe, 当然我用这个之前也没用过 fringe…
Roife
3
可能终端里没有 fringe,我没有 windows 设备没办法测试诶。
应该是有效果的,可能因为太细或者配色的原因没看清。截图里那样的效果如何配置的?比如 fringe 宽度等等
如果TUI下也能显示就太棒了,是不是可以利用margin?
Roife
8
你是在终端下使用的吗,默认不需要任何配置就可以的
(use-package scrollview
:straight (:host github :repo "roife/scrollview.el" :branch "main")
:hook (after-init . global-scrollview-mode))
你也可以切换成 margin 试试
的确原来就有显示,改成 margin 就显示的大了,字符大小跟输入区一样了。原来显示看不清的现在能看到了: F 和 * 分别表示什么?其位置是固定的,还不随pageup/down 改变:
Roife
12
| Group |
Fringe |
Margin |
search |
= |
= |
highlight-symbol |
+ |
+ |
symbol-overlay |
+ |
+ |
bookmarks |
* |
* |
eglot |
= |
= |
diagnostics |
o |
! |
compilation |
o |
! |
conflicts |
top <, middle =, bottom > |
top <, middle =, bottom > |
keywords |
TODO T, FIXME F, HACK H, NOTE N, WORKAROUND W, TRICK(R) R, DEFECT D, ISSUE I, other keywords * |
TODO T, FIXME F, HACK H, NOTE N, WORKAROUND W, TRICK(R) R, DEFECT D, ISSUE I, other keywords * |
spell |
~ |
~ |
vc |
add and change |, delete = |
add +, change |, delete - |
参考 Emacs 是否能实现类似 VS Code 或者 NeoVim 的滚动条装饰
Roife
13
是 decorated scrollbar,类似 vscode 和 zed,参考 Emacs 是否能实现类似 VS Code 或者 NeoVim 的滚动条装饰
我这个 config.el 里有 3 个 FIXME, 正好对应显示的 3 个 F. 但这三个 F 加上找不到哪里设置的 bookmark *, 不管我的 buffer 显示在第几行,始终固定不动。看上去对应这 FIXME 在整个 buffer 的位置比例,如第一个 FIXME 在 line 177/600, 第一个 F 出现在整个 fringe 的大概 30% 的位置。但当我 buffer 首行显示 177 行时,那个 F 还是在 30% 的位置。跟显示右侧还有字符的 → 行为不一样,当然这个 → 应该是 emacs 自带的,不是 scrollview 提供的。
看了啊,滚动条滚动时,那些标志位置不变?这是 feature 啊?