首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vim 插件(一) 文件树

Vim 插件(一) 文件树

作者头像
Autooooooo
发布2022-05-09 12:42:09
6630
发布2022-05-09 12:42:09
举报
文章被收录于专栏:CoxhuangCoxhuang

文章目录

GitHub仓库地址: https://github.com/minhanghuang/nvim

Vim 插件 文件树

https://github.com/kyazdani42/nvim-tree.lua

vim-plug

Plug 'kyazdani42/nvim-tree.lua'

添加.lua配置

midir -p ~/.config/nvim/lua/plugin
touch nvim-tree.lua

nvim-tree.lua添加一下内容

-- following options are the default
local tree_cb = require'nvim-tree.config'.nvim_tree_callback
require'nvim-tree'.setup {
	-- disables netrw completely
	disable_netrw       = false,
	-- hijack netrw window on startup
	hijack_netrw        = true,
	-- open the tree when running this setup function
	open_on_setup       = true,
	-- will not open on setup if the filetype is in this list
	ignore_ft_on_setup  = {},
	-- closes neovim automatically when the tree is the last **WINDOW** in the view
	auto_close          = true,
	-- opens the tree when changing/opening a new tab if the tree wasn't previously opened
	open_on_tab         = true,
	-- hijacks new directory buffers when they are opened.
	update_to_buf_dir   = {
		-- enable the feature
		enable = true,
		-- allow to open the tree if it was previously closed
		auto_open = true,
	},
	-- hijack the cursor in the tree to put it at the start of the filename
	hijack_cursor       = false,
	-- updates the root directory of the tree on `DirChanged` (when your run `:cd` usually)
	update_cwd          = false,
	-- show lsp diagnostics in the signcolumn
	lsp_diagnostics     = false,
	-- update the focused file on `BufEnter`, un-collapses the folders recursively until it finds the file
	update_focused_file = {
		-- enables the feature
		enable      = false,
		-- update the root directory of the tree to the one of the folder containing the file if the file is not under the current root directory
		-- only relevant when `update_focused_file.enable` is true
		update_cwd  = false,
		-- list of buffer names / filetypes that will not update the cwd if the file isn't found under the current root directory
		-- only relevant when `update_focused_file.update_cwd` is true and `update_focused_file.enable` is true
		ignore_list = {}
	},
	-- configuration options for the system open command (`s` in the tree by default)
	system_open = {
		-- the command to run this, leaving nil should work in most cases
		cmd  = nil,
		-- the command arguments as a list
		args = {}
	},
  git = {
    enable = true,
    -- 显示被git忽略的文件
    ignore = false,
    timeout = 500,
  },
	view = {
		-- width of the window, can be either a number (columns) or a string in `%`, for left or right side placement
		width = 30,
		-- height of the window, can be either a number (columns) or a string in `%`, for top or bottom side placement
		height = 30,
		-- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom'
		side = 'left',
		-- if true the tree will resize itself after opening a file
		auto_resize = true,
		mappings = {
			-- custom only false will merge the list with the default mappings
			-- if true, it will only use your list to set the mappings
			custom_only = true,
			-- list of mappings to set on the tree manually
			list = {
				{ key = {"<CR>", "o", "<2-LeftMouse>","l"}, cb = tree_cb("edit") },
				{ key = {"<2-RightMouse>", "<C-]>"},    cb = tree_cb("cd") },
				{ key = "<C-v>",                        cb = tree_cb("vsplit") },
				{ key = "<C-x>",                        cb = tree_cb("split") },
				{ key = "<C-t>",                        cb = tree_cb("tabnew") },
				{ key = "<",                            cb = tree_cb("prev_sibling") },
				{ key = ">",                            cb = tree_cb("next_sibling") },
				{ key = {"P"},                            cb = tree_cb("parent_node") },
				--{ key = "<BS>",                         cb = tree_cb("close_node") },
				{ key = "<S-CR>",                       cb = tree_cb("close_node") },
				{ key = "<Tab>",                        cb = tree_cb("preview") },
				{ key = "K",                            cb = tree_cb("first_sibling") },
				{ key = "J",                            cb = tree_cb("last_sibling") },
				{ key = "I",                            cb = tree_cb("toggle_ignored") },
				{ key = {"H","<BS>"},                            cb = tree_cb("toggle_dotfiles") },
				{ key = "R",                            cb = tree_cb("refresh") },
				{ key = "a",                            cb = tree_cb("create") },
				{ key = "d",                            cb = tree_cb("remove") },
				{ key = "r",                            cb = tree_cb("rename") },
				{ key = "<C-r>",                        cb = tree_cb("full_rename") },
				{ key = "x",                            cb = tree_cb("cut") },
				{ key = "c",                            cb = tree_cb("copy") },
				{ key = "p",                            cb = tree_cb("paste") },
				{ key = "y",                            cb = tree_cb("copy_name") },
				{ key = "Y",                            cb = tree_cb("copy_path") },
				{ key = "gy",                           cb = tree_cb("copy_absolute_path") },
				{ key = "[c",                           cb = tree_cb("prev_git_item") },
				{ key = "]c",                           cb = tree_cb("next_git_item") },
				{ key = {"-","h"},                            cb = tree_cb("dir_up") },
				--{ key = "s",                            cb = tree_cb("system_open") },
				--{ key = "s",                            cb = tree_cb("close") },
				{ key = {"q"},                            cb = tree_cb("close") },
				{ key = "g?",                           cb = tree_cb("toggle_help") },
			}


		}
	}
}

添加maps

// init.vim 
lua require("plugin/nvim-tree")
nmap <silent> <Leader>o :NvimTreeToggle<CR>

切换窗口: Ctrl+ww

文件树默认不显示被git忽略的文件,设置显示背git忽略的文件

// nvim-tree.lua
git = {
    enable = true,
    -- 显示被git忽略的文件 
    ignore = false,
    timeout = 500,
  },
在这里插入图片描述
在这里插入图片描述

文件icon不显示?

  • 解决:

不显示icon的原因是当前字体没有icon,这里提到的字体是当前终端的字体,不是系统的字体,举个例子:我使用Mac远程登录这台机器,那么字体就是当前Mac的终端字体,需要对Mac终端配置有icon的字体; 如果是在Ubuntu内打开的终端,就需要对Ubuntu的终端配置合适的字体

字体下载链接: https://github.com/ryanoasis/nerd-fonts

我这里使用的是DroidSansMono字体(https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/DroidSansMono/complete),Mac默认的Monaco字体不显示icon

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Vim 插件 文件树
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档