上一篇 【推荐】后现代风格文本编辑器-Helix

Helix常用命令

命令名称 描述
:quit, :q 关闭当前视图
:quit!, :q! 强制关闭当前视图,忽略未保存的更改
:open, :o 从磁盘打开文件进入当前视图
:buffer-close, :bc, :bclose 关闭当前缓冲区
:buffer-close!, :bc!, :bclose! 强制关闭当前缓冲区,忽略未保存的更改
:buffer-close-others, :bco, :bcloseother 关闭除当前缓冲区外的所有缓冲区
:buffer-close-others!, :bco!, :bcloseother! 强制关闭除当前缓冲区以外的所有缓冲区
:buffer-close-all, :bca, :bcloseall 关闭所有缓冲区而不退出
:buffer-close-all!, :bca!, :bcloseall! 强制关闭所有缓冲区,忽略未保存的更改而不退出
:buffer-next, :bn, :bnext 转到下一个缓冲区
:buffer-previous, :bp, :bprev 转到上一个缓冲区
:write, :w 将更改写入磁盘 接受可选路径(:write 文件路径)
:write!, :w! 强制写入更改到磁盘,创建必要的子目录,接受可选路径(:write! some/path.txt)
:write-buffer-close, :wbc 将更改写入磁盘并关闭缓冲区,接受可选路径(:write-buffer-close some/path.txt)
:write-buffer-close!, :wbc! 强制写入更改到磁盘,创建必要的子目录并关闭缓冲区,接受可选路径(:write-buffer-close! some/path.txt)
:new, :n 创建一个新的暂存缓冲区
:format, :fmt 使用 LSP 格式化器格式化文件
:indent-style 设置编辑时的缩进样式 ('t'表示制表符,1-8 表示空格数 )
:line-ending 设置文档的默认行尾 选项:crlf, lf
:earlier, :ear 跳转回编辑历史中较早的一个点,接受多个步骤或一个时间范围
:later, :lat 跳转到编辑历史记录中的稍后点,接受多个步骤或一个时间范围
:write-quit, :wq, :x 将更改写入磁盘并关闭当前视图,接受可选路径(:wq some/path.txt)
:write-quit!, :wq!, :x! 将更改写入磁盘,并强制关闭当前视图 接受可选路径(:wq! some/path.txt)
:write-all, :wa 将所有缓冲区的更改写入磁盘
:write-all!, :wa! 强制将所有缓冲区的更改写入磁盘,创建必要的子目录
:write-quit-all, :wqa, :xa 将所有缓冲区中的更改写入磁盘并关闭所有视图
:write-quit-all!, :wqa!, :xa! 将所有缓冲区的更改写入磁盘并强制关闭所有视图(忽略未保存的更改)
:quit-all, :qa 关闭所有视图
:quit-all!, :qa! 强制关闭所有视图,忽略未保存的更改
:cquit, :cq 带退出码退出(默认 1) 接受一个可选的整数退出码(:cq 2)
:cquit!, :cq! 强制退出退出码(默认 1),忽略未保存的更改 接受一个可选的整数退出码(:cq!2)
:theme 更改编辑器主题(如果没有指定名称则显示当前主题)
:yank-join 拉取所选区域,第一个参数是分隔符 默认值是换行符
:clipboard-yank 将主选项拉入系统剪贴板
:clipboard-yank-join 将加入的选项拉入系统剪贴板,分隔符可以作为第一个参数提供,默认值为换行符
:primary-clipboard-yank 将主选项拉入系统主剪贴板
:primary-clipboard-yank-join 将选择加入到系统主剪贴板中,分隔符可以作为第一个参数提供,默认值为换行符
:clipboard-paste-after 粘贴系统剪贴板内容与选择区域后方
:clipboard-paste-before 粘贴系统剪贴板内容与选择区域前方
:clipboard-paste-replace 用系统剪贴板的内容替换所选区域
:primary-clipboard-paste-after 粘贴主剪贴板内容在所选择区域后
:primary-clipboard-paste-before 粘贴主剪贴板内容在所选择区域前
:primary-clipboard-paste-replace 用系统主剪贴板的内容替换选择内容
:show-clipboard-provider 在状态栏中显示剪贴板程序名称
:change-current-directory, :cd 更改当前工作目录
:show-directory, :pwd 显示当前工作目录
:encoding 设置编码,编码基于https://encoding.spec.whatwg.org
:character-info, :char 获取光标下字符的信息
:reload, :rl 放弃更改并从源文件重新加载
:reload-all, :rla 放弃更改并重新加载源文件中的所有文档
:update, :u 只有当文件被修改时才写入更改
:lsp-workspace-command 打开工作区命令选择器
:lsp-restart 重新启动当前文档使用的语言服务器
:lsp-stop 停止当前文档使用的语言服务器
:tree-sitter-scopes 显示 tree-sitter 作用域,主要用于主题化和开发
:tree-sitter-highlight-name 在光标下显示 tree-sitter 高亮作用域的名称
:debug-start, :dbg 从具有给定参数的给定模板启动调试会话
:debug-remote, :dbg-tcp 通过 TCP 地址连接到调试适配器,并从具有给定参数的给定模板启动调试会话
:debug-eval 在当前调试上下文中求值表达式
:vsplit, :vs 以垂直分割方式打开文件
:vsplit-new, :vnew 在垂直分割中打开新缓冲区
:hsplit, :hs, :sp 以水平分割打开文件
:hsplit-new, :hnew 在水平分割中打开新缓冲区
:tutor 打开教程
:goto, :g 转到行号
:set-language, :lang 设置当前缓冲区的语言(如果未指定值则显示当前语言)
:set-option, :set 在运行时设置一个配置。例如,要禁用搜索智能大小写,请使用':set search.smart-case false”
:toggle-option, :toggle 在运行时切换bool配置选项。例如,要切换智能大小写,请使用':toggle search.smart-case '
:get-option, :get 获取配置选项的当前值
:sort 对选择范围进行排序
:rsort 对选择中的范围倒序排序
:reflow 将当前选择的行强制设置指定的宽度
:tree-sitter-subtree, :ts-subtree 在光标下显示tree-sitter 子节点,主要用于调试查询
:config-reload 刷新用户配置
:config-open 打开用户config.toml 文件
:config-open-workspace 打开工作区config.toml 文件
:log-open 打开 helix 日志文件
:insert-output 运行 shell 命令,在每次选择前插入输出
:append-output 运行 shell 命令,在每次选择后附加输出
:pipe 将每个选择用管道输出到 shell 命令
:pipe-to 将每个选择用管道连接到 shell 命令,忽略输出
:run-shell-command, :sh 运行 shell 命令
:reset-diff-change, :diffget, :diffg 重置光标位置的变更差异
:clear-register 清除给定寄存器 如果未提供参数,则清除所有寄存器
:redraw 清除并重新渲染整个UI
:move 将当前缓冲区及其对应的文件移动到不同的路径

