8.5 KiB
: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
Пример воркфлоу:
-
Ты на вызове функции
calculate_sum() -
Жмёшь gd → переходишь к определению
-
Смотришь код, делаешь правки
-
Жмёшь Ctrl+o → возвращаешься к вызову
-
Если нужно снова к определению — Ctrl+i
Просмотр всего jumplist
Space+j — открыть picker со всеми сохранёнными переходамиyoutubehelix-editor
Это интерактивное меню, где видны все позиции, куда ты прыгал. Можешь выбрать любую стрелками и нажать Enter.youtube
Навигация между вызовами функции
Найти все использования:
-
Встань на имя функции
-
Нажми gr (goto references)kapeli+1
-
Откроется picker со всеми местами, где функция вызывается
-
Используй стрелки для выбора, Enter для переходаhuqingye-1798.xlog
Переход между функциями в файле:
-
]f — следующая функция (next function)helix-editor+1
-
[f — предыдущая функция (previous function)huqingye-1798.xlog+1
Это работает через 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
- https://docs.helix-editor.com/keymap.html
- https://docs.helix-editor.com/commands.html
- https://kapeli.com/cheat_sheets/Helix.docset/Contents/Resources/Documents/index
- https://www.reddit.com/r/HelixEditor/comments/1hhae1n/undo_go_to_definition/
- https://huqingye-1798.xlog.app/Helix-an-jian-ying-she--zhuan-
- https://docs.helix-editor.com/master/jumplist.html
- https://www.youtube.com/watch?v=B3vQDHzsU0g
- https://docs.helix-editor.com/remapping.html
- https://github.com/helix-editor/helix/issues/3167
- 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