Merge pull request #5 from kyazdani42/user-keybindings

Feature: add option for user keybindings
This commit is contained in:
Kiyan Yazdani 2020-04-03 12:21:21 +02:00 committed by GitHub
commit c384ab7097
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 56 additions and 9 deletions

View File

@ -31,6 +31,20 @@ let g:lua_tree_show_icons = {
"1 by default, notice that if 'files' is 1, it will only display
"if web-devicons is installed and on your runtimepath
" You can edit keybindings be defining this variable
" You don't have to define all keys.
" NOTE: the 'edit' key will wrap/unwrap a folder and open a file
let g:lua_tree_bindings = {
\ 'edit': '<CR>',
\ 'edit_vsplit': '<C-v>',
\ 'edit_split': '<C-x>',
\ 'edit_tab': '<C-t>',
\ 'cd': '.',
\ 'create': 'a',
\ 'remove': 'd',
\ 'rename': 'r'
\ }
nnoremap <C-n> :LuaTreeToggle<CR>
nnoremap <leader>r :LuaTreeRefresh<CR>
nnoremap <leader>n :LuaTreeFindFile<CR>

View File

@ -109,6 +109,22 @@ INFORMATIONS *nvim-tree-info*
- Double left click acts like '<CR>'
- Double right click acts like '.'
|g:lua_tree_bindings| *g:lua_tree_bindings*
you can change default keybindings by defining this variable.
default keybindings will be applied to undefined keys.
>
let g:lua_tree_bindings = {
\ edit: '<cr>',
\ edit_vsplit: '<c-v>',
\ edit_split: '<c-x>',
\ edit_tab: '<c-t>',
\ cd: '.',
\ create: 'a',
\ remove: 'd',
\ rename: 'r'
\ }
|Features| *nvim-tree-features*
File icons with vim-devicons.

View File

@ -3,6 +3,7 @@
:LuaTreeToggle nvim-tree-lua.txt /*:LuaTreeToggle*
g:lua_tree_auto_close nvim-tree-lua.txt /*g:lua_tree_auto_close*
g:lua_tree_auto_open nvim-tree-lua.txt /*g:lua_tree_auto_open*
g:lua_tree_bindings nvim-tree-lua.txt /*g:lua_tree_bindings*
g:lua_tree_follow nvim-tree-lua.txt /*g:lua_tree_follow*
g:lua_tree_ignore nvim-tree-lua.txt /*g:lua_tree_ignore*
g:lua_tree_show_icons nvim-tree-lua.txt /*g:lua_tree_show_icons*

View File

@ -27,10 +27,24 @@ local colors = {
dark_red = get('terminal_color_9', 'DarkRed'),
}
local keybindings = get('lua_tree_bindings', {});
local bindings = {
edit = keybindings.edit or '<CR>',
edit_vsplit = keybindings.edit_vsplit or '<C-v>',
edit_split = keybindings.edit_split or '<C-x>',
edit_tab = keybindings.edit_tab or '<C-t>',
cd = keybindings.cd or '.',
create = keybindings.create or 'a',
remove = keybindings.remove or 'd',
rename = keybindings.remove or 'r',
}
return {
SHOW_FOLDER_ICON = SHOW_FOLDER_ICON,
SHOW_FILE_ICON = SHOW_FILE_ICON,
SHOW_GIT_ICON = SHOW_GIT_ICON,
colors = colors
colors = colors,
bindings = bindings
}

View File

@ -8,6 +8,8 @@ local highlight = libformat.highlight_buffer
local stateutils = require 'lib/state'
local get_tree = stateutils.get_tree
local bindings = require 'lib/config'.bindings
local function get_buf()
local regex = '.*'..BUF_NAME..'$';
@ -132,16 +134,16 @@ local function set_mappings()
if not buf then return end
local mappings = {
['<CR>'] = 'open_file("edit")';
['<2-LeftMouse>'] = 'open_file("edit")';
['<2-RightMouse>'] = 'open_file("chdir")';
['<C-v>'] = 'open_file("vsplit")';
['<C-x>'] = 'open_file("split")';
['<C-t>'] = 'open_file("tabnew")';
['.'] = 'open_file("chdir")';
a = 'edit_file("create")';
d = 'edit_file("remove")';
r = 'edit_file("rename")';
[bindings.edit] = 'open_file("edit")';
[bindings.edit_vsplit] = 'open_file("vsplit")';
[bindings.edit_split] = 'open_file("split")';
[bindings.edit_tab] = 'open_file("tabnew")';
[bindings.cd] = 'open_file("chdir")';
[bindings.create] = 'edit_file("create")';
[bindings.remove] = 'edit_file("remove")';
[bindings.rename] = 'edit_file("rename")';
}
for k,v in pairs(mappings) do