migrations
This commit is contained in:
parent
d1b0670d71
commit
f2b07c9f30
57 changed files with 2970 additions and 1 deletions
161
10-linux/00-utils/helix/keys.md
Normal file
161
10-linux/00-utils/helix/keys.md
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
**:w** или **:write**
|
||||
**:bc** или **:buffer-close**
|
||||
|
||||
Отлично! В Helix есть мощная LSP-интеграция для навигации по коду. Вот полный гайд:
|
||||
|
||||
## Переход к определению и обратно
|
||||
|
||||
## Основные команды навигации (goto mode)
|
||||
|
||||
Нажми **g** затем:[helix-editor+2](https://docs.helix-editor.com/keymap.html)
|
||||
|
||||
**К определению:**
|
||||
|
||||
- **gd** — Go to **definition** (переход к определению функции/переменной)[helix-editor+2](https://docs.helix-editor.com/commands.html)
|
||||
|
||||
- **gy** — Go to **type definition** (переход к определению типа)[huqingye-1798.xlog+1](https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-)
|
||||
|
||||
- **gi** — Go to **implementation** (переход к реализации трейта/интерфейса)[helix-editor+1](https://docs.helix-editor.com/keymap.html)
|
||||
|
||||
|
||||
**К использованиям:**
|
||||
|
||||
- **gr** — Go to **references** (показать все места, где используется функция)[kapeli+2](https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index)
|
||||
|
||||
|
||||
## Возврат назад (Jumplist)
|
||||
|
||||
После перехода по `gd`, Helix автоматически сохраняет твою предыдущую позицию в **jumplist** (список переходов):[helix-editor](https://docs.helix-editor.com/master/jumplist.html)youtube
|
||||
|
||||
- **Ctrl+o** — jump **Out** (вернуться назад по jumplist)[reddit+1](https://www.reddit.com/r/HelixEditor/comments/1hhae1n/undo_go_to_definition/)youtube
|
||||
|
||||
- **Ctrl+i** — jump **In** (вернуться вперёд по jumplist)youtube[helix-editor](https://docs.helix-editor.com/master/jumplist.html)
|
||||
|
||||
- **Ctrl+s** — вручную сохранить текущую позицию в jumplist[helix-editor](https://docs.helix-editor.com/master/jumplist.html)youtube
|
||||
|
||||
|
||||
**Пример воркфлоу:**
|
||||
|
||||
1. Ты на вызове функции `calculate_sum()`
|
||||
|
||||
2. Жмёшь **gd** → переходишь к определению
|
||||
|
||||
3. Смотришь код, делаешь правки
|
||||
|
||||
4. Жмёшь **Ctrl+o** → возвращаешься к вызову
|
||||
|
||||
5. Если нужно снова к определению — **Ctrl+i**
|
||||
|
||||
|
||||
## Просмотр всего jumplist
|
||||
|
||||
**Space+j** — открыть picker со всеми сохранёнными переходамиyoutube[helix-editor](https://docs.helix-editor.com/master/jumplist.html)
|
||||
|
||||
Это интерактивное меню, где видны все позиции, куда ты прыгал. Можешь выбрать любую стрелками и нажать Enter.youtube
|
||||
|
||||
## Навигация между вызовами функции
|
||||
|
||||
**Найти все использования:**
|
||||
|
||||
1. Встань на имя функции
|
||||
|
||||
2. Нажми **gr** (goto references)[kapeli+1](https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index)
|
||||
|
||||
3. Откроется picker со всеми местами, где функция вызывается
|
||||
|
||||
4. Используй стрелки для выбора, Enter для перехода[huqingye-1798.xlog](https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-)
|
||||
|
||||
|
||||
**Переход между функциями в файле:**
|
||||
|
||||
- **]f** — следующая функция (next function)[helix-editor+1](https://docs.helix-editor.com/keymap.html)
|
||||
|
||||
- **[f** — предыдущая функция (previous function)[huqingye-1798.xlog+1](https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-)
|
||||
|
||||
|
||||
Это работает через Tree-sitter (TS), не требует LSP.[helix-editor+1](https://docs.helix-editor.com/keymap.html)
|
||||
|
||||
## Навигация по диагностике (ошибки/предупреждения)
|
||||
|
||||
Бонус для дебага:[huqingye-1798.xlog+1](https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-)
|
||||
|
||||
- **]d** — следующая ошибка/предупреждение
|
||||
|
||||
- **[d** — предыдущая ошибка
|
||||
|
||||
- **[D** — первая ошибка в файле
|
||||
|
||||
- **]D** — последняя ошибка в файле
|
||||
|
||||
|
||||
## Полный workflow для Rust-разработки
|
||||
|
||||
**Сценарий 1: Изучение чужого кода**
|
||||
|
||||
text
|
||||
|
||||
`1. Встал на функцию → gd (перешёл к определению) 2. Посмотрел типы → gy (перешёл к type definition) 3. Хочу вернуться → Ctrl+o (назад к вызову) 4. Хочу посмотреть все вызовы → gr (список references) 5. Выбрал другой вызов → Enter 6. Возвращаюсь к первому → Space+j (jumplist picker)`
|
||||
|
||||
**Сценарий 2: Рефакторинг**
|
||||
|
||||
text
|
||||
|
||||
`1. Встал на функцию → gr (показать все вызовы) 2. Перешёл к первому → Enter 3. Сделал правки → Ctrl+s (сохранил позицию в jumplist) 4. Следующий вызов → выбрал из picker 5. Вернулся к предыдущему → Ctrl+o`
|
||||
|
||||
**Сценарий 3: Исследование трейтов**
|
||||
|
||||
text
|
||||
|
||||
`1. Встал на трейт → gy (type definition) 2. Хочу увидеть реализации → gi (implementations) 3. Picker показал все impl блоки → выбираю нужный 4. Возврат → Ctrl+o`
|
||||
|
||||
## Горячие клавиши для закладок (опционально)
|
||||
|
||||
Если хочешь быстро прыгать между важными местами, используй **marks** (закладки):[helix-editor](https://docs.helix-editor.com/remapping.html)
|
||||
|
||||
- **m** затем **буква** — установить закладку (например, `ma` для закладки 'a')
|
||||
|
||||
- **` ** (backtick) затем **буква** — перейти к закладке (например, `` ` a``)
|
||||
|
||||
|
||||
Это полезно для долгой работы над одним участком кода.[helix-editor](https://docs.helix-editor.com/remapping.html)
|
||||
|
||||
1. [https://docs.helix-editor.com/keymap.html](https://docs.helix-editor.com/keymap.html)
|
||||
2. [https://docs.helix-editor.com/commands.html](https://docs.helix-editor.com/commands.html)
|
||||
3. [https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index](https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index)
|
||||
4. [https://www.reddit.com/r/HelixEditor/comments/1hhae1n/undo_go_to_definition/](https://www.reddit.com/r/HelixEditor/comments/1hhae1n/undo_go_to_definition/)
|
||||
5. [https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-](https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-)
|
||||
6. [https://docs.helix-editor.com/master/jumplist.html](https://docs.helix-editor.com/master/jumplist.html)
|
||||
7. [https://www.youtube.com/watch?v=B3vQDHzsU0g](https://www.youtube.com/watch?v=B3vQDHzsU0g)
|
||||
8. [https://docs.helix-editor.com/remapping.html](https://docs.helix-editor.com/remapping.html)
|
||||
9. [https://github.com/helix-editor/helix/issues/3167](https://github.com/helix-editor/helix/issues/3167)
|
||||
10. [https://zed.dev/docs/key-bindings](https://zed.dev/docs/key-bindings)
|
||||
|
||||
В Helix для удаления строки используется **двухнажатийная комбинация** (не одна клавиша, как в некоторых редакторах):
|
||||
|
||||
## Основная команда
|
||||
|
||||
**x d**
|
||||
|
||||
- **x** — выделить текущую строку целиком
|
||||
|
||||
- **d** — удалить выделение
|
||||
|
||||
|
||||
Это самый быстрый и стандартный способ в Helix.[](https://pikabu.ru/story/osnovyi_helix_mini_gayd_13142410)
|
||||
|
||||
|
||||
|
||||
## Удаление нескольких строк
|
||||
|
||||
Если нужно удалить несколько строк подряд:
|
||||
|
||||
- **5x d** — удалить 5 строк (начиная с текущей вниз)
|
||||
|
||||
- **x 3k d** — выделить строку, расширить на 3 строки вверх, удалить
|
||||
|
||||
|
||||
## Удаление и переход в режим вставки
|
||||
|
||||
**x c** — удалить строку и сразу войти в insert mode (аналог vim's `cc`)
|
||||
|
||||
shift + A - это сразу войти в режим i
|
||||
Loading…
Add table
Add a link
Reference in a new issue