123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- -- https://github.com/kyazdani42/nvim-tree.lua
- -- local nvim_tree = require'nvim-tree'
- local status, nvim_tree = pcall(require, "nvim-tree")
- if not status then
- vim.notify("没有找到 nvim-tree")
- return
- end
- -- 列表操作快捷键
- local function on_attach(bufnr)
- local api = require('nvim-tree.api')
- local function opts(desc)
- return {
- desc = 'nvim-tree: ' .. desc,
- buffer = bufnr,
- noremap = true,
- silent = true,
- nowait = true
- }
- end
- -- Default mappings not inserted as:
- -- remove_keymaps = true
- -- OR
- -- view.mappings.custom_only = true
- -- Mappings migrated from view.mappings.list
- --
- -- You will need to insert "your code goes here" for any mappings with a custom action_cb
- vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
- vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
- vim.keymap.set('n', '<CR>', api.node.run.system, opts('Run System'))
- vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split'))
- vim.keymap.set('n', 'h', api.node.open.horizontal, opts('Open: Horizontal Split'))
- vim.keymap.set('n', 'i', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore'))
- vim.keymap.set('n', '.', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
- vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
- vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
- vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
- vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
- vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
- vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
- vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
- vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
- vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
- vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
- vim.keymap.set('n', 'I', api.node.show_info_popup, opts('Info'))
- vim.keymap.set('n', 'n', api.node.open.tab, opts('Open: New Tab'))
- vim.keymap.set('n', ']', api.tree.change_root_to_node, opts('CD'))
- vim.keymap.set('n', '[', api.tree.change_root_to_parent, opts('Up'))
- end
- nvim_tree.setup({
- on_attach = on_attach,
- -- 完全禁止内置netrw
- disable_netrw = true,
- -- 不显示 git 状态图标
- git = {
- enable = false
- },
- -- project plugin 需要这样设置
- update_cwd = true,
- update_focused_file = {
- enable = true,
- update_cwd = true
- },
- filters = {
- -- 隐藏 .文件
- dotfiles = true
- -- 隐藏 node_modules 文件夹
- -- custom = { "node_modules" },
- },
- view = {
- -- 宽度
- width = 34,
- -- 也可以 'right'
- side = "left",
- -- 隐藏根目录
- hide_root_folder = false,
- -- 自定义列表中快捷键
- mappings = {
- -- 只用内置快捷键
- custom_only = true,
- list = list_keys
- },
- -- 不显示行数
- number = false,
- relativenumber = false,
- -- 显示图标
- signcolumn = "yes"
- },
- actions = {
- open_file = {
- -- 首次打开大小适配
- resize_window = true,
- -- 打开文件时关闭 tree
- quit_on_open = false
- }
- },
- -- wsl install -g wsl-open
- -- https://github.com/4U6U57/wsl-open/
- system_open = {
- -- mac
- cmd = "open"
- -- windows
- -- cmd = "wsl-open",
- }
- })
|