summary refs log tree commit diff
path: root/.vim/plugin/auto.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2024-11-25 13:30:37 +0100
committerRobert Günzler <r@gnzler.io>2024-11-25 13:58:25 +0100
commit23de12baba9fbfc4ca24581b37c374aa5345cc25 (patch)
treee4b3c421bad572eb85a1089eaad44dc3059ab6e6 /.vim/plugin/auto.lua
parent18e3848110da0a59843058927ea04b496f5db2a5 (diff)
update nvim config
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/plugin/auto.lua')
-rw-r--r--.vim/plugin/auto.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/.vim/plugin/auto.lua b/.vim/plugin/auto.lua
new file mode 100644
index 0000000..ab4e159
--- /dev/null
+++ b/.vim/plugin/auto.lua
@@ -0,0 +1,38 @@
+local augroup = vim.api.nvim_create_augroup
+local autocmd = vim.api.nvim_create_autocmd
+
+do
+  local group = augroup('EasyQuit', { clear = true })
+  autocmd('FileType', {
+    pattern = {
+      'help',
+      'qf',
+      'dap-float',
+      'gitsigns-blame',
+      'git',
+    },
+    callback = function()
+      vim.keymap.set('n', 'q', '<cmd>close<cr>', { silent = true, buffer = 0 })
+    end,
+    group = group,
+  })
+  autocmd('FileType', {
+    pattern = { 'gitgraph' },
+    callback = function()
+      vim.keymap.set('n', 'q', '<cmd>bdel!<cr>', { silent = true, buffer = 0 })
+    end,
+    group = group,
+  })
+  autocmd('FileType', {
+    pattern = { 'DiffviewFiles' },
+    callback = function()
+      vim.keymap.set('n', 'q', '<cmd>tabclose<cr>', { silent = true, buffer = 0 })
+    end,
+    group = group,
+  })
+  autocmd('TermClose', {
+    pattern = { 'term://*' },
+    command = [[ if !v:event.status | exe 'bdelete! '..expand('<abuf>') | endif ]],
+    group = group,
+  })
+end