#lua #neovim
Вопрос:
У меня проблема с моей конфигурацией в NeoVim. После того, как мне удалось заставить LSP (с помощью lspconfig) работать, я заметил, что ключи, которые я реализовал для NERDTree, и другое расширение (Телескоп) не работали. Однако, когда я выполняю функции из Nerdtree, это работает. Таким образом, проблема может заключаться в некоторой неправильной настройке привязок клавиш.
Конфигурация, которую я установил для lspconfig, такова:
lua lt;lt; EOF local nvim_lsp = require('lspconfig') -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end -- Enable completion triggered by lt;c-xgt;lt;c-ogt; buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. local opts = { noremap=true, silent=true } -- See `:help vim.lsp.*` for documentation on any of the below functions buf_set_keymap('n', 'gD', 'lt;cmdgt;lua vim.lsp.buf.declaration()lt;CRgt;', opts) buf_set_keymap('n', 'gd', 'lt;cmdgt;lua vim.lsp.buf.definition()lt;CRgt;', opts) buf_set_keymap('n', 'K', 'lt;cmdgt;lua vim.lsp.buf.hover()lt;CRgt;', opts) buf_set_keymap('n', 'gi', 'lt;cmdgt;lua vim.lsp.buf.implementation()lt;CRgt;', opts) buf_set_keymap('n', 'lt;C-kgt;', 'lt;cmdgt;lua vim.lsp.buf.signature_help()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;wa', 'lt;cmdgt;lua vim.lsp.buf.add_workspace_folder()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;wr', 'lt;cmdgt;lua vim.lsp.buf.remove_workspace_folder()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;wl', 'lt;cmdgt;lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;D', 'lt;cmdgt;lua vim.lsp.buf.type_definition()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;rn', 'lt;cmdgt;lua vim.lsp.buf.rename()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;ca', 'lt;cmdgt;lua vim.lsp.buf.code_action()lt;CRgt;', opts) buf_set_keymap('n', 'gr', 'lt;cmdgt;lua vim.lsp.buf.references()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;e', 'lt;cmdgt;lua vim.lsp.diagnostic.show_line_diagnostics()lt;CRgt;', opts) buf_set_keymap('n', '[d', 'lt;cmdgt;lua vim.lsp.diagnostic.goto_prev()lt;CRgt;', opts) buf_set_keymap('n', ']d', 'lt;cmdgt;lua vim.lsp.diagnostic.goto_next()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;q', 'lt;cmdgt;lua vim.lsp.diagnostic.set_loclist()lt;CRgt;', opts) buf_set_keymap('n', 'lt;leadergt;F', 'lt;cmdgt;lua vim.lsp.buf.formatting()lt;CRgt;', opts) end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local servers = { 'pyright', 'rust_analyzer', 'tsserver', 'eslint' } for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach = on_attach, flags = { debounce_text_changes = 150, } } end EOF
Привязки клавиш, которые я установил для NERDTree, следующие:
map lt;leadergt;t :call NERDTreeToggle()lt;CRgt;
После настройки некоторых настроек у меня не возникло ни малейшего представления о том, что, возможно, происходит. Любая помощь была бы полезна.
Спасибо
Ответ №1:
Вы пробовали проверить свои привязки ключей? Я бы попробовал следующее:
:map
Когда вы удаляете lspconfig, NERDTree все еще работает?