操作系统
Linux
最近更新
2025年01月04日
使用许可
开源
语言
不支持中文
开发者
Helix
文件大小
25.24 MB

Helix是一款非常独特的文本编辑器,它使用Rust语言编写,充分利用了这种语言的安全性和性能优势。Helix的设计受到了诸如Kakoune和Neovim等编辑器的影响,采用了后现代的模态编辑方式,为用户提供了一种全新、高效的编辑体验。

Helix的一大亮点是其对语法高亮的处理方式。它使用了Tree-sitter进行语法高亮,这种方式比传统的正则表达式高亮更快、更准确。因为Tree-sitter像编译器一样将代码解析成语法树,从而能给出更多的代码结构信息。用户甚至可以跟踪局部变量,计算缩进,以及通过选择语法节点来操作代码,这使得Helix在处理复杂的代码结构时表现出色。

Helix的编辑模型在很大程度上基于Kakoune,它采用了多重选择作为编辑的基本单位,这与大多数编辑器以单个光标作为编辑焦点的方式形成鲜明对比。在Helix中,命令可以操作选择,然后允许用户同时编辑多处代码,这大大提高了编辑效率。

此外,Helix还内置了语言服务器支持,提供上下文感知的代码补全、诊断和代码操作等功能。这使得Helix在编写代码时能够提供类似IDE的体验,同时保持了其作为文本编辑器的轻量级和灵活性。

在用户界面方面,Helix采用了简洁、直观的设计,使用户能够专注于代码编辑本身。它的命令行界面和快捷键操作方式也为用户提供了高效、快捷的操作方式。

25.01 版本更新说明:

功能

  • Picker重构:进行了大规模重构,以改进Pickers的功能。
  • 表格布局与列过滤:使用表格布局,并允许按列过滤。
  • 动态查询全局搜索:重新实现global_search,允许动态更改查询。
  • LSP诊断的替代“内联”显示:为LSP诊断添加了“内联”显示选项。
  • 宏定义快捷键:支持将快捷键定义为宏。
  • 自动续行注释:在插入模式下,在o/O<ret>时继续行注释。
  • 运行时配置和切换剪贴板提供程序:允许在运行时配置和切换剪贴板提供程序。
  • 路径补全支持:增加了对路径补全的支持。
  • 超级键(Cmd/Win/Meta)修饰符支持:支持带有Super键修饰符的绑定。
  • 片段补全中的跳转:支持渲染和在片段补全之间跳转。
  • 目录补全的主题化:允许主题化目录补全。


命令

  • 增加蛇形或驼峰单词内的移动命令:新增命令以便在正常和选择模式下使用*键移动,取代了原来的search_selection,现在被移到A-*
  • 搜索选择检测单词边界:新增search_selection_detect_word_boundaries命令。


可用性改进

  • :edit 和 :e 别名:为:open添加了:edit:e别名。
  • 管道命令输出修剪:当输入没有尾随换行符时,从管道命令输出中修剪尾随换行符。
  • :mv别名:为:move添加了:mv别名。
  • %特殊寄存器返回文档显示名称:从%特殊寄存器返回文档显示名称而不是绝对路径。
  • 基于视图位置跟踪:根据视图而非文档来跟踪视图位置。
  • 滚动偏移计算优化:改进了scrolloff计算,以在中间留出空白。
  • 失败的:sh命令弹出stderr:对于失败的:sh命令,显示一个包含stderr的弹出窗口。
  • 未选中时的状态栏错误提示:当使用sKA-K且未选择任何内容时,在状态栏显示错误。
  • .svn作为工作区根标记:将.svn添加为工作区根标记。
  • :sh输出修剪:修剪:sh命令输出的结尾。
  • 状态栏显示LSP消息:在状态栏显示LSP窗口和showMessage消息。
  • 通过.jj目录查找工作区目录:支持通过.jj目录查找工作区目录。
  • 单行注释合并:使用join_selections (J)合并单行注释。
  • 树状语法节点预览:在:tree-sitter-subtree中显示匿名语法树节点。
  • 粘贴前保存撤销检查点:在插入模式下粘贴之前保存一个撤销检查点。
  • 仅在ASCII空格处断行:在:reflow中仅在ASCII空格处断行。
  • 默认粘贴寄存器配置选项:添加了default-yank-register配置选项。
  • 格式化不可用时的状态栏错误:当没有可用的格式化程序时,在:format中显示状态栏错误。
  • 无参数的:cd命令更改为家目录:在不带参数的情况下,:cd命令会更改到家目录。
  • 默认注释符号设置为#:对于未识别的文件,默认注释符号设置为#
  • 插入新行时修剪所有尾随空白:在插入新行时修剪所有尾随空白。
  • 使用:cd -返回上一目录:使用:cd -返回上一个目录。
  • 解析-(无修饰符)为快捷键:允许将-(无修饰符)解析为快捷键。
  • 打开重复文件或目录时的改进:改进了打开重复文件或目录时的状态栏和错误消息。
  • 路径参数中的尾随冒号修剪:修剪传递给命令行参数的路径中的尾随冒号。
  • hx --health <lang>显示Tree-sitter解析器可用性:在hx --health <lang>中显示Tree-sitter解析器的可用性。
  • LSP补全菜单的颜色预览:在LSP补全菜单中为颜色显示预览块。
  • 环绕操作的帮助信息框:为surround_addsurround_replacesurround_delete添加帮助信息框。