配置

可以通过创建config.toml配置文件来覆盖默认全局配置参数

  • Linux 和 Mac: ~/.config/helix/config.toml
  • Windows: %AppData%\helix\config.toml

你可以很简单在命令模式用:config-open来打开配置文件

实例配置:

theme = "onedark"

[editor]
line-number = "relative"
mouse = false [editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline" [editor.file-picker]
hidden = false

你可以使用命令行参数-c--config来指定一个配置文件,例如hx -c path/to/custom-config.toml.

此外,你可以用操作系统的USR1信号来通知Helix进程重新加载配置,比如使用命令 pkill -USR1 hx.

最后,你可以在自己工程目录下的.helix目录中放置一个 config.toml 配置文件,其中设置会合并到配置目录的config.toml中和内置配置。

编辑器

[editor]字段

参数 描述 默认值
scrolloff 附在屏幕边缘显示的滚动行数 5
mouse 启动鼠标模式 true
middle-click-paste 鼠标中键粘贴支持 true
scroll-lines 随滚轮滚动的行数 3
shell 运行shell命令时启动的shell Unix: ["sh", "-c"]
Windows: ["cmd", "/C"]
line-number 行号的显示: absolute 简单显示行号.relative 在非插入模式状态下,显示相对当前位置的行数. , relative 仍然显示当前行的绝对行号 absolute
cursorline 高亮显示所有光标所在行 false
cursorcolumn 高亮显示所有光标所在列 false
gutters 边缘区域展示的内容,可选项有diagnostics , diff ,line-numbers ,spacer, 注意diagnostics 也包括了其他特性,例如断点。如果是空,则显示1个宽度的空白 ["diagnostics", "spacer", "line-numbers", "spacer", "diff"]
auto-completion 开启自动补全 true
auto-format 启动保存时自动格式化 true
auto-save 启动在焦点移除Helix时自动保存,需要你的shell支持focus event support false
idle-timeout 按键按下后的毫秒级等待时间,使用了自动补全,应设置为0 250
preview-completion-insert 当补全项被选择时是否自动应用 true
completion-trigger-len 当前光标下,出发自动补全的最小输入长度 2
completion-replace 自动补全始终会替换整个词而非光标前的部分 false
auto-info 是否显示信息框 true
true-color 覆盖自动检测的虚拟终端的真彩设置 false
undercurl 覆盖自动检测的虚拟终端的undercurl支持 false
rulers 标尺的列位置列表,可以被languages.toml的参数覆盖 []
bufferline 在编辑器上方显示打开的缓冲区,可以是always, nevermultiple (只有存在多个缓冲区才显示) never
color-modes 是否在不同的模式下显示不同的颜色 false
text-width 行的最大长度。可以使用命令:reflow 和 软折叠设置soft-wrap.wrap-at-text-width 80
workspace-lsp-roots 相对于工程根目录的相对目录,可被看作为LSP的根目录,只能在 .helix/config.toml 设置 []
default-line-ending 行结尾的换行符,可以是 native, lf, crlf, ff, crnelnative 用于系统本地行结尾(Windows使用crlf 而不是lf). native
insert-final-newline 是否自动在最后行添加行结尾符号 true
indent-heuristic 计算新一行如何缩进: simple 只是拷贝上一行的缩进方式.tree-sitter 基于语法树计算缩进量. hybrid混合两种方式. 如果选项失效了,按照如下顺序尝试缩进方式: hybrid -> tree-sitter -> simple). hybrid

