hyperion/10-linux/00-utils/helix/cheatsheet.md
2025-11-22 17:48:07 +03:00

274 lines
No EOL
9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Полная Шпаргалка Клавиш Helix
## Основные Режимы (Mode Keys)
|Клавиша|Действие|
|---|---|
|`i`|Insert mode (вставка перед курсором)|
|`a`|Append (вставка после курсора)|
|`I`|Insert в начале строки|
|`A`|Append в конце строки|
|`o`|Open line below (новая строка ниже)|
|`O`|Open line above (новая строка выше)|
|`v`|Select/extend mode (режим выделения)|
|`Esc`|Вернуться в Normal mode|
|`:`|Command mode (командный режим)|
## Движение (Movement)
|Клавиша|Действие|
|---|---|
|`h`|Влево на символ|
|`j`|Вниз на строку|
|`k`|Вверх на строку|
|`l`|Вправо на символ|
|`w`|Следующее слово (начало)|
|`b`|Предыдущее слово (начало)|
|`e`|Следующее слово (конец)|
|`W`|Следующее WORD (с пробелами)|
|`B`|Предыдущее WORD|
|`E`|Конец WORD|
|`0`|Начало строки|
|`$`|Конец строки|
|`^`|Первый непробельный символ строки|
|`gg`|Начало файла|
|`ge` или `G`|Конец файла|
|`Ctrl-d`|Полстраницы вниз|
|`Ctrl-u`|Полстраницы вверх|
|`Ctrl-f`|Страница вниз (PageDown)|
|`Ctrl-b`|Страница вверх (PageUp)|
|`%`|Найти парную скобку|
## Выделение (Selection)
|Клавиша|Действие|
|---|---|
|`x`|Выделить строку целиком|
|`X`|Выделить строку (без перевода строки)|
|`w`|Выделить слово вперёд|
|`b`|Выделить слово назад|
|`%`|Выделить весь файл|
|`s`|Split selection (поиск по regex)|
|`;`|Collapse selection (убрать выделение)|
|`,`|Remove primary selection|
|`Alt-,`|Remove all secondary selections|
|`C`|Duplicate cursor down|
|`Alt-C`|Duplicate cursor up|
|`&`|Align selections|
## Match Mode (m + клавиша)
|Клавиша|Действие|
|---|---|
|`mm`|Goto matching bracket|
|`ms`|Surround add (добавить окружение)|
|`mr`|Surround replace|
|`md`|Surround delete|
|`mi(`|Select inside parentheses|
|`ma(`|Select around parentheses|
|`mi{`|Select inside braces|
|`ma{`|Select around braces|
|`mi"`|Select inside quotes|
|`ma"`|Select around quotes|
|`miw`|Select inside word|
|`maw`|Select around word|
|`mif`|Select inside function|
|`maf`|Select around function|
## Редактирование (Edit)
|Клавиша|Действие|
|---|---|
|`c`|Change (удалить выделение и войти в insert)|
|`d`|Delete (удалить выделение)|
|`y`|Yank (копировать)|
|`p`|Paste after cursor|
|`P`|Paste before cursor|
|`R`|Replace with yanked text|
|`u`|Undo|
|`U`|Redo|
|`r`|Replace character|
|`~`|Toggle case (upper/lower)|
|`` ` ``|Convert to lowercase|
|` Alt-`` ` ``|Convert to uppercase|
|`>`|Indent (вправо)|
|`<`|Unindent (влево)|
|`=`|Format selection (форматирование)|
|`J`|Join lines|
|`Alt-J`|Join lines with space|
|`K`|Keep selections matching regex|
|`Alt-K`|Remove selections matching regex|
## Поиск (Search)
|Клавиша|Действие|
|---|---|
|`/`|Search forward|
|`?`|Search backward|
|`n`|Next search match|
|`N`|Previous search match|
|`*`|Search current selection forward|
## Goto Mode (g + клавиша)
|Клавиша|Действие|
|---|---|
|`gh`|Goto line start|
|`gl`|Goto line end|
|`gs`|Goto first non-whitespace|
|`ge`|Goto last line|
|`gg`|Goto first line|
|`gt`|Goto window top|
|`gc`|Goto window center|
|`gb`|Goto window bottom|
|`gd`|Goto definition (LSP)|
|`gy`|Goto type definition|
|`gr`|Goto references|
|`gi`|Goto implementation|
|`ga`|Goto last accessed file|
|`gm`|Goto last modified file|
|`gn`|Goto next buffer|
|`gp`|Goto previous buffer|
|`g.`|Goto last modification|
## View Mode (z + клавиша)
|Клавиша|Действие|
|---|---|
|`zz`|Center cursor vertically|
|`zt`|Align cursor to top|
|`zb`|Align cursor to bottom|
|`zm`|Align cursor to middle|
|`zj`|Scroll down (одна строка)|
|`zk`|Scroll up (одна строка)|
|`Z`|Enter **sticky view mode** (прокрутка без движения курсора)|
|`Ctrl-d`|Scroll half page down|
|`Ctrl-u`|Scroll half page up|
## Window Mode (Ctrl-w + клавиша)
|Клавиша|Действие|
|---|---|
|`Ctrl-w v`|Vertical split|
|`Ctrl-w s`|Horizontal split|
|`Ctrl-w w`|Switch to next window|
|`Ctrl-w h`|Goto left window|
|`Ctrl-w j`|Goto bottom window|
|`Ctrl-w k`|Goto top window|
|`Ctrl-w l`|Goto right window|
|`Ctrl-w q`|Close current window|
|`Ctrl-w o`|Close all windows except current|
|`Ctrl-w H`|Swap window left|
|`Ctrl-w J`|Swap window down|
|`Ctrl-w K`|Swap window up|
|`Ctrl-w L`|Swap window right|
## Space Mode (Space + клавиша)
|Клавиша|Действие|
|---|---|
|`Space f`|File picker (открыть файл)|
|`Space F`|File picker (current directory)|
|`Space b`|Buffer picker (открытые файлы)|
|`Space k`|Hover (показать документацию LSP)|
|`Space s`|Symbol picker (функции/структуры)|
|`Space S`|Workspace symbol picker|
|`Space a`|Code actions (LSP)|
|`Space r`|Rename symbol (LSP)|
|`Space d`|Diagnostics picker (ошибки)|
|`Space D`|Workspace diagnostics|
|`Space h`|Highlight all occurrences|
|`Space /`|Global search (ripgrep)|
|`Space ?`|Command palette|
|`Space y`|Yank (copy) to clipboard|
|`Space p`|Paste from clipboard|
|`Space P`|Paste from clipboard before|
|`Space R`|Replace selections with clipboard|
|`Space w`|Save file (:write)|
|`Space q`|Quit (:quit)|
## LSP Специфичные
|Клавиша|Действие|
|---|---|
|`K`|Hover documentation|
|`gd`|Goto definition|
|`gy`|Goto type definition|
|`gr`|Goto references|
|`gi`|Goto implementation|
|`]d`|Next diagnostic (ошибка)|
|`[d`|Previous diagnostic|
|`Space a`|Code actions|
|`Space r`|Rename symbol|
## Insert Mode Специфичные
|Клавиша|Действие|
|---|---|
|`Ctrl-x`|Autocomplete|
|`Ctrl-w`|Delete word backward|
|`Ctrl-u`|Delete to line start|
|`Ctrl-k`|Delete to line end|
|`Ctrl-h`|Backspace|
|`Ctrl-d`|Delete forward|
|`Ctrl-j`|Insert newline|
## Диагностика и Отладка
|Клавиша|Действие|
|---|---|
|`]d`|Next diagnostic|
|`[d`|Previous diagnostic|
|`]g`|Next git change|
|`[g`|Previous git change|
|`]f`|Next function|
|`[f`|Previous function|
|`]c`|Next class|
|`[c`|Previous class|
## Дополнительные
|Клавиша|Действие|
|---|---|
|`.`|Repeat last change|
|`q`|Record macro (например, `qa` → запись в регистр a)|
|`Q`|Replay macro (например, `@a` в Vim, но в Helix просто `Q`)|
|`@`|Shell pipe (выполнить shell команду)|
|`!`|Shell pipe replace|
|`Alt-!`|Shell append output|
|`$`|Shell pipe each selection|
---
## Командный Режим (после `:`)
|Команда|Действие|
|---|---|
|`:w`|Write (save) file|
|`:q`|Quit|
|`:wq` или `:x`|Write and quit|
|`:q!`|Force quit (без сохранения)|
|`:open file.txt`|Open file|
|`:buffer-close`|Close current buffer|
|`:reload`|Reload file from disk|
|`:set key value`|Set option|
|`:vsplit`|Vertical split|
|`:hsplit`|Horizontal split|
|`:sh command`|Run shell command|
|`:insert-output command`|Insert shell command output|
|`:pipe command`|Pipe selection through command|
---
Эта шпаргалка покрывает **95% ежедневного использования** Helix. Сохрани в Obsidian и распечатай — первые недели будешь часто подглядывать, потом всё в мышечную память! 🚀
**Ключевое отличие от Vim:** в Helix **сначала выделение** (selection-first), **потом действие**. Это делает редактирование **предсказуемым** — ты всегда видишь, что изменишь, перед тем как это сделать.
1. [https://docs.helix-editor.com/keymap.html](https://docs.helix-editor.com/keymap.html)
2. [https://github.com/helix-editor/helix/discussions/12270](https://github.com/helix-editor/helix/discussions/12270)
3. [https://www.reddit.com/r/HelixEditor/comments/11hvikl/in_editor_keyboard_shortcuts_cheatsheet/](https://www.reddit.com/r/HelixEditor/comments/11hvikl/in_editor_keyboard_shortcuts_cheatsheet/)
4. [https://docs.helix-editor.com/remapping.html](https://docs.helix-editor.com/remapping.html)
5. [https://github.com/helix-editor/helix/issues/4864](https://github.com/helix-editor/helix/issues/4864)
6. [https://news.ycombinator.com/item?id=40492300](https://news.ycombinator.com/item?id=40492300)
7. [https://blog.ohheybrian.com/2023/01/this-was-written-with-helix](https://blog.ohheybrian.com/2023/01/this-was-written-with-helix)
8. [https://jonathan-frere.com/posts/helix/](https://jonathan-frere.com/posts/helix/)