Helix简介
Helix编辑器是类似 Vim操作模式的终端文本编辑器。其具有类似Vim一样的简洁和高效的编辑方式,而且针对命令模式的交互进行了优化,参考了NeoVim和kakoune两款编辑器,注重文本选择与模块集成,能够实现开箱即用。
我之所以会关注到Helix,主要原因是Vim或者Neovim的编辑环境配置非常依赖github的各种仓库,而国内糟糕的网络环境给配置和升级编辑环境带来很多烦恼。在多次搜寻过程中,发现helix是可以满足开箱即用,且有优秀的命令模式交互界面,极大改善用户的使用体验。
Helix编辑器最明显的一个问题就是没有插件系统,这对于那些喜欢自己定制编辑器环境的朋友来说,不是那么友好,可玩性不高。官方确实有考虑做一个插件系统,但是优先要做的是Helix默认集成的特性已经足够好了,选择插件扩展目前优先级不是那么高。参见讨论
而那些愿意使用Helix的用户,肯定是希望不折腾的用户,默认内置的优秀功能应对一些开发环境已经足够。而且Helix运行的足够快,喜欢用终端来处理文档的用户基本不会在编辑速度上遇到问题。
本篇主要基于Helix的官方文档,介绍Helix编辑器的基本理念和使用方法,文章内容不会根据官方文档持续更新,希望关注Helix的用户可以跟踪官方网站与Github仓库
! Helix是Rust编写,属于后现代风格编辑器 ^_^
相关链接
Helix 安装
Linux平台
Linux平台上基本需要依赖每个发行版的维护,目前Helix已经支持主流的各大Linux发行版
Ubuntu
配置Helix的ppa
sudo add-apt-repository ppa:maveonair/helix-editor
sudo apt update
sudo apt install helix
Fedora/RHEL
使用dnf直接安装
sudo dnf install helix
Arch Linux extra
使用pacman 直接安装
sudo pacman -S helix
NixOS
Helix已经在nixpkgs中,非稳定频道通常能获得最新发布版本
Helix也可以在flake中获得,使用nix develop
登录开发者终端。每个提到Master的push会用Cachix缓存。 flake配置为自动使用缓存,假设用户接受最新的第一个设置。
如果你不使用flakes,可以用 cachix 来安装配置Helix cachix use helix
。
Flatpak
Helix 可以在 Flathub获取:
flatpak install flathub com.helix_editor.Helix
flatpak run com.helix_editor.Helix
Snap
Helix 可以在 Snapcraft 获取:
snap install --classic helix
Helix会安装到 /snap/bin/helix
和 /snap/bin/hx
, 请确保 /snap/bin
在你的PATH
中.
AppImage
Helix 可以在Linux中安装 AppImage 的镜像.
下载 Helix AppImage latest releases .
chmod +x helix-*.AppImage # change permission for executable mode
./helix-*.AppImage # run helix
macOS系统
Homebrew Core
brew install helix
MacPorts
port install helix
Windows
由于目前没有GUI工具,Helix在Windows上安装需要用到终端工具, Winget, Scoop, Chocolatey或 MSYS2.
Winget
Windows包管理器winget是 Windows 11 和 Windows 10 的应用安装程序。可以在 微软应用商店获得。
winget install Helix.Helix
Scoop
scoop install helix
Chocolatey
choco install helix
MSYS2
Windows 8.1 64位以上的版本:
pacman -S mingw-w64-ucrt-x86_64-helix
源码编译安装
准备工作:
从HelixGithub仓库克隆代码,本文中假设用户克隆到Linux/MacOs的~/src/
或者Windows的%userprofile%\src\
。
主要依赖的工具:
如果你使用musl-libc
标准库,务必确保tree-sitter在编译时正确加载。
配置RUST编译参数:
RUSTFLAGS="-C target-feature=-crt-static"
-
克隆代码:
git clone https://github.com/helix-editor/helix cd helix
-
编译构建:
cargo install --path helix-term --locked
上述命令执行完成后会得到
hx
可执行文件和在本地runtime
目录中的tree-sitter的语法文件
? Tree-sitter 语法库可以在线获取和编译,利用
hx --grammar fetch
可以获得语法库,利用hx --grammar build
可以编译这些语法库
它们会被部署到用户的runtime
目录,runtime
目录的配置可参见下文
配置 Helix的runtime文件
Linux 和 macOS
runtime目录位于Helix源码目录中,可以设置环境变量HELIX_RUNTIME
指向该路径。你可以设置这个环境变量到~/.bashrc
等配置中:
HELIX_RUNTIME=~/src/helix/runtime
或者也可以创建软链接
ln -Ts $PWD/runtime ~/.config/helix/runtime
Windows平台
- 可以利用Windows工具设置
HELIX_RUNTIME
环境变量 - 可以在命令提示符中使用
setx
setx HELIX_RUNTIME "%userprofile%\helix的runtime路径"
?
%userprofile%
是你的用户目录地址类似与C:\Users\用户名\
。
在%appdata%\helix\
创建指向源码中runtime目录的链接:
方法 | 命令 |
---|---|
PowerShell | New-Item -ItemType Junction -Target "runtime" -Path "$Env:AppData\helix\runtime" |
Cmd | cd %appdata%\helix mklink /D runtime "%userprofile%\src\helix\runtime" |
? 在Windows中,创建一个符号链接需要获得Adminstrator权限来运行PowerShell或者Cmd
多重runtime目录
当Helix发现有多重runtime目录,会按照以下顺序来检索
$CARGO_MANIFEST_DIR
目录下的runtime
(这个为了开发调试Helix)- 操作系统中用户配置目录下的
runtime/
$HELIX_RUNTIME
- 在编译时期设置的
HELIX_DEFAULT_RUNTIME
环境变量,其中配置了发行版指定路径 - Helix可执行文件路径下的
runtime/
顺序优先级的设定会在多个路径下发现重复名称目录的情况下生效。
安装后的验证
Helix提供了一个健康检查工具,可以在安装后对状态进行检查:
hx --health