如何给neovim配置文件树-用lazy.nvim插件

2024-10-11

首先,我的文件夹结构是

~/.config/nvim/init.lua, ~/.config/nvim/lua/plugins.lua, ~/.config/nvim/lua/colorscheme.lua ~/.config/nvim/lua/keymaps.lua

安装nvim-tree插件 - 利用lazy.nvim插件管理包

我们要安装的插件是nvim-tree.lua,不同插件管理包的安装方法

我会把nvim-tree.lua放在~/.config/nvim/lua目录下,然后在plugins.lua中添加如下内容:

 -- nvim-tree 配置
    {
        "nvim-tree/nvim-tree.lua",
        version = "*",
        lazy = false,
        dependencies = {
            "nvim-tree/nvim-web-devicons",
        },
        config = function()
            require("nvim-tree").setup {}
        end,
    },

因为我把所有的插件都放在lazy中,而lazy占据了整个plugins.lua文件,所以放出整个plugins.lua文件以供参考:

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
    -- 主题
    "tanvirtin/monokai.nvim",

    -- 新添加的 nvim-tree 配置
    {
        "nvim-tree/nvim-tree.lua",
        version = "*",
        lazy = false,
        dependencies = {
            "nvim-tree/nvim-web-devicons",
        },
        config = function()
            require("nvim-tree").setup {}
        end,
    },
    
    -- LSP manager
	"williamboman/mason.nvim",
	"williamboman/mason-lspconfig.nvim",
	"neovim/nvim-lspconfig",


	-- Vscode-like pictograms
	{
		"onsails/lspkind.nvim",
		event = { "VimEnter" },
	},
	-- Auto-completion engine
	{
		"hrsh7th/nvim-cmp",
		dependencies = {
			"lspkind.nvim",
			"hrsh7th/cmp-nvim-lsp", -- lsp auto-completion
			"hrsh7th/cmp-buffer", -- buffer auto-completion
			"hrsh7th/cmp-path", -- path auto-completion
			"hrsh7th/cmp-cmdline", -- cmdline auto-completion
		},
		config = function()
			require("config.nvim-cmp")
		end,
	},
	-- Code snippet engine
	{
		"L3MON4D3/LuaSnip",
		version = "v2.*",
	},
})

设置快捷键F2快速打开/关闭文件树

keymaps.lua中添加如下内容:

vim.keymap.set('n', '<F2>', ':NvimTreeToggle<CR>', { noremap = true, silent = true })

noremap = tree 代表非递归映射,不会层层引用;silent = true 代表不显示命令行的信息。

这样,按F2就可以打开或关闭文件树。

快速导航窗口

keymaps.lua中添加如下内容:

-- Better window navigation
vim.keymap.set('n', '<C-h>', '<C-w>h', opts)
vim.keymap.set('n', '<C-j>', '<C-w>j', opts)
vim.keymap.set('n', '<C-k>', '<C-w>k', opts)
vim.keymap.set('n', '<C-l>', '<C-w>l', opts)

这样,按Ctrl+hCtrl+jCtrl+kCtrl+l就可以在窗口之间快速导航。h是左,j是下,k是上,l是右。

文件改名

只要导航到文件夹窗口,按r即可。

显示图标

F2打开文件树时,你会发现图标不能正常显示。你需要下载一个nerd font,选择一个喜欢的下载就行了。

下载后是.zip文件,直接解压会出现很多类型的字体,随便安装一个就行了。

下一步是打开iTerm2,设置字体。在Profile-text-Font里面可以设置,换成刚刚下载的字体即可。

重新用nvim打开neovim,会发现文件夹图标正常显示了。