Советы и рекомендации для лучшего опыта кодирования.
Обзор
Мы рассмотрели с вами советы и рекомендации по использованию tree-sitter
в моей предыдущей статье. В этой статье мы продолжаем исследовать, как мы можем улучшить наш опыт кодирования с помощью Neovim.
Эту статью можно читать независимо от других связанных статей.
Лучше выбрать
nvim-ts-hint-textobject — это плагин, использующий tree-sitter
, который обеспечивает выбор региона с помощью подсказок на абстрактном синтаксическом дереве документа. Это предназначено для использования для ожидающих сопоставлений операторов.
С помощью packer.nvim
устанавливаю и настраиваю плагин.
use { "mfussenegger/nvim-ts-hint-textobject", config = function() vim.cmd [[omap <silent> m :<C-U>lua require('tsht').nodes()<CR>]] vim.cmd [[vnoremap <silent> m :lua require('tsht').nodes()<CR>]] end, }
Запустите luafile %
и :PackerInstall
, чтобы установить их.
Теперь я могу легко выбрать правильный блок кода в визуальном режиме или использовать операторы Vim.
Например, используя визуальный режим или оператор Vim, введите «m», и вы сможете выбрать либо класс, либо функцию.
Лучше TODO
todo-комментарий. nvim — это плагин Lua для выделения и поиска комментариев к задачам, таких как TODO
, HACK
, BUG
, или ключевых слов, которые вы определили в своей кодовой базе.
Вы можете перечислить TODO в списке быстрых исправлений или с помощью Trouble или Telescope.
use { "folke/todo-comments.nvim", requires = "nvim-lua/plenary.nvim", config = function() require("todo-comments").setup {} end }
Запустите luafile %
и :PackerInstall
, чтобы установить их.
Лучшее совместное использование кода
gitlinker.nvim — это плагин Lua для создания постоянных ссылок на общие файлы с диапазонами строк.
use { 'ruifm/gitlinker.nvim', config = function() require("gitlinker").setup() end }
По умолчанию, когда вы вводите <leader>gy
в обычном или визуальном режиме, создается постоянная ссылка.
Улучшенные и умные текстовые объекты
В части 1 я показал вам nvim-treesitter-textobjects.
nvim-treesitter-textsubjects — это еще один плагин Lua, который предоставляет вам текстовые объекты с учетом местоположения и синтаксиса.
use {'RRethy/nvim-treesitter-textsubjects'}
В вашей конфигурации Treesitter
require'nvim-treesitter.configs'.setup { textsubjects = { enable = true, keymaps = { ['.'] = 'textsubjects-smart', [';'] = 'textsubjects-container-outer', } }, }
- Я выбираю строку в функции.
- Нажмите
.
, и функция будет выбрана. - Нажмите
.
еще раз, и класс будет выбран.
Лучшее сотрудничество
instant.nvim — это плагин для совместного редактирования для Neovim, написанный на Lua без каких-либо зависимостей.
use {'jbyuki/instant.nvim'}
Кроме того, установите глобальное имя пользователя.
let g:instant_username = "alpha2phi"
Чтобы протестировать его локально,
- На первом экземпляре Neovim запустите
:InstantStartServer
. Сервер должен начать слушать порт 8080. - Теперь запустите сеанс, запустив
:InstantStartSession 127.0.0.1 8080
. - Измените
instance_username
на другое имя. - Запустите второй экземпляр Neovim. Запустите
:InstantJoinSession 127.0.0.1 8080
, а затем:InstantFollow alpha2phi
- Теперь мы можем начать сотрудничать!
Вы также можете проверить эти статьи!
Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)