修复

  • 尊重文档缩进设置:在format_selections (=)中尊重文档缩进设置。
  • 避免在LSP工作区编辑期间切换文档模式:在LSP workspace/applyEdit操作期间,避免将当前文档切换到正常模式。
  • 修复LSP补全范围的越界问题:修正了LSP find_completion_range中的越界问题。
  • 优先使用文件系统mtime:为了检测外部修改,优先使用文件系统的mtime而不是本地系统时间。
  • 修复硬链接写入问题:解决了硬链接写入的问题。
  • 阻止语言服务器自动重启:防止语言服务器在使用:lsp-stop停止后自动重启。
  • 稳定排序LSP文本编辑:确保LSP文本编辑是稳定排序的。
  • 修复嵌套语言注入的当前语言层确定问题:修正了文档中具有嵌套语言注入时的当前语言层确定问题。
  • 修复文件移动到新扩展引发的崩溃:解决了将文件移动到新扩展时启动语言服务器导致的崩溃。
  • 修复差异边栏复制引发的崩溃:解决了复制差异边栏时引发的崩溃。
  • 保持光标位置:在精确替换文本时保持光标位置。
  • 修复新分割窗口中的向后跳转崩溃:解决了新打开的分割窗口中jump_backward引发的崩溃。
  • 修复未知诊断严重性引发的崩溃:解决了语言服务器发送未知诊断严重性时引发的崩溃。
  • 修复屏幕边缘绘制引发的崩溃:解决了在屏幕边缘绘制时引发的崩溃。
  • 修复Git仓库检测问题:解决了符号链接上的Git仓库检测问题。
  • 修复活动签名索引超出范围引发的崩溃:解决了语言服务器在textDocument/signatureHelp中发送超出范围的活动签名索引时引发的崩溃。
  • 修复多字节字符结束的提示中使用C-k引发的崩溃:解决了在以多字节字符结束的提示中使用C-k时引发的崩溃。
  • 展开读取命令中的路径波浪号:在:read命令中传递的路径中展开波浪号。
  • 尊重每种语言的工作区LSP根配置:在打开新文档时尊重每种语言的工作区LSP根配置。
  • 一致替换换行符:在粘贴/替换命令中一致地替换换行符。
  • 修复DAP变量检查时的状态栏错误消息格式:修正了检查DAP变量时状态栏错误消息的格式。
  • 修复浅色终端上的--health输出标题不可见问题:解决了浅色终端上--health输出的标题不可见问题。
  • 接受JSONRPC id字段中的浮点数序列化的整数:接受JSONRPC id字段中序列化为浮点数的整数。


主题

  • 调整kanagawa配色方案:使kanagawa配色方案更接近neovim版本。
  • 新增ao主题。
  • 更新dark_plus主题。
  • 新增iceberg-light和iceberg-dark主题。
  • 更新everforest主题。
  • 更新gruvbox主题。
  • 调整naysayer主题的主要选择光标颜色。
  • 美化horizon-dark主题中的picker列名。
  • 美化Darcula主题中的picker列名。
  • 更新snazzy主题中的诊断颜色。
  • 更新bogster主题。
  • 美化onedark主题中的关键字存储。
  • 为serika-dark添加ui.virtual.jump-label。
  • 新增adwaita-light主题。
  • 新增seoul256主题。
  • 新增yo主题。
  • 新增eiffel主题。
  • 新增carbonfox主题。
  • 设置monokai主题中的标签颜色。
  • 提高spacebones picker选择的可读性。
  • 更新modus主题。
  • 在onedarker主题中加粗状态栏模式指示器。
  • 更新hex主题,并新增一个hex主题。
  • 新增sunset主题。
  • 为flexoki主题添加缓冲区行高亮。
  • 为catppuccin主题中的已检查和未检查列表项添加颜色。
  • 更新voxed主题。
  • 新增vintage主题。
  • 为everforest主题添加目录样式。
  • 为dark_plus主题添加非活动文本和更新跳转标签高亮。
  • 同步catppuccin主题的变化。
  • 为nightfox添加ui.text.directory。
  • 为sunset添加ui.text.directory。
  • 为Catppuccin主题添加diagnostic.unnecessary。


新增语言

  • jjdescription
  • i3wm和Sway配置
  • TypeSpec
  • jq
  • Thrift
  • Gherkin
  • Circom
  • Dune
  • Snakemake
  • Cylc
  • textproto
  • Spade
  • NestedText
  • Quint
  • Amber-lang
  • Vento
  • Teal
  • Koto
  • NGINX


