diff options
Diffstat (limited to '.config/nvim/after')
-rw-r--r-- | .config/nvim/after/plugin/autocmds.lua | 145 | ||||
-rw-r--r-- | .config/nvim/after/plugin/autocmds.vim | 17 |
2 files changed, 145 insertions, 17 deletions
diff --git a/.config/nvim/after/plugin/autocmds.lua b/.config/nvim/after/plugin/autocmds.lua new file mode 100644 index 0000000..3356a49 --- /dev/null +++ b/.config/nvim/after/plugin/autocmds.lua | |||
@@ -0,0 +1,145 @@ | |||
1 | -- https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua | ||
2 | |||
3 | local function augroup(name) | ||
4 | return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true }) | ||
5 | end | ||
6 | |||
7 | -- Set typst filetype | ||
8 | vim.api.nvim_create_autocmd( | ||
9 | { | ||
10 | "BufNewFile", | ||
11 | "BufRead", | ||
12 | }, | ||
13 | { | ||
14 | pattern = "*.typ", | ||
15 | callback = function() | ||
16 | local buf = vim.api.nvim_get_current_buf() | ||
17 | vim.api.nvim_set_option_value("filetype", "typst", { buf = buf }) | ||
18 | vim.api.nvim_set_option_value("shiftwidth", 2, { buf = buf }) | ||
19 | end | ||
20 | } | ||
21 | ) | ||
22 | |||
23 | -- Set PKGBUILD filetype | ||
24 | vim.api.nvim_create_autocmd( | ||
25 | { | ||
26 | "BufNewFile", | ||
27 | "BufRead", | ||
28 | }, | ||
29 | { | ||
30 | pattern = "PKGBUILD", | ||
31 | callback = function() | ||
32 | local buf = vim.api.nvim_get_current_buf() | ||
33 | vim.api.nvim_set_option_value("filetype", "PKGBUILD", { buf = buf }) | ||
34 | end | ||
35 | } | ||
36 | ) | ||
37 | |||
38 | -- Set buku-edit filetype | ||
39 | vim.api.nvim_create_autocmd( | ||
40 | { | ||
41 | "BufNewFile", | ||
42 | "BufRead", | ||
43 | }, | ||
44 | { | ||
45 | pattern = "buku-edit-*", | ||
46 | callback = function() | ||
47 | local buf = vim.api.nvim_get_current_buf() | ||
48 | vim.api.nvim_set_option_value("filetype", "buku", { buf = buf }) | ||
49 | end | ||
50 | } | ||
51 | ) | ||
52 | |||
53 | -- Set mail filetype | ||
54 | vim.api.nvim_create_autocmd( | ||
55 | { | ||
56 | "BufNewFile", | ||
57 | "BufRead", | ||
58 | }, | ||
59 | { | ||
60 | pattern = "/tmp/neomutt*", | ||
61 | callback = function() | ||
62 | local buf = vim.api.nvim_get_current_buf() | ||
63 | vim.api.nvim_set_option_value("autoindent", false, { buf = buf }) | ||
64 | vim.api.nvim_set_option_value("filetype", "mail", { buf = buf }) | ||
65 | vim.api.nvim_set_option_value("wrapmargin", 0, { buf = buf }) | ||
66 | vim.api.nvim_set_option_value("textwidth", 80, { buf = buf }) | ||
67 | end | ||
68 | } | ||
69 | ) | ||
70 | |||
71 | -- Resize splits if window got resized | ||
72 | vim.api.nvim_create_autocmd({ "VimResized" }, { | ||
73 | group = augroup("resize_splits"), | ||
74 | callback = function() | ||
75 | local current_tab = vim.fn.tabpagenr() | ||
76 | vim.cmd("tabdo wincmd =") | ||
77 | vim.cmd("tabnext " .. current_tab) | ||
78 | end, | ||
79 | }) | ||
80 | |||
81 | -- go to last loc when opening a buffer | ||
82 | vim.api.nvim_create_autocmd("BufReadPost", { | ||
83 | group = augroup("last_loc"), | ||
84 | callback = function(event) | ||
85 | local exclude = { "gitcommit" } | ||
86 | local buf = event.buf | ||
87 | if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then | ||
88 | return | ||
89 | end | ||
90 | vim.b[buf].lazyvim_last_loc = true | ||
91 | local mark = vim.api.nvim_buf_get_mark(buf, '"') | ||
92 | local lcount = vim.api.nvim_buf_line_count(buf) | ||
93 | if mark[1] > 0 and mark[1] <= lcount then | ||
94 | pcall(vim.api.nvim_win_set_cursor, 0, mark) | ||
95 | end | ||
96 | end, | ||
97 | }) | ||
98 | |||
99 | -- close some filetypes with <q> | ||
100 | vim.api.nvim_create_autocmd("FileType", { | ||
101 | group = augroup("close_with_q"), | ||
102 | pattern = { | ||
103 | "PlenaryTestPopup", | ||
104 | "checkhealth", | ||
105 | "dbout", | ||
106 | "gitsigns-blame", | ||
107 | "grug-far", | ||
108 | "help", | ||
109 | "lspinfo", | ||
110 | "neotest-output", | ||
111 | "neotest-output-panel", | ||
112 | "neotest-summary", | ||
113 | "notify", | ||
114 | "qf", | ||
115 | "snacks_win", | ||
116 | "spectre_panel", | ||
117 | "startuptime", | ||
118 | "tsplayground", | ||
119 | }, | ||
120 | callback = function(event) | ||
121 | vim.bo[event.buf].buflisted = false | ||
122 | vim.schedule(function() | ||
123 | vim.keymap.set("n", "q", function() | ||
124 | vim.cmd("close") | ||
125 | pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) | ||
126 | end, { | ||
127 | buffer = event.buf, | ||
128 | silent = true, | ||
129 | desc = "Quit buffer", | ||
130 | }) | ||
131 | end) | ||
132 | end, | ||
133 | }) | ||
134 | |||
135 | -- Auto create dir when saving a file, in case some intermediate directory does not exist | ||
136 | vim.api.nvim_create_autocmd({ "BufWritePre" }, { | ||
137 | group = augroup("auto_create_dir"), | ||
138 | callback = function(event) | ||
139 | if event.match:match("^%w%w+:[\\/][\\/]") then | ||
140 | return | ||
141 | end | ||
142 | local file = vim.uv.fs_realpath(event.match) or event.match | ||
143 | vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") | ||
144 | end, | ||
145 | }) | ||
diff --git a/.config/nvim/after/plugin/autocmds.vim b/.config/nvim/after/plugin/autocmds.vim index 0e7935b..21c7bc4 100644 --- a/.config/nvim/after/plugin/autocmds.vim +++ b/.config/nvim/after/plugin/autocmds.vim | |||
@@ -1,23 +1,6 @@ | |||
1 | " I don't know how to port this yet | 1 | " I don't know how to port this yet |
2 | autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif | 2 | autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif |
3 | 3 | ||
4 | autocmd BufNewFile,BufRead /tmp/neomutt* set noautoindent filetype=mail wm=0 tw=80 | ||
5 | |||
6 | augroup bukugroup | ||
7 | au! BufRead,BufNewFile,BufEnter buku-edit-* set filetype=buku | ||
8 | augroup END | ||
9 | |||
10 | " Restore last position | ||
11 | autocmd BufReadPost * | ||
12 | \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' | ||
13 | \ | exe "normal! g`\"" | ||
14 | \ | endif | ||
15 | |||
16 | augroup pkgbuild | ||
17 | autocmd! | ||
18 | autocmd BufRead,BufNewFile PKGBUILD set filetype=PKGBUILD | ||
19 | augroup END | ||
20 | |||
21 | augroup vimwiki | 4 | augroup vimwiki |
22 | autocmd! | 5 | autocmd! |
23 | autocmd BufRead,BufNewFile *.wiki set filetype=vimwiki | 6 | autocmd BufRead,BufNewFile *.wiki set filetype=vimwiki |