[editor.statusline] 字段

允许在编辑器的底部配置状态行

在状态行默认配置了三个区域

[ ...... LEFT .... | ... ... CENTER ... ... | .... RIGHT ..... ]

状态行元素的定义如下:

[editor.statusline]
left = ["mode", "spinner"]
center = ["file-name"]
right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"]
separator = "│"
mode.normal = "NORMAL"
mode.insert = "INSERT"
mode.select = "SELECT"

[editor.statusline] :状态行配置定义:

配置项 描述 默认值
left 状态行左侧的元素列表 ["mode", "spinner", "file-name", "read-only-indicator", "file-modification-indicator"]
center 状态行中间的元素列表 []
right 状态行右侧的元素列表 ["diagnostics", "selections", "register", "position", "file-encoding"]
separator 状态栏用来分割的字符 "│"
mode.normal 普通模式在mode 元素中显示文本 "NOR"
mode.insert 插入模式在mode 元素中显示文本 "INS"
mode.select 视图模式在mode 元素中显示文本 "SEL"

状态栏元素定义

配置项 描述
mode 当前的模式 (mode.normal/mode.insert/mode.select)
spinner 一个显示lsp正在运转的指示器
file-name 打开的文件路径/名字
file-base-name 打开的文件的基础名称
file-modification-indicator 显示文件是否修改过的指示器( [+] 表示更改未保存)
file-encoding 打开的文件的编码格式(如果不是utft-8则显示)
file-line-ending 文件的行结尾符号The(CRLF 或 LF)
read-only-indicator 显示 [readonly] 的指示器,表示文件不可写入
total-line-numbers 打开的文件总行数
file-type 打开的文件类型
diagnostics 警告或错误的数量
workspace-diagnostics 工作区的警告或错误的数量
selections 当前被选中的数量
primary-selection-length 在主选择中的字符个数
position 光标的位置
position-percentage 光标所在位置在总行数中百分比
separator editor.statusline.separator定义的字符(默认:"│")
spacer 在元素之间插入一个空格,可以指定多个空格
version-control 在打开的工程中,当前分支名称或待提交的哈希值
register 当前选择的寄存器

