66 lines
2.1 KiB
Lua
66 lines
2.1 KiB
Lua
local api = vim.api
|
|
local settings = require("user-conf")
|
|
|
|
--- Remove all trailing whitespace on save
|
|
--local TrimWhiteSpaceGrp = api.nvim_create_augroup("TrimWhiteSpaceGrp", { clear = true })
|
|
--api.nvim_create_autocmd("BufWritePre", {
|
|
-- command = [[:%s/\s\+$//e]],
|
|
-- group = TrimWhiteSpaceGrp,
|
|
--})
|
|
|
|
-- don't auto comment new line
|
|
api.nvim_create_autocmd("BufEnter", { command = [[set formatoptions-=cro]] })
|
|
|
|
-- Close nvim if NvimTree is only running buffer
|
|
api.nvim_create_autocmd(
|
|
"BufEnter",
|
|
{ command = [[if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif]] }
|
|
)
|
|
|
|
-- Highlight on yank
|
|
local yankGrp = api.nvim_create_augroup("YankHighlight", { clear = true })
|
|
api.nvim_create_autocmd("TextYankPost", {
|
|
command = "silent! lua vim.highlight.on_yank()",
|
|
group = yankGrp,
|
|
})
|
|
-- go to last loc when opening a buffer
|
|
api.nvim_create_autocmd(
|
|
"BufReadPost",
|
|
{ command = [[if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif]] }
|
|
)
|
|
-- windows to close with "q"
|
|
api.nvim_create_autocmd(
|
|
"FileType",
|
|
{ pattern = { "help", "startuptime", "qf", "lspinfo" }, command = [[nnoremap <buffer><silent> q :close<CR>]] }
|
|
)
|
|
api.nvim_create_autocmd("FileType", { pattern = "man", command = [[nnoremap <buffer><silent> q :quit<CR>]] })
|
|
|
|
-- show cursor line only in active window
|
|
local cursorGrp = api.nvim_create_augroup("CursorLine", { clear = true })
|
|
api.nvim_create_autocmd({ "InsertLeave", "WinEnter" }, {
|
|
pattern = "*",
|
|
command = "set cursorline",
|
|
group = cursorGrp,
|
|
})
|
|
api.nvim_create_autocmd(
|
|
{ "InsertEnter", "WinLeave" },
|
|
{ pattern = "*", command = "set nocursorline", group = cursorGrp }
|
|
)
|
|
|
|
-- Enable spell checking for certain file types
|
|
api.nvim_create_autocmd(
|
|
{ "BufRead", "BufNewFile" },
|
|
{ pattern = { "*.txt", "*.md", "*.tex" }, command = "setlocal spell" }
|
|
)
|
|
if settings.packer_auto_sync then
|
|
-- source plugins.lua and run PackerSync on save
|
|
local sync_packer = function()
|
|
vim.cmd("runtime lua/plugins.lua")
|
|
require("packer").sync()
|
|
end
|
|
api.nvim_create_autocmd({ "BufWritePost" }, {
|
|
pattern = { "plugins.lua" },
|
|
callback = sync_packer,
|
|
})
|
|
end
|