Nvim: fzf->telescope and defx->nvim-tree

This commit is contained in:
Robert Kmieć
2022-02-03 00:44:23 +01:00
parent 4e7e7efec9
commit 4e92e12676
10 changed files with 284 additions and 111 deletions

View File

@@ -1,67 +1,67 @@
nnoremap <leader>d <cmd>Defx `escape(expand('%:p:h'), ' :')` -search=`expand('%:p')` -split=vertical -winwidth=50 -direction=topleft<CR>
autocmd FileType defx call s:defx_my_settings()
function! s:defx_my_settings() abort
" Define mappings
nnoremap <silent><buffer><expr> <CR>
\ defx#do_action('drop') " instead of open
nnoremap <silent><buffer><expr> c
\ defx#do_action('copy')
nnoremap <silent><buffer><expr> m
\ defx#do_action('move')
nnoremap <silent><buffer><expr> p
\ defx#do_action('paste')
nnoremap <silent><buffer><expr> l
\ defx#do_action('drop')
nnoremap <silent><buffer><expr> E
\ defx#do_action('open', 'vsplit')
nnoremap <silent><buffer><expr> P
\ defx#do_action('preview')
nnoremap <silent><buffer><expr> o
\ defx#do_action('open_tree', 'toggle')
nnoremap <silent><buffer><expr> K
\ defx#do_action('new_directory')
nnoremap <silent><buffer><expr> N
\ defx#do_action('new_file')
nnoremap <silent><buffer><expr> M
\ defx#do_action('new_multiple_files')
nnoremap <silent><buffer><expr> C
\ defx#do_action('toggle_columns',
\ 'mark:indent:icon:filename:type:size:time')
nnoremap <silent><buffer><expr> S
\ defx#do_action('toggle_sort', 'time')
nnoremap <silent><buffer><expr> d
\ defx#do_action('remove')
nnoremap <silent><buffer><expr> r
\ defx#do_action('rename')
nnoremap <silent><buffer><expr> !
\ defx#do_action('execute_command')
nnoremap <silent><buffer><expr> x
\ defx#do_action('execute_system')
nnoremap <silent><buffer><expr> yy
\ defx#do_action('yank_path')
nnoremap <silent><buffer><expr> .
\ defx#do_action('toggle_ignored_files')
nnoremap <silent><buffer><expr> ;
\ defx#do_action('repeat')
nnoremap <silent><buffer><expr> h
\ defx#do_action('cd', ['..'])
nnoremap <silent><buffer><expr> ~
\ defx#do_action('cd')
nnoremap <silent><buffer><expr> q
\ defx#do_action('quit')
nnoremap <silent><buffer><expr> <Space>
\ defx#do_action('toggle_select') . 'j'
nnoremap <silent><buffer><expr> *
\ defx#do_action('toggle_select_all')
nnoremap <silent><buffer><expr> j
\ line('.') == line('$') ? 'gg' : 'j'
nnoremap <silent><buffer><expr> k
\ line('.') == 1 ? 'G' : 'k'
nnoremap <silent><buffer><expr> <C-l>
\ defx#do_action('redraw')
nnoremap <silent><buffer><expr> <C-g>
\ defx#do_action('print')
nnoremap <silent><buffer><expr> cd
\ defx#do_action('change_vim_cwd')
endfunction
"nnoremap <leader>d <cmd>Defx `escape(expand('%:p:h'), ' :')` -search=`expand('%:p')` -split=vertical -winwidth=50 -direction=topleft<CR>
"
"autocmd FileType defx call s:defx_my_settings()
"function! s:defx_my_settings() abort
" " Define mappings
" nnoremap <silent><buffer><expr> <CR>
" \ defx#do_action('drop') " instead of open
" nnoremap <silent><buffer><expr> c
" \ defx#do_action('copy')
" nnoremap <silent><buffer><expr> m
" \ defx#do_action('move')
" nnoremap <silent><buffer><expr> p
" \ defx#do_action('paste')
" nnoremap <silent><buffer><expr> l
" \ defx#do_action('drop')
" nnoremap <silent><buffer><expr> E
" \ defx#do_action('open', 'vsplit')
" nnoremap <silent><buffer><expr> P
" \ defx#do_action('preview')
" nnoremap <silent><buffer><expr> o
" \ defx#do_action('open_tree', 'toggle')
" nnoremap <silent><buffer><expr> K
" \ defx#do_action('new_directory')
" nnoremap <silent><buffer><expr> N
" \ defx#do_action('new_file')
" nnoremap <silent><buffer><expr> M
" \ defx#do_action('new_multiple_files')
" nnoremap <silent><buffer><expr> C
" \ defx#do_action('toggle_columns',
" \ 'mark:indent:icon:filename:type:size:time')
" nnoremap <silent><buffer><expr> S
" \ defx#do_action('toggle_sort', 'time')
" nnoremap <silent><buffer><expr> d
" \ defx#do_action('remove')
" nnoremap <silent><buffer><expr> r
" \ defx#do_action('rename')
" nnoremap <silent><buffer><expr> !
" \ defx#do_action('execute_command')
" nnoremap <silent><buffer><expr> x
" \ defx#do_action('execute_system')
" nnoremap <silent><buffer><expr> yy
" \ defx#do_action('yank_path')
" nnoremap <silent><buffer><expr> .
" \ defx#do_action('toggle_ignored_files')
" nnoremap <silent><buffer><expr> ;
" \ defx#do_action('repeat')
" nnoremap <silent><buffer><expr> h
" \ defx#do_action('cd', ['..'])
" nnoremap <silent><buffer><expr> ~
" \ defx#do_action('cd')
" nnoremap <silent><buffer><expr> q
" \ defx#do_action('quit')
" nnoremap <silent><buffer><expr> <Space>
" \ defx#do_action('toggle_select') . 'j'
" nnoremap <silent><buffer><expr> *
" \ defx#do_action('toggle_select_all')
" nnoremap <silent><buffer><expr> j
" \ line('.') == line('$') ? 'gg' : 'j'
" nnoremap <silent><buffer><expr> k
" \ line('.') == 1 ? 'G' : 'k'
" nnoremap <silent><buffer><expr> <C-l>
" \ defx#do_action('redraw')
" nnoremap <silent><buffer><expr> <C-g>
" \ defx#do_action('print')
" nnoremap <silent><buffer><expr> cd
" \ defx#do_action('change_vim_cwd')
"endfunction

