diff --git a/tasks/neovim.yml b/tasks/neovim.yml index 36d771a..3e7c323 100644 --- a/tasks/neovim.yml +++ b/tasks/neovim.yml @@ -116,6 +116,10 @@ src: 'templates/nvim/lua/auto-commands.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/auto-commands.lua', } + - { + src: 'templates/nvim/lua/keybindings.lua.j2', + dest: '{{ xdg_config_dir }}/nvim/lua/keybindings.lua', + } - { src: 'templates/nvim/lua/lsp.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/lsp.lua', diff --git a/templates/nvim/init.lua.j2 b/templates/nvim/init.lua.j2 index c540171..74928fa 100644 --- a/templates/nvim/init.lua.j2 +++ b/templates/nvim/init.lua.j2 @@ -3,6 +3,7 @@ require('options') require('lsp') require('nvim-cmp') +require('keybindings') require('auto-commands') require('tree-sitter') require('lua-line') diff --git a/templates/nvim/lua/keybindings.lua.j2 b/templates/nvim/lua/keybindings.lua.j2 new file mode 100644 index 0000000..731135a --- /dev/null +++ b/templates/nvim/lua/keybindings.lua.j2 @@ -0,0 +1,13 @@ +-- {{ ansible_managed }} + +local opts = {noremap=true, silent=true} + +vim.api.nvim_set_keymap('n', '', ':NvimTreeToggle', opts) +vim.api.nvim_set_keymap('n', 'ff', 'lua require("telescope.builtin").find_files()', opts) +vim.api.nvim_set_keymap('n', 'fg', 'lua require("telescope.builtin").live_grep()', opts) +vim.api.nvim_set_keymap('n', 'fb', 'lua require("telescope.builtin").buffers()', opts) +vim.api.nvim_set_keymap('n', 'fh', 'lua require("telescope.builtin").help_tags()', opts) +vim.api.nvim_set_keymap('n', 'fj', 'lua require("telescope.builtin").jumplist()', opts) +vim.api.nvim_set_keymap('n', 'fl', 'lua require("telescope.builtin").loclist()', opts) +vim.api.nvim_set_keymap('n', 'fq', 'lua require("telescope.builtin").quickfix()', opts) +vim.api.nvim_set_keymap('n', 'fm', 'lua require("telescope.builtin").marks()', opts) diff --git a/templates/nvim/lua/lsp.lua.j2 b/templates/nvim/lua/lsp.lua.j2 index 37b3645..77782d1 100644 --- a/templates/nvim/lua/lsp.lua.j2 +++ b/templates/nvim/lua/lsp.lua.j2 @@ -3,8 +3,11 @@ --use an on_attach function to only map the following keys --after the language server attaches to the current buffer local on_attach = function(client, bufnr) - local opts = { buffer = bufnr, noremap = true, silent = true } + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + -- mappings + local opts = { buffer = bufnr, noremap = true, silent = true } vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) diff --git a/templates/nvim/lua/nvim-tree.lua.j2 b/templates/nvim/lua/nvim-tree.lua.j2 index 6715d70..904f72b 100644 --- a/templates/nvim/lua/nvim-tree.lua.j2 +++ b/templates/nvim/lua/nvim-tree.lua.j2 @@ -2,15 +2,10 @@ local nvim_tree = require('nvim-tree'); local nvim_tree_icons = require('nvim-web-devicons'); -local api = require('nvim-tree.api') - -local function toggle_tree() - api.tree.toggle({ find_file = true, update_root = true, focus = true }) -end - -vim.keymap.set('n', '', toggle_tree, { noremap = true, silent = true }) local function my_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 diff --git a/templates/nvim/lua/source-link.lua.j2 b/templates/nvim/lua/source-link.lua.j2 index 8b7df92..abbe9cc 100644 --- a/templates/nvim/lua/source-link.lua.j2 +++ b/templates/nvim/lua/source-link.lua.j2 @@ -4,4 +4,6 @@ local source_link = require('source-link') source_link.setup() -vim.keymap.set('n', '', ':SourceOpen', { noremap = true, silent = true }) +local opts = { noremap = true, silent = true } + +vim.api.nvim_set_keymap('n', '', ':SourceOpen', opts) diff --git a/templates/nvim/lua/telescope.lua.j2 b/templates/nvim/lua/telescope.lua.j2 index b74a42f..af27925 100644 --- a/templates/nvim/lua/telescope.lua.j2 +++ b/templates/nvim/lua/telescope.lua.j2 @@ -1,18 +1,6 @@ -- {{ ansible_managed }} -local telescope = require('telescope') -local builtin = require('telescope.builtin') - -local opts = { noremap = true, silent = true } - -vim.keymap.set('n', 'ff', builtin.find_files, opts) -vim.keymap.set('n', 'fg', builtin.live_grep, opts) -vim.keymap.set('n', 'fb', builtin.buffers, opts) -vim.keymap.set('n', 'fh', builtin.help_tags, opts) -vim.keymap.set('n', 'fj', builtin.jumplist, opts) -vim.keymap.set('n', 'fl', builtin.loclist, opts) -vim.keymap.set('n', 'fq', builtin.quickfix, opts) -vim.keymap.set('n', 'fm', builtin.marks, opts) +local telescope = require('telescope'); telescope.setup({ defaults = {