improved skeleton and moved to custom plugin

This commit is contained in:
tedmoyses 2023-05-07 08:08:30 +01:00
parent ce251cd13f
commit d45eac3184
7 changed files with 85 additions and 62 deletions

View file

@ -500,65 +500,6 @@ cmp.setup {
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et
-- my keymaps
vim.keymap.set('i', 'jk', '<Esc>', { desc="Back to normal mode from insert mode" });
vim.keymap.set('i', 'kj', '<Esc>', { desc="Back to normal mode from insert mode" });
vim.keymap.set({'n', 'x'}, 'B', '0', { desc="Move to beginning of line" });
vim.keymap.set({'n', 'x'}, 'E', '$', { desc="Move to end of line" });
-- move text up or down
vim.keymap.set('n', '<A-j>', ':m .+1<CR>==', { desc="Move line down one line" });
vim.keymap.set('n', '<A-k>', ':m .-2<CR>==', { desc="Move line up one line" });
vim.keymap.set('i', '<A-j>', '<Esc>:m .+1<CR>==gi', { desc="Move line down one line" });
vim.keymap.set('i', '<A-k>', '<Esc>:m .-2<CR>==gi', { desc="Move line up one line" });
vim.keymap.set('x', '<A-j>', ":m '>+1<CR>gv=gv", { desc="Move selection down one line" });
vim.keymap.set('x', '<A-k>', ":m '<-2<CR>gv=gv", { desc="Move selection up one line" });
-- move text across and back (indenting)
vim.keymap.set('n', '<A-l>', '>>_', { desc="Move (indent) text right" });
vim.keymap.set('n', '<A-h>', '<<_', { desc="Move (de-indent text left" });
vim.keymap.set('i', '<A-l>', '<C-t>', { desc="Move (indent) text right" });
vim.keymap.set('i', '<A-h>', '<C-d>', { desc="Move (de-indent) text left" });
vim.keymap.set('x', '<A-l>', '>gv', { desc="Move (indent) text right" });
vim.keymap.set('x', '<A-h>', '<gv', { desc="Move (de-indent) text left"});
-- my basic session management
vim.api.nvim_create_autocmd({'VimEnter'}, {
callback = function ()
if vim.fn.filereadable('session.vim') then
vim.cmd('source session.vim')
vim.notify("Session Restored", vim.log.levels.info, {title = "Sessions"})
end
end
})
vim.api.nvim_create_autocmd({'VimLeave'}, {
callback = function ()
vim.cmd('mks! session.vim')
end
})
-- my basic skeleton implementation
vim.api.nvim_create_autocmd({'BufNewFile'}, {
callback = function (args)
local extension = string.match(args.file, '\\.([^\\.])+$')
local basename = string.match(args.file, '([^\\/])+$')
print(vim.inspect(args.file))
local function is_file(path)
local f=io.open(path, "r")
if f~=nil then io.close(f) return true else return false end
end
if is_file('templates/skeleton.' .. basename) then
-- we have a match to a skeleton file
vim.cmd(':so templates/skeleton.' .. basename)
return
end
if is_file('templates/skeletoni.' .. extension) then
vim.cmd(':so templates/skeleton.' .. extension)
return
end
end
})
require('custom.plugins.tmoyses.keymaps')
require('custom.plugins.tmoyses.sessions')
require('custom.plugins.tmoyses.skeleton')