平时在终端敲代码,用的比较多的还是 Vim,但有时会被 Vim 的反人类键位搞到想砸键盘?
VSCode 好用是好用,但很多简单的修改根本用不上,而且用 VSCode 写着写着,鼠标点得手酸,扩展装多了还臃肿~
尝试 Neovim 想走极客路线,结果一头扎进插件地狱,光配个 LSP 都能折腾一下午?
今天必须安利一款不整那些花里胡哨又轻巧的编辑器 -- Helix。
一句话概括:开箱即用,不用折腾插件就能享受现代编辑体验的 Vim 神器。
Helix 是一款受 Kakoune 和 Neovim 启发的现代终端编辑器,用 Rust 编写。
Helix 不仅智能高效、轻量快速,还支持语法树级别的代码理解!
核心功能:
- 支持多光标编辑 -- Helix 把「多光标」当成基本操作单位,很多编辑命令天生就可以同时作用在多个地方,灵感来自 Kakoune。
- 语法感知编辑 -- 通过集成 tree-sitter,可以选中一个函数、一段注释、一个 JSON 对象,而不仅仅是字符块。这也让语法高亮、缩进和跳转更加可靠。
- 内建语言服务器支持 -- 自动补全、跳转定义、诊断报错、查文档,全都开箱即用,不用你再装插件配置 LSP。
- 内置模糊搜索器 -- 无论是文件跳转、代码符号查找、全局搜索,Helix 都有自己的内建功能,不需要额外装 Telescope 或 ripgrep。
- 用 Rust 编写,为终端而生-- 不会拖慢系统,也没什么后台偷偷运行,适合 tmux、SSH 或低功耗环境下使用。
- 默认体验就很现代 -- 比如自动补全括号、选中括起来的区域、项目级跳转、漂亮的主题配色、可视化缩进线等,都是内建的。
Helix 对 Vim 最大的区别,在于它不是兼容,而是重新设计。没有历史包袱,键位设计清晰,配置文件简洁到极致。
如果你对 Vim 的学习曲线敬而远之,对 VSCode 的资源占用又不满意,那么可以试试 Helix。
官方地址:https://helix-editor.com/
开源地址:https://helix-editor.com/
官方文档:https://docs.helix-editor.com/install.html
安装方法
1、Linux 用户
Ubuntu / Debian(推荐):
sudo add-apt-repository ppa:maveonair/helix-editor
sudo apt update
sudo apt install helix
Fedora / RHEL:
sudo dnf install helix
2、macOS 用户
Homebrew 安装:
brew install helix
MacPorts 安装:
sudo port install helix
3、Windows 用户
Winget(推荐):
winget install Helix.Helix
Scoop:
scoop install helix
Chocolatey:
choco install helix
MSYS2:
pacman -S mingw-w64-ucrt-x86_64-helix
基本使用
Helix 采用"选择-操作"模式,与 Vim 的"操作-选择"相反。
hx filename.txt # 编辑文件
hx # 打开文件选择器
使用 hx --health 可以检查是否配置正常:
1、模式切换
模式 | 作用 | 切换方式 |
Normal | 正常模式(默认) | Esc |
Insert | 插入文本 | i |
Select | 多选模式 | 自动进入,或 v |
2、基础操作
插入/编辑文本:
i # 进入插入模式
Esc # 返回 Normal 模式
移动光标(Normal 模式下)
h / j / k / l # 左 / 下 / 上 / 右
w / b # 下一个词 / 上一个词
0 / $ # 行首 / 行尾
gg / G # 文件首 / 文件尾
常用命令行参数:
hx file.txt # 打开文件
hx . # 打开当前目录(类似项目浏览)
hx --health # 检查配置是否正常
hx --tutor # 官方交互式新手教学
Goto 模式(跳转):按 g 进入,可以跳到文件中的某个位置或跳到其他文件。如果配置了 LSP(语言服务器),还能跳到函数定义、查看引用等。
Match 模式(括号操作):按 m 进入,用来加、换、删括号或引号。比如选中一段文字,一键加上 ()、"",效率很高。
Command 模式(命令):按 : 进入,可以输入命令,比如保存文件或查找内容。Helix 会自动补全命令,特别方便新手使用。
3、配置文件路径(可选)
Helix 的配置非常轻量,默认位置:~/.config/helix/config.toml
常用配置示例:
theme = "onedark"
[editor]
auto-save = true
line-number = "relative"
cursorline = true