summary refs log tree commit diff
path: root/.vim/plugin/auto.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-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