View File

@@ -1,10 +1,10 @@
nnoremap <leader>a :Rg! <C-R><C-W><CR>
nnoremap <leader>A :Rg!<space>
nnoremap <leader>b :Buffers<CR>
nnoremap <leader>c :Commands!<CR>
nnoremap <leader>g :Commits!<CR>
nnoremap <leader>f :Files!<CR>
nnoremap <leader>H :History/<CR>
nnoremap <leader>H :History!<CR>
nnoremap <leader>l :Lines!<CR>
inoremap <leader>s <ESC>:Snippets!<CR>
"nnoremap <leader>a :Rg! <C-R><C-W><CR>
"nnoremap <leader>A :Rg!<space>
"nnoremap <leader>b :Buffers!<CR>
"nnoremap <leader>c :Commands!<CR>
"nnoremap <leader>g :Commits!<CR>
"nnoremap <leader>f :Files!<CR>
"nnoremap <leader>H :History/<CR>
"nnoremap <leader>H :History!<CR>
"nnoremap <leader>l :Lines!<CR>
"inoremap <leader>s <ESC>:Snippets!<CR>

View File

@@ -7,16 +7,16 @@ lua << EOF
local nvim_lsp = require'lspconfig'
local coq = require'coq'
local cmp = require'cmp_nvim_lsp'
local signature = require'lsp_signature'
--local signature = require'lsp_signature'
local illuminate = require'illuminate'
-- Mappings.
local opts = { noremap=true, silent=true }
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
vim.api.nvim_set_keymap('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
vim.api.nvim_set_keymap('n', '<space>E', '<cmd>lua vim.diagnostic.set_loclist()<CR>', opts)
vim.api.nvim_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
vim.api.nvim_set_keymap('n', '<leader>E', '<cmd>lua vim.diagnostic.set_loclist()<CR>', opts)
vim.api.nvim_set_keymap("n", "<leader>q", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
@@ -30,20 +30,20 @@ local on_attach = function(client, bufnr)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
signature.on_attach({
bind = true,
handler_opts = {
border = "single",
}
}, bufnr)
-- signature.on_attach({
-- bind = true,
-- handler_opts = {
-- border = "single",
-- }
-- }, bufnr)
illuminate.on_attach(client)
end

View File

@@ -1,3 +1,3 @@
" Mapping to NERDTree
nnoremap <leader>t :NERDTreeToggle<CR>
let NERDTreeIgnore=['\~$', '\.pyc$']
"nnoremap <leader>t :NERDTreeToggle<CR>
"let NERDTreeIgnore=['\~$', '\.pyc$']

View File

@@ -17,10 +17,10 @@ cmp.setup({
end,
},
mapping = {
['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),

View File

@@ -0,0 +1,139 @@
let g:nvim_tree_quit_on_open = 1 "0 by default, closes the tree when you open a file
let g:nvim_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open
let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons).
let g:nvim_tree_highlight_opened_files = 1 "0 by default, will enable folder and file icon highlight for opened files/directories.
let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options
let g:nvim_tree_add_trailing = 1 "0 by default, append a trailing slash to folder names
let g:nvim_tree_group_empty = 1 " 0 by default, compact folders that only contain a single folder into one node in the file tree
let g:nvim_tree_change_dir_global = 1 "0 by default, use :cd when changing directories.
let g:nvim_tree_disable_window_picker = 1 "0 by default, will disable the window picker.
let g:nvim_tree_icon_padding = ' ' "one space by default, used for rendering the space between the icon and the filename. Use with caution, it could break rendering if you set an empty string depending on your font.
let g:nvim_tree_symlink_arrow = ' >> ' " defaults to ' ➛ '. used as a separator between symlinks' source and target.
let g:nvim_tree_respect_buf_cwd = 0 "0 by default, will change cwd of nvim-tree to that of new buffer's when opening nvim-tree.
let g:nvim_tree_create_in_closed_folder = 0 "1 by default, When creating files, sets the path of a file when cursor is on a closed folder to the parent folder when 0, and inside the folder when 1.
let g:nvim_tree_refresh_wait = 1000 " control how often the tree can be refreshed, 1000 means the tree can be refresh once per 1000ms.
let g:nvim_tree_window_picker_exclude = {
\ 'filetype': [
\ 'notify',
\ 'packer',
\ 'qf'
\ ],
\ 'buftype': [
\ 'terminal'
\ ]
\ }
" Dictionary of buffer option names mapped to a list of option values that
" indicates to the window picker that the buffer's window should not be
" selectable.
let g:nvim_tree_special_files = { 'README.md': 1, 'Makefile': 1, 'MAKEFILE': 1 } " List of filenames that gets highlighted with NvimTreeSpecialFile
let g:nvim_tree_show_icons = {
\ 'git': 1,
\ 'folders': 1,
\ 'files': 1,
\ 'folder_arrows': 0,
\ }
"If 0, do not show the icons for one of 'git' 'folder' and 'files'
"1 by default, notice that if 'files' is 1, it will only display
"if nvim-web-devicons is installed and on your runtimepath.
"if folder is 1, you can also tell folder_arrows 1 to show small arrows next to the folder icons.
"but this will not work when you set indent_markers (because of UI conflict)
" default will show icon by default if no icon is provided
" default shows no icon by default
let g:nvim_tree_icons = {
\ 'default': '',
\ 'symlink': '',
\ 'git': {
\ 'unstaged': "✗",
\ 'staged': "✓",
\ 'unmerged': "",
\ 'renamed': "➜",
\ 'untracked': "★",
\ 'deleted': "",
\ 'ignored': "◌"
\ },
\ 'folder': {
\ 'arrow_open': "",
\ 'arrow_closed': "",
\ 'default': "",
\ 'open': "",
\ 'empty': "",
\ 'empty_open': "",
\ 'symlink': "",
\ 'symlink_open': "",
\ }
\ }
nnoremap <leader>tt :NvimTreeToggle<CR>
"nnoremap <leader>r :NvimTreeRefresh<CR>
nnoremap <leader>tf :NvimTreeFindFile<CR>
" NvimTreeOpen, NvimTreeClose, NvimTreeFocus, NvimTreeFindFileToggle, and NvimTreeResize are also available if you need them
"set termguicolors " this variable must be enabled for colors to be applied properly
" a list of groups can be found at `:help nvim_tree_highlight`
"highlight NvimTreeFolderIcon guibg=blue
lua << EOF
-- following options are the default
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
require'nvim-tree'.setup {
disable_netrw = true,
hijack_netrw = true,
open_on_setup = false,
ignore_ft_on_setup = {},
auto_close = false,
open_on_tab = false,
hijack_cursor = false,
update_cwd = false,
update_to_buf_dir = {
enable = true,
auto_open = true,
},
diagnostics = {
enable = false,
icons = {
hint = "",
info = "",
warning = "",
error = "",
}
},
update_focused_file = {
enable = false,
update_cwd = false,
ignore_list = {}
},
system_open = {
cmd = nil,
args = {}
},
filters = {
dotfiles = false,
custom = {}
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
height = 30,
hide_root_folder = false,
side = 'left',
auto_resize = false,
mappings = {
custom_only = false,
list = {}
},
number = false,
relativenumber = false,
signcolumn = "yes"
},
trash = {
cmd = "trash",
require_confirm = true
}
}
EOF

View File

@@ -0,0 +1,33 @@
" Find files using Telescope command-line sugar.
"nnoremap <leader>f <cmd>Telescope find_files<cr>
"nnoremap <leader>g <cmd>Telescope live_grep<cr>
"nnoremap <leader>b <cmd>Telescope buffers<cr>
"nnoremap <leader>fh <cmd>Telescope help_tags<cr>
lua << EOF
require('telescope').load_extension('ultisnips')
EOF
" Using Lua functions
nnoremap <leader>f <cmd>lua require('telescope.builtin').find_files()<cr>
nnoremap <leader>a <cmd>lua require('telescope.builtin').live_grep()<cr>
nnoremap <leader>b <cmd>lua require('telescope.builtin').buffers()<cr>
nnoremap <leader>r <cmd>lua require('telescope.builtin').resume()<cr>
"nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr>
nnoremap <leader>tc <cmd>lua require('telescope.builtin').commands()<cr>
nnoremap <leader>t: <cmd>lua require('telescope.builtin').command_history()<cr>
nnoremap <leader>t/ <cmd>lua require('telescope.builtin').search_history()<cr>
nnoremap <leader>tr <cmd>lua require('telescope.builtin').registers()<cr>
" Neovim lsp pickers
nnoremap <leader>tr <cmd>lua require('telescope.builtin').lsp_references()<cr>
nnoremap <leader>td <cmd>lua require('telescope.builtin').lsp_definitions()<cr>
" git pickers
nnoremap <leader>gc <cmd>lua require('telescope.builtin').git_commits()<cr>
nnoremap <leader>gC <cmd>lua require('telescope.builtin').git_bcommits()<cr>
nnoremap <leader>gb <cmd>lua require('telescope.builtin').git_branches()<cr>
nnoremap <leader>s <cmd>lua require('telescope').extensions.ultisnips.ultisnips()<cr>

View File

@@ -4,5 +4,5 @@ let g:completion_enable_snippet = 'UltiSnips'
iunmap <Tab>
"map <c-s> <C-R>=UltiSnips#ExpandSnippet()<CR>
"let g:UltiSnipsExpandTrigger="<c-s>"
let g:UltiSnipsJumpForwardTrigger="<c-n>"
let g:UltiSnipsJumpBackwardTrigger="<c-p>"
let g:UltiSnipsJumpForwardTrigger="<leader>n"
let g:UltiSnipsJumpBackwardTrigger="<leader>p"

View File

@@ -1,7 +1,7 @@
nmap <silent> <leader>tn :TestNearest<CR>
nmap <silent> <leader>tf :TestFile<CR>
nmap <silent> <leader>ts :TestSuite<CR>
nmap <silent> <leader>tl :TestLast<CR>
nmap <silent> <leader>tv :TestVisit<CR>
let test#strategy = "floaterm"
"nmap <silent> <leader>tn :TestNearest<CR>
"nmap <silent> <leader>tf :TestFile<CR>
"nmap <silent> <leader>ts :TestSuite<CR>
"nmap <silent> <leader>tl :TestLast<CR>
"nmap <silent> <leader>tv :TestVisit<CR>
"
"let test#strategy = "floaterm"