望远镜键绑定在 nvim-tree 中不起作用

问题描述 投票:0回答:2

概述

我在 Neovim 中同时使用 telescopenvim-tree。我注意到当我专注于 nvim-tree 缓冲区时,用于搜索文件的望远镜键绑定不起作用。

这甚至是更成问题的,因为当我使用

nvim .
打开 Neovim 中的当前目录时,只显示 nvim-tree 缓冲区(并且它是聚焦的)。因此,要使用望远镜查找任何文件,我首先需要打开一个随机文件。然后我就可以使用我的望远镜绑定了。

如果我正确阅读文档,我可能能够读取 nvim-tree 配置中的键盘映射。但是,理想情况下我只需将键盘映射放在

telescope.lua
文件中以避免重复。

配置

-- packer.lua

return require('packer').startup(function(use)
    -- Packer can manage itself
    use 'wbthomason/packer.nvim'

    use {
        'nvim-telescope/telescope.nvim', tag = '0.1.0',
        -- or                          , branch = '0.1.x',
        requires = { { 'nvim-lua/plenary.nvim' } }
    }

    use {
        'nvim-tree/nvim-tree.lua',
        requires = {
            'nvim-tree/nvim-web-devicons', -- optional, for file icon
        },
        tag = 'nightly' -- optional, updated every week. (see issue #1193)
    }
-- after/plugin/telescope.lua

local builtin = require('telescope.builtin')

-- the following three keymaps are the ones that don't work in nvim-tree
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
vim.keymap.set('n', 'p', builtin.git_files, {})
vim.keymap.set('n', '<leader>ps', function()
    builtin.grep_string({ search = vim.fn.input("Grep > ") })
end)

local telescope = require('telescope')
telescope.setup({
    defaults = require('telescope.themes').get_dropdown({
        layout_config = {
            prompt_position = "top",
        },
    }),
})
-- after/plugin/tree.lua

-- disable netrw at the very start of your init.lua (strongly advised)
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

-- set termguicolors to enable highlight groups
vim.opt.termguicolors = true

require("nvim-tree").setup({
    open_on_setup = true,
    view = {
        hide_root_folder = true,
    },
    update_focused_file = {
        enable = true,
        update_cwd = true,
    },
    renderer = {
        icons = {
            show = {
                git = false,
            },
        }
    },
})

vim.keymap.set("n", "<C-d>", ":NvimTreeFocus<CR>", { noremap = true, silent = true })
neovim telescope.nvim
2个回答
0
投票

首先我建议你重组。

在所有其他文件所在的根目录中创建一个目录

lua
。对我来说是
~/.config/nvim

然后将

tree.lua
telescope.lua
移动到
lua
目录中。但我会在每个文件名前面加上 和
_
,这样就不会出现任何冲突。

文件结构

├── lua
│   ├── _tree.lua
│   ├── _telescope.lua

然后在你的plugins.lua(或者你称之为packer.lua)文件中。我推荐的目录位于您创建的新

lua
目录中。

-- lua/_plugins.lua

  use({
    "nvim-telescope/telescope.nvim",
    requires = {
      "nvim-lua/plenary.nvim",
      "kyazdani42/nvim-web-devicons"
    },
    config = function()
      require("_telescope")
    end,
  })
  use ({
    'nvim-tree/nvim-tree.lua',
    requires = {
      'nvim-tree/nvim-web-devicons', -- optional, for file icons
    },
    config = function()
      require("_tree")
    end,
  })
-- init.lua

require("_options") -- other vim options etc...
require("_plugins") -- load in plugins from `lua/_plugins.lua` file
require("_mapping") -- load key mappings

按键映射

-- lua/_mapping.lua

vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>f", ":Telescope find_files<CR>", { noremap = true, silent = true })

0
投票

是的,这可能是因为您的

telescope
键映射被
nvim-tree
的键映射
覆盖。

您可以更改键盘映射,或使用

nvim_tree_disable_keybindings
并从头开始定义自己的
nvim-tree
以避免冲突。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.