aboutsummaryrefslogtreecommitdiffhomepage
path: root/.config/nvim/lua/init/03-autocmds.lua
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2022-12-19 01:39:56 +0900
committernsfisis <nsfisis@gmail.com>2022-12-19 02:02:41 +0900
commitb67f8c76c20c8cb07b5f0aa52f53aaaf9f9f7576 (patch)
treeeb6e8f3786e791ffd71a33f4ee75079470dc9630 /.config/nvim/lua/init/03-autocmds.lua
parentae9846c9563f398b51927d499f0bfe45c9f53185 (diff)
downloaddotfiles-b67f8c76c20c8cb07b5f0aa52f53aaaf9f9f7576.tar.gz
dotfiles-b67f8c76c20c8cb07b5f0aa52f53aaaf9f9f7576.tar.zst
dotfiles-b67f8c76c20c8cb07b5f0aa52f53aaaf9f9f7576.zip
neovim: refactor: split init.lua
Diffstat (limited to '.config/nvim/lua/init/03-autocmds.lua')
-rw-r--r--.config/nvim/lua/init/03-autocmds.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/.config/nvim/lua/init/03-autocmds.lua b/.config/nvim/lua/init/03-autocmds.lua
new file mode 100644
index 0000000..92e4344
--- /dev/null
+++ b/.config/nvim/lua/init/03-autocmds.lua
@@ -0,0 +1,55 @@
+local F = vim.fn
+local O = vim.o
+local vimrc = require('vimrc')
+local A = vimrc.autocmd
+
+
+vimrc.create_augroup_for_vimrc()
+
+
+-- Auto-resize windows when Vim is resized.
+A('VimResized', {
+ command = 'wincmd =',
+})
+
+
+-- Calculate 'numberwidth' to fit file size.
+-- Note: extra 2 is the room of left and right spaces.
+A({'BufEnter', 'WinEnter', 'BufWinEnter'}, {
+ callback = function()
+ vim.wo.numberwidth = #tostring(F.line('$')) + 2
+ end,
+})
+
+
+-- Jump to the last cursor position when you open a file.
+A('BufRead', {
+ callback = function()
+ if 0 < F.line("'\"") and F.line("'\"") <= F.line('$') and
+ not O.filetype:match('commit') and not O.filetype:match('rebase')
+ then
+ vim.cmd('normal g`"')
+ end
+ end,
+})
+
+
+-- Lua version of https://github.com/mopp/autodirmake.vim
+-- License: NYSL
+A('BufWritePre', {
+ callback = function()
+ local dir = F.expand('<afile>:p:h')
+ if F.isdirectory(dir) ~= 0 then
+ return
+ end
+ vimrc.echo(('"%s" does not exist. Create? [y/N] '):format(dir), 'Question')
+ local answer = vimrc.getchar()
+ if answer ~= 'y' and answer ~= 'Y' then
+ return
+ end
+ F.mkdir(dir, 'p')
+ end,
+})
+
+
+vimrc.register_filetype_autocmds_for_indentation()