[editor.lsp] 字段

配置项 描述 默认值
enable 启动LSP服务. 设置false会完全关闭所有的语言服务 true
display-messages 在状态栏显示LSP进程信息[1] false
auto-signature-help 启动自动提醒帮助(参数列表) true
display-inlay-hints 显示嵌入的提醒[2] false
display-signature-help-docs 在符号帮助弹窗显示文档 true
snippets 启动片段补全。需要lsp服务启动 (:lsp-restart) ,加载配置生效 :config-reload/:set. true
goto-reference-include-declaration 在跳转引用弹窗中包含声明 true

[editor.cursor-shape] 字段

定义在每个模式下光标的形状,包括:block, bar, underline, or hidden.

由于终端环境的限制,只有主光标才能改变形状

配置项 描述 默认值
normal 在普通模式下的光标形状 block
insert 在插入模式下的光标形状 block
select 在选择模式下的光标形状 block

[editor.file-picker] 字段

设置文件选择器和全局搜索的配置项。忽略一个文件意味着在Helix文件选择器和全局搜索中是不可见的

所有git相关的配置项只在git工程目录下生效。

配置项 描述 默认值
hidden 启动忽略隐藏文件 true
follow-symlinks 跟随符号链接而非忽略 true
deduplicate-links 忽略在选择器中已显示文件的符号链接 true
parents 开启在上层目录中读取被忽略的文件 true
ignore 开启读取定义在.ignore 中的文件 true
git-ignore 开启读取定义在.gitignore 中的文件 true
git-global 开启读取全局 .gitignore, 其完整路径在git配置项core.excludesfile中定义 true
git-exclude 开启读取定义在.git/info/exclude 中的文件 true
max-depth 设置一个整数作为递归最大深度 默认是none

[editor.auto-pairs] 字段

启动自动补全括号功能,可以简单设置为一个布尔值,或者设置一对或单个符号的映射

取消自动补全可以设置 auto-pairsfalse:

[editor]
auto-pairs = false # defaults to `true`

默认的括号配对包括 () {} [] '' "" ``, 但是也可以自己定义,例如:

[editor.auto-pairs]
'(' = ')'
'{' = '}'
'[' = ']'
'"' = '"'
'`' = '`'
'<' = '>'

此外,这些设置可以作用与某一个语言配置。除非编辑器设置是false,否则这个配置会覆盖这个语言的编辑器配置

例如:languages.toml 中添加 <> 并移除 ''

[[language]]
name = "rust" [language.auto-pairs]
'(' = ')'
'{' = '}'
'[' = ']'
'"' = '"'
'`' = '`'
'<' = '>'

[editor.search] 字段

搜索功能的指定选项

配置项 描述 默认值
smart-case 启动正则表达式搜索的智能大小写匹配(除非正则表达式中包含大写字母,否则不区分大小写) true
wrap-around 搜索的结果是否可以循环跳转 true

[editor.whitespace] 字段

使用可视字符渲染空格的选项,使用:set whitespace.render all 来临时启用可视空格。

配置项 描述 默认值
render 是否渲染空格.可以是 "all" 或者"none", 或者使用这些字符space, nbsp, tab, 和newline "none"
characters 使用任意字符来渲染空格,子配置项包括tab, space, nbsp, newlinetabpad 参见示例

示例:

[editor.whitespace]
render = "all"
# 或者控制每一个字符
[editor.whitespace.render]
space = "all"
tab = "all"
newline = "none" [editor.whitespace.characters]
space = "·"
nbsp = "⍽"
tab = "→"
newline = "⏎"
tabpad = "·" # tab空格会显示: "→···" (依赖于tab宽度)

[editor.indent-guides] 字段

渲染垂直缩进符号的选项

