< 返回版块

苦瓜小仔 发表于 2022-10-16 11:25

Helix 的文档。

Helix 是用 Rust 开发的一个“后现代”的、在终端使用的 模式 编辑器,它结合了 Vim 和 Kakoune。

我觉得最大的亮点在于 0 配置的终端开发环境(当然前提是 $PATH 下能找到 LSP 二进制文件)。 对 LSP 的支持有:自动补全、悬浮文档、signature help、 goto reference/definition/implementation、rename、code action 等等,至少对 rust-analyzer 有最大程度的支持,支持的语言在这

我是 nvim 的重度使用者,以后可能会写体验/对比/教程文章吧。


对了,mdbook 似乎会对同一域名缓存上次使用的主题,如果你的浏览器没有自动切换到默认的 Colibri 主题,可在顶部勾选一下(否则 inline code 会难看) —— Colibri 主题是 Helix 改过的主题样式,我觉得保留比较好。


Ext Link: https://zjp-cn.github.io/helix-book

评论区

写评论
Borber 2022-10-21 13:15

这个是如何生成的呀?

--
👇
Mike Tang: ``` █████████████████████████████████████████████████ █████████████████████████████████████████████████ ████ ▄▄▄▄▄ █▀█▄▄▀▀ ▄▀▀██▄▄▀█▄▀███▀▀ █ ▄▄▄▄▄ ████ ████ █ █ ██▄▀▄▀▄ █▀█▄ ▀▀▀██▀▀██▄█ █ █ ████ ████ █▄▄▄█ █▄█▀▄▄▀▀▄▀▄▀ ▀█▄ █▄▀▀██ ▀██ █▄▄▄█ ████ ████▄▄▄▄▄▄▄█▄▀ █ ▀▄█▄▀ █ ▀ █▄▀▄▀ ▀ █▄█▄▄▄▄▄▄▄████ ████▄█▄█ █▄█▀ ▀▄ ▄█▄ ▀██▄ █▄ ▄▄ ▄██▀▀▀█▄▀▀▄█████ █████ ██▀▀▄ ▄▀ ▄█▄▀▄ ▄█▀ ▄█ ▀▄▀█ █▀▄█ ▄█▄▄▄████ ████▄▄ █▀▄▄ ▀▄█▄ ▄▄ ▄█▀ ▄▀ █▀▀ █▄███ █ █████ ████▄▀█ █ ▄█▄█▀█▀▀▀█▄▀▀▄ ▀█▀█▄▄▄ ▄ █ ▀█▄▄▄▄████ ████▄▀ ▄█▄▄▀ ▄ ▄▀ ▀██ █▀ ▀▀▄ ▄ ▀█ ▄█▀ ▄████ ████▄▄▄▄▀ ▄▄▀▄█▄▀▄█▄▄▄█ ▀ █ ▄██▀▀▄█▄▀ ▀▄▄█▄▄████ ████ ▀██▄█▄ ▄▀ ▀▄▄▄▀ ▀█▄▀█ ██▀ ▀▄▀ ▀▄▀▀████ ████ ▄▄ ▀█▄█▄ █ ███▀ ▀▄ ▀█▀ ██▄▀▀▀▄██▄▄██▄ ████ ████▀ ▀▀█ ▄▀ ▀█▀█▀▀█▄ ▀█ ██▄▄▀▄ ██▄ ███▄ █████ ████▀▀▄▀▄▀▄ ▄█▀▀▄▄█ █▀ █▀ ▄▀█ ▄▀▄ ▄█▀ █▄▀ ████ ████▄▄▄█ ▄▄ ▄▀▄▀ ▀█ █▄ ▀ █▀ █▀▀ ██▄██ █▄▀████ ████▄▀▄█ ▀▄▀▀█▀█▄█▀ ▀█▀▀▄ ▀▀▀█▀▄▀ ▀▀█▀▄▄▄ ████ ████▄█▄██▄▄█▀▀▄▀▀▀█▄ ▀ ▀▄█▀ ▀▀▄▀█▄ ▄▄▄ █▄█▄████ ████ ▄▄▄▄▄ ████ █▄▄ ▀▀ ▀▄█ ▀ ▄▄▄█▄ █▄█ ▀█▄ ████ ████ █ █ █▄▄▄ ▄▄▄▀ █ ▄▀███ ▀ █▀██▀▄ ▄▄ ▄▀▄ ████ ████ █▄▄▄█ █▄█ ▀▀▀▀▀▄ ██▄▀▀▀▄▀ █▄▀ ▄▀██ ▄▄▄▀▄████ ████▄▄▄▄▄▄▄█▄█▄██▄▄▄▄▄██▄▄▄▄█▄███▄██▄▄▄▄▄▄▄▄▄████ █████████████████████████████████████████████████ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


Mike Tang 2022-10-19 00:06
█████████████████████████████████████████████████
█████████████████████████████████████████████████
████ ▄▄▄▄▄ █▀█▄▄▀▀ ▄▀▀██▄▄▀█▄▀███▀▀  █ ▄▄▄▄▄ ████
████ █   █ ██▄▀▄▀▄  █▀█▄   ▀▀▀██▀▀██▄█ █   █ ████
████ █▄▄▄█ █▄█▀▄▄▀▀▄▀▄▀ ▀█▄ █▄▀▀██ ▀██ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ █ ▀▄█▄▀ █ ▀ █▄▀▄▀ ▀ █▄█▄▄▄▄▄▄▄████
████▄█▄█ █▄█▀ ▀▄ ▄█▄ ▀██▄ █▄  ▄▄ ▄██▀▀▀█▄▀▀▄█████
█████ ██▀▀▄ ▄▀ ▄█▄▀▄  ▄█▀ ▄█ ▀▄▀█  █▀▄█ ▄█▄▄▄████
████▄▄ █▀▄▄ ▀▄█▄  ▄▄ ▄█▀ ▄▀ █▀▀     █▄███ █ █████
████▄▀█ █ ▄█▄█▀█▀▀▀█▄▀▀▄ ▀█▀█▄▄▄  ▄  █ ▀█▄▄▄▄████
████▄▀ ▄█▄▄▀ ▄ ▄▀  ▀██  █▀ ▀▀▄    ▄ ▀█ ▄█▀  ▄████
████▄▄▄▄▀ ▄▄▀▄█▄▀▄█▄▄▄█  ▀ █ ▄██▀▀▄█▄▀ ▀▄▄█▄▄████
████ ▀██▄█▄ ▄▀ ▀▄▄▄▀ ▀█▄▀█   ██▀ ▀▄▀     ▀▄▀▀████
████ ▄▄ ▀█▄█▄ █   ███▀ ▀▄ ▀█▀ ██▄▀▀▀▄██▄▄██▄ ████
████▀ ▀▀█ ▄▀ ▀█▀█▀▀█▄ ▀█  ██▄▄▀▄  ██▄  ███▄ █████
████▀▀▄▀▄▀▄ ▄█▀▀▄▄█ █▀ █▀ ▄▀█ ▄▀▄ ▄█▀    █▄▀ ████
████▄▄▄█ ▄▄     ▄▀▄▀ ▀█ █▄ ▀ █▀ █▀▀ ██▄██ █▄▀████
████▄▀▄█ ▀▄▀▀█▀█▄█▀    ▀█▀▀▄ ▀▀▀█▀▄▀ ▀▀█▀▄▄▄ ████
████▄█▄██▄▄█▀▀▄▀▀▀█▄ ▀ ▀▄█▀ ▀▀▄▀█▄   ▄▄▄ █▄█▄████
████ ▄▄▄▄▄ ████ █▄▄ ▀▀  ▀▄█  ▀ ▄▄▄█▄ █▄█ ▀█▄ ████
████ █   █ █▄▄▄ ▄▄▄▀ █ ▄▀███ ▀ █▀██▀▄ ▄▄ ▄▀▄ ████
████ █▄▄▄█ █▄█ ▀▀▀▀▀▄ ██▄▀▀▀▄▀ █▄▀ ▄▀██ ▄▄▄▀▄████
████▄▄▄▄▄▄▄█▄█▄██▄▄▄▄▄██▄▄▄▄█▄███▄██▄▄▄▄▄▄▄▄▄████
█████████████████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
作者 苦瓜小仔 2022-10-18 20:58
Mike Tang 2022-10-18 13:36

Helix 太棒了!爱上了。

我们一起拉个交流群吧。请加我 vx:daogangtang,我来建群。

Mike Tang 2022-10-18 13:20

装了个libvte库,色彩高亮好像可以了。不知道为什么。

感觉非常好用,基本功能都有了。

Mike Tang 2022-10-17 22:57

看得到。说明支持。

--
👇
苦瓜小仔: 执行这段 bash 代码,终端会打印红绿蓝渐变色吗?我用 mobaxterm 和 xshell 登录 ubuntu18 是能看到的。 xshell 要在设置里钩 true color。

# https://github.com/termstandard/colors
awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'
作者 苦瓜小仔 2022-10-17 22:33

执行这段 bash 代码,终端会打印红绿蓝渐变色吗?我用 mobaxterm 和 xshell 登录 ubuntu18 是能看到的。 xshell 要在设置里钩 true color。

# https://github.com/termstandard/colors
awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'
Mike Tang 2022-10-17 22:22

坑了,linux下终端默认都是配的 256color。 true color 好像不支持。

Mike Tang 2022-10-17 22:07

懂了,感谢小仔哥。

--
👇
苦瓜小仔: 搜索和 vim 的方式不太一样。

支持 * 搜索光标下的选区内容,然后按 nN 跳转下一个。

首先,“选区”的概念就是紫色背景区块,默认按 w 就会选中(嗯,“先选则”理念),按 v 也可以制造选区;单光标也是选区,是最小的选区。

所以这里和 * 不一样,vim 会拓展成 word,而 Helix,如果你只有单光标,只会搜这个光标下的字符(而不是单词)。

然后, Helix 内置多光标,而且应用到了搜索上:

  • 默认按 n 会制造单选区:每次只选一个结果
  • v 进入选择模式,此时按 n 会把下一个搜索结果加入选区,得到多选区
  • 再按 v 退出选择模式,会把当前光标下的结果从多选区中移除,但保持原多选区
  • N 就是往反方向搜索,但多选区/多光标只与 v 键有关

对了,helix 的搜索默认为 smart-case 和正则。

Helix 还支持项目内搜索,按 <space>/ 输入正则,然后弹出 picker 进行预览和选择。

作者 苦瓜小仔 2022-10-17 22:03

我也是远程使用的。这个需要 ssh 软件开启 true color。

--
👇
Mike Tang: 对的,我也是老提示我的终端不支持 true color,不知道为什么。我的不是标准终端么。

不过我是ssh到远程机器上测试的。

Mike Tang 2022-10-17 22:00

对的,我也是老提示我的终端不支持 true color,不知道为什么。我的不是标准终端么。

不过我是ssh到远程机器上测试的。

作者 苦瓜小仔 2022-10-17 21:55

主题可以预览的:在 Helix 中输入 :theme <Tab> 会弹出主题的所有名称,和往下预览,<Shift-Tab> 往上预览。

然后把名称放到配置文件首行。

# ~/.config/helix/config.toml
theme = "name"

[editor]
true-color = true

对了,前提是你要有 runtime/ 文件夹,才会有这些主题。

--
👇
Mike Tang: rust 的颜色主题在哪儿配置呀?我的默认是黑白的。

作者 苦瓜小仔 2022-10-17 21:48

搜索和 vim 的方式不太一样。

支持 * 搜索光标下的选区内容,然后按 nN 跳转下一个。

首先,“选区”的概念就是紫色背景区块,默认按 w 就会选中(嗯,“先选则”理念),按 v 也可以制造选区;单光标也是选区,是最小的选区。

所以这里和 * 不一样,vim 会拓展成 word,而 Helix,如果你只有单光标,只会搜这个光标下的字符(而不是单词)。

然后, Helix 内置多光标,而且应用到了搜索上:

  • 默认按 n 会制造单选区:每次只选一个结果
  • v 进入选择模式,此时按 n 会把下一个搜索结果加入选区,得到多选区
  • 再按 v 退出选择模式,会把当前光标下的结果从多选区中移除,但保持原多选区
  • N 就是往反方向搜索,但多选区/多光标只与 v 键有关

对了,helix 的搜索默认为 smart-case 和正则。

Helix 还支持项目内搜索,按 <space>/ 输入正则,然后弹出 picker 进行预览和选择。

sharkLoc 2022-10-17 21:47

😔,我试了好几个主题都体是要true color 支持才行,哎洗洗睡了

--
👇
sharkLoc: 这里有说明啊,https://docs.helix-editor.com/themes.html 这里有现成的:https://github.com/helix-editor/helix/tree/master/runtime/themes

--
👇
Mike Tang: rust 的颜色主题在哪儿配置呀?我的默认是黑白的。

作者 苦瓜小仔 2022-10-17 21:36

--
👇
Mike Tang: 请问以下几个常用键在哪里:

    • 和 # 搜索当前cursor下的word
  1. :E 打开文件浏览器 --------------> <space>f<space>F 只是搜索文件,不是文件树或者列表
  2. :ls 打开buf列表 --------------> <space>b
sharkLoc 2022-10-17 21:32

这里有说明啊,https://docs.helix-editor.com/themes.html 这里有现成的:https://github.com/helix-editor/helix/tree/master/runtime/themes

--
👇
Mike Tang: rust 的颜色主题在哪儿配置呀?我的默认是黑白的。

Mike Tang 2022-10-17 20:57

请问以下几个常用键在哪里:

    • 和 # 搜索当前cursor下的word
  1. :E 打开文件浏览器
  2. :ls 打开buf列表

谢谢。

--
👇
AndyJado: all in helix俩多月了, 工作之余也给rustc搬了1000多行砖. neovim已卸载.

注意事项:

  • 保存, 保存, 保存!

它没有自动保存, 而且很多错误处理就直接给你panic, 但issue修得挺快

  • 要会读toml格式的json

需要自行配置rust-analyzer的一些选项, 官方文档默认你自己会.

  • a很黏

以前用vim我经常移动光标到位置然后append, 但helix的append会默认选中, 显得很黏.

Mike Tang 2022-10-17 20:45

rust 的颜色主题在哪儿配置呀?我的默认是黑白的。

zombie110year 2022-10-17 16:42

刚才试用了一下,打开一个刚 cargo new 的项目,风扇就呼呼地转,不知道为啥🤔

作者 苦瓜小仔 2022-10-17 15:39

以前用vim我经常移动光标到位置然后append, 但helix的append会默认选中, 显得很黏.

不理解为什么要仿照 Kakoune 的“先选择”设计,让我要改变从 vim 按 x 和 s 来删除文本的习惯。

还有 ; (收缩选区)和 , (收缩光标)真的很难记:(

1 2 共 24 条评论, 2 页