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

8.5 KiB
Raw Blame History

:w или :write :bc или :buffer-close

Отлично! В Helix есть мощная LSP-интеграция для навигации по коду. Вот полный гайд:

Переход к определению и обратно

Основные команды навигации (goto mode)

Нажми g затем:helix-editor+2

К определению:

  • gd — Go to definition (переход к определению функции/переменной)helix-editor+2

  • gy — Go to type definition (переход к определению типа)huqingye-1798.xlog+1

  • gi — Go to implementation (переход к реализации трейта/интерфейса)helix-editor+1

К использованиям:

  • gr — Go to references (показать все места, где используется функция)kapeli+2

Возврат назад (Jumplist)

После перехода по gd, Helix автоматически сохраняет твою предыдущую позицию в jumplist (список переходов):helix-editoryoutube

  • Ctrl+o — jump Out (вернуться назад по jumplist)reddit+1youtube

  • Ctrl+i — jump In (вернуться вперёд по jumplist)youtubehelix-editor

  • Ctrl+s — вручную сохранить текущую позицию в jumplisthelix-editoryoutube

Пример воркфлоу:

  1. Ты на вызове функции calculate_sum()

  2. Жмёшь gd → переходишь к определению

  3. Смотришь код, делаешь правки

  4. Жмёшь Ctrl+o → возвращаешься к вызову

  5. Если нужно снова к определению — Ctrl+i

Просмотр всего jumplist

Space+j — открыть picker со всеми сохранёнными переходамиyoutubehelix-editor

Это интерактивное меню, где видны все позиции, куда ты прыгал. Можешь выбрать любую стрелками и нажать Enter.youtube

Навигация между вызовами функции

Найти все использования:

  1. Встань на имя функции

  2. Нажми gr (goto references)kapeli+1

  3. Откроется picker со всеми местами, где функция вызывается

  4. Используй стрелки для выбора, Enter для переходаhuqingye-1798.xlog

Переход между функциями в файле:

Это работает через Tree-sitter (TS), не требует LSP.helix-editor+1

Навигация по диагностике (ошибки/предупреждения)

Бонус для дебага:huqingye-1798.xlog+1

  • ]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

  • m затем буква — установить закладку (например, ma для закладки 'a')

  • **** (backtick) затем **буква** — перейти к закладке (например, `` a``)

Это полезно для долгой работы над одним участком кода.helix-editor

  1. https://docs.helix-editor.com/keymap.html
  2. https://docs.helix-editor.com/commands.html
  3. https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index
  4. https://www.reddit.com/r/HelixEditor/comments/1hhae1n/undo_go_to_definition/
  5. https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-
  6. https://docs.helix-editor.com/master/jumplist.html
  7. https://www.youtube.com/watch?v=B3vQDHzsU0g
  8. https://docs.helix-editor.com/remapping.html
  9. https://github.com/helix-editor/helix/issues/3167
  10. https://zed.dev/docs/key-bindings

В Helix для удаления строки используется двухнажатийная комбинация (не одна клавиша, как в некоторых редакторах):

Основная команда

x d

  • x — выделить текущую строку целиком

  • d — удалить выделение

Это самый быстрый и стандартный способ в Helix.

Удаление нескольких строк

Если нужно удалить несколько строк подряд:

  • 5x d — удалить 5 строк (начиная с текущей вниз)

  • x 3k d — выделить строку, расширить на 3 строки вверх, удалить

Удаление и переход в режим вставки

x c — удалить строку и сразу войти в insert mode (аналог vim's cc)

shift + A - это сразу войти в режим i