配置项 描述 默认值
render 是否渲染缩进符号 false
character 使用任意符号作为缩进符号
skip-levels 缩进级别被忽略的等级数 0

Example:

[editor.indent-guides]
render = true
character = "╎" # 一些工作正常的符号: "▏", "┆", "┊", "⸽"
skip-levels = 1

[editor.gutters]字段

简单来说,editor.gutters 接受一组边界的类型,可以作为所有边界容器的默认设置

[editor]
gutters = ["diff", "diagnostics", "line-numbers", "spacer"]

[editor.gutters] 字段被用于定义边界,这个字段是最顶层设置,也可设置特定边界的子字段内容

配置项 描述 默认值
layout 一列可以显示的边界内容 ["diagnostics", "spacer", "line-numbers", "spacer", "diff"]

例如:

[editor.gutters]
layout = ["diff", "diagnostics", "line-numbers", "spacer"]

[editor.gutters.line-numbers] 字段

行数设置选项

配置项 描述 默认值
min-width 使用的符号的最小数量 3

例如:

[editor.gutters.line-numbers]
min-width = 1

[editor.gutters.diagnostics] 字段

当前不开放配置

[editor.gutters.diff] 字段

当前不开放配置

[editor.gutters.spacer] 字段

当前不开放配置

[editor.soft-wrap] 字段

视图边界线的选项(跟随视图自动换行)

配置项 描述 默认值
enable 启动自动换行功能,根据视图宽度可软换行 false
max-wrap 行结尾处最大剩余空格数量 20
max-indent-retain 处理强制换行时可以延续的最大缩进数量 40
wrap-indicator 在软换行前插入的字符符号,可以用ui.virtual.wrap高亮显示
wrap-at-text-width 软换行使用text-width配置的宽度而随着窗口的大小而调整. false

例如:

[editor.soft-wrap]
enable = true
max-wrap = 25 # 增加该值可以降低强制从一个词中间软换行
max-indent-retain = 0
wrap-indicator = "" # 设置后可以不现实软换行符号

[editor.smart-tab] 字段

配置项 描述 默认值
enable 如果设置是true,当光标左边是非空格字符,按下tab会执行move_parent_node_end,而不是插入一个tab字符。如果光标左边只有空格,按下tab会插入一个tab字符。默认强制插入一个tab字符的快捷键是Shift-tab. true
supersede-menu 正常情况下,一个菜单显示在屏幕上,例如自动补全触发,tab按键会循环遍历选项。这意味着当菜单出现在屏幕上,是不能触发smart-tab的。如果这个设置项设置为true, smart-tab 命令一直会被触发 ,这意味着不能使用tab循环遍历菜单选项。 那么必须使用另一种快捷键操作,例如 箭头按键或者C-n/C-p. false

  1. 默认情况,一个过程指示器会在状态栏的文件路径上显示。

  2. 你可以还需要在LSP中激活服务,嵌入提醒还在改进中,在某些情况下会有些滞后. 请汇报bug以便我们能修复它们!

