nvim-ks/lua/autocmd.lua
2024-12-02 08:13:10 +01:00

53 lines
1.8 KiB
Lua

-- [[ Autocommands ]]
-- See `:help autocmd`
-- See `:help lua-guide-autocommands`
-- These should be self-explanatory
vim.api.nvim_create_user_command('Cd', 'cd %:h', { desc = 'Change directory to the current file' })
vim.api.nvim_create_user_command('Py', '!python %', { desc = 'Execute python file' })
vim.api.nvim_create_user_command('Trim', 'lua MiniTrailspace.trim()', { desc = 'Trim trailing whitespace' })
-- Instantly move help window to the right
-- This is almost certainly a hacky way to do this)
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'help' },
command = 'wincmd L',
})
-- Highlight when yanking (copying) text
-- Try it with `yap` in normal mode
-- See `:help vim.highlight.on_yank()`
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})
vim.api.nvim_create_user_command('CDToGitRoot', function()
local handle = io.popen 'git rev-parse --show-toplevel 2>/dev/null'
local git_root = handle:read('*a'):gsub('\n', '')
handle:close()
if git_root == '' then
print 'Not in a Git repository'
else
vim.cmd('cd ' .. git_root)
print('Changed directory to Git root: ' .. git_root)
end
end, { desc = 'Change directory to the current Git repository root' })
vim.api.nvim_create_user_command('WordCount', function()
local buf = vim.api.nvim_get_current_buf()
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
local words = 0
for _, line in ipairs(lines) do
for _ in line:gmatch '%S+' do
words = words + 1
end
end
print('Word count: ' .. words)
end, { desc = 'Count words in current buffer' })
-- vim: ts=2 sts=2 sw=2 et