更新语言和查询

  • Hare评论注入:为Hare添加评论注入。
  • blade.php文件高亮改进:改进了blade.php文件的高亮。
  • 更新tree-sitter-slint。
  • 识别just文件为Just。
  • 识别mdx文件为Markdown。
  • 更新Just语法和查询。
  • 识别tclsh文件为TCL。
  • 更新Godot语法和查询。
  • 更新Gleam语法和查询。
  • 为Meson添加mesonlsp。
  • 更新HTML高亮。
  • 为Verilog添加评论文本对象。
  • 切换tree-sitter-just语法。
  • 更新tree-sitter-fsharp。
  • 为Nix添加nixd。
  • 高亮Rust标准库中的类型和枚举成员。
  • 改进HCL和Nix的文本对象。
  • 为docker-compose、dockerfile、env、git-config、hcl、hocon、prisma、SQL和YAML添加文本对象查询。
  • 识别cshtml文件为HTML。
  • 为Lean语言服务器设置内存限制。
  • 为jedi和ruff语言服务器添加配置。
  • 更新Vue高亮。
  • 切换tree-sitter-hcl语法。
  • 修复odinfmt格式化程序配置。
  • 识别rbs文件为Ruby。
  • 更新tree-sitter-nickel。
  • 识别ldtk和ldtkl文件为JSON。
  • 修复Fish内置函数的高亮。
  • 为HTML添加superhtml。
  • 为Vale语言服务器添加配置。
  • 为Erlang添加Erlang Language Platform (elp)。
  • 更新Odin高亮。
  • 移除SML中单引号的自动成对。
  • 为GLSL添加glsl_analyzer。
  • 识别.prettierrc文件为YAML。
  • 修复swift-format格式化程序配置。
  • 将package.json和tsconfig.json识别为JS/TS工作区根。
  • 在注释错误高亮中添加"INVARIANT"。
  • 更新Rescript语法和查询。
  • 更新tree-sitter-nasm。
  • 更新LLVM语法。
  • 更新Perl和Pod语法。
  • 在Nix中添加Nim注入。
  • 识别livemd文件为Markdown。
  • 更新Unison语法和查询。
  • 关闭Swift自动格式化。
  • 识别.swift-format文件为JSON。
  • 识别.clangd和.clang-format文件为YAML。
  • 识别ssh_config.d/*.conf文件为sshclientconfig。
  • 更新Zig注释令牌配置。
  • 更新tree-sitter-bicep。
  • 为Hyperlang添加hyperls。
  • 为Solidity添加高亮查询。
  • 识别WORKSPACE.bzlmod文件为Starlark。
  • 更新Ada语法和查询。
  • 限制Hocon文件类型的通配符模式。
  • 将Mojo语言服务器更新为Magic。
  • 切换tree-sitter-v语法。
  • 在注释错误高亮中添加"COMPLIANCE"。
  • 为ltex-ls-plus添加语言服务器配置。
  • 更新tree-sitter-dockerfile。
  • 为PHP外缩进添加]符号。
  • 为Odin添加文本对象。
  • 更新tree-sitter-heex和查询。
  • 更新protobuf高亮。
  • 切换tree-sitter-query (TSQ)语法。
  • 为jinja和nunjucks添加块注释配置。
  • 为Python添加uv shebang。
  • 更新tree-sitter-vento。
  • 切换Protobuf tree-sitter语法。
  • 识别hypr/*.conf文件为Hyprland。


打包

  • 为Nushell添加补全。
  • 修复Bash补全中的标志补全。
  • 在Nix输出中包含shell补全。

其他版本
最近更新软件 - Linux 软件更新列表
Joplin [应用软件] Joplin 3.2.11 64位
昨天 06:21
Qalculate! [应用软件] Qalculate! 5.5.0 64位
昨天 06:16
HFS [开发] HFS 0.55.3 64位
昨天 06:10
Electerm [开发] Electerm 1.60.6 ARM64
昨天 05:35
Electerm [开发] Electerm 1.60.6 64位
昨天 05:34
Electerm [开发] Electerm 1.60.6 ARM
昨天 05:34
Vim [应用软件] Vim 9.1.1010 32位/64位
昨天 05:31
Sunshine [游戏工具] Sunshine 2025.113.133213 ARM64
昨天 05:30
Sunshine [游戏工具] Sunshine 2025.113.133213 64位
昨天 05:30
Sunshine [游戏工具] Sunshine 2025.113.133213 ARM64
昨天 05:30
新软件 - Linux 新软件列表
DevSidecar [网络] DevSidecar 2.0.0 RC2 ARM64
01-11
DevSidecar [网络] DevSidecar 2.0.0 RC2 64位
01-11
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 龙芯
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 MIPS64EL
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 ARM64/飞腾,鲲鹏,麒麟
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 64位/兆芯
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 龙芯
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 MIPS64EL
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 ARM64/飞腾,鲲鹏,麒麟
01-02
浩辰CAD机械 2025 [设计] 浩辰CAD机械 2025 25.1 64位/兆芯
01-02