【推荐】Helix 常用命令与设置的更多相关文章

  1. win10常用命令和设置总结

    1.常用命令 exit:退出cmd面板; cls:清除cmd面板; 2.常用设置 2.1 services.msc 禁用:以后怎样都不会运行;手动:是打开某些用到它的程序要用到该服务时才会运行; 自动 ...

  2. vi常用命令与设置(不断修改中)

    注:前缀':'表示vim命令(命令模式),前缀'$'表示为shell命令,表示Ctrl + W,表示Ctrl + Shift+ 6,无前缀者均为普通模式下的键盘按键.基本的插入与修改:         ...

  3. linux常用命令---中英文设置

    中英文设置 LANG变量 echo $LANG---------查看当前编码 locale -----------------设置之后可查看详细信息 中文设置 # vim /etc/profile.d ...

  4. Bash初识与常用命令

    转至:https://www.cnblogs.com/baishou/p/13850258.html Shell介绍 Shell在中文的意思是壳,寓意是操作系统的壳.Shell是指一种应用程序,这个应 ...

  5. Linux 操作系统常用命令

    常用命令详解 ls 常用选项: -a:列出所有文件,包括以.为开头的隐藏文件. -d ; 列出目录本身,并不包含目录里的内容. -h:和-l一起使用,文件大小容易阅读.文件的实际大小 ls -d/ro ...

  6. [Linux]常用命令之【netstat/ps/lsof/ss/kill/】#进程/服务/端口#

    查看系统中最近的端口连接记录 [root@sdc01 ~]# lsof -Pnl +M -i4 | grep "154" sshd 30963 0 3u IPv4 65160732 ...

  7. Linux常用命令3--如何设置IP地址?如何更改系统时间?

    Linux常用命令 系统状态监控 [1]ps:用于显示当前系统中运行的进程. 语法:ps [-option]:常用的参数有:-a;-u;-x;-e;-f. -a:显示所有进程: -u:显示所有用户: ...

  8. 常用linux命令及其设置

    完成一个运维的工作,以下的命令和配置是经常会用到的,总结一下工作以来的命令和配置 linux常用命令 linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享 $ mkdir – ...

  9. Java常用命令与参数设置

    我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...

  10. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)

    8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...

随机推荐

  1. Cplex求解教程(基于OPL语言,可作为大规模运算输入参考)

    最近导导让牛牛改篇论文,牛牛在她的指导下把非线性问题化成了线性.然鹅,化成线性后的模型决策变量和约束条件均达到上百甚至上千个,这让牛牛犯了难,以下方法或许能为这样大规模模型的变量和约束输入提供思路(๑ ...

  2. 彻底弄懂ip掩码中的网络地址、广播地址、主机地址

    本文为博主原创,转载请注明出处: 概念理解: IP掩码(或子网掩码)用于确定一个IP地址的网络部分和主机部分.它是一个32位的二进制数字,与IP地址做逻辑与运算,将IP地址划分为网络地址和主机地址两部 ...

  3. 【开源】给ChatGLM写个,Java对接的SDK

    作者:小傅哥 - 百度搜 小傅哥bugstack 博客:bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥. 清华大学计算机系的超大规模训练模型 Cha ...

  4. Util应用框架Web Api开发快速入门

    本文是使用Util应用框架开发 Web Api 项目快速入门教程. 前面已经详细介绍了环境搭建,如果你还未准备好,请参考前文. 开发流程概述 创建代码生成专用数据库. Util应用框架需要专门用来生成 ...

  5. YbtOJ 数位DP G.幸运666

    日常写点奇奇怪怪的乱搞做法 awa 这题跟前面几道数位 DP 的区别在于让求第 \(n\) 小的数. 虽然我不会求也不想学这个,但我们可以 binary search! 问题就转换为求 \([1,mi ...

  6. C#winform软件实现一次编译,跨平台windows和linux兼容运行,兼容Visual Studio原生界面Form表单开发

    一.背景: 微软的.net core开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系统上运行,开发起来还比较麻烦.微软只让c#的控 ...

  7. Educational Codeforces Round 125 (Rated for Div. 2) E. Star MST

    折磨了我三天的\(DP\),终于看懂啦. 首先,如果想要有题目要求的效果,那么最短的边一定都是与\(1\)相连的,就是一个菊花图,生成树里的边就是最短的边. \(f[i][j]\)表示已经有\(i\) ...

  8. RIPEMD加密技术

    摘要:RIPEMD(RACE Integrity Primitives Evaluation Message Digest)是一种密码散列函数,广泛应用于网络安全领域.本文首先介绍RIPEMD的起源和 ...

  9. 请查收,本周刷屏的两大热点「GitHub 热点速览」

    如果你逛 HackerNews 或者是推特,你一定会被 multipleWindow3dScene 这个跨窗口渲染项目的成果刷屏,毕竟国内的技术平台上也出现了不少的模仿项目.另外一个热点,便是你在白板 ...

  10. python内置模块——logging

    内置模块-logging loging模块是python提供的内置模块,用来做日志处理. 日志等级: 等级 释义 级别数值 CRITICAL(fatal) 致命错误,程序根本跑不起来 50 ERROR ...