diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-08-19 23:32:02 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-08-19 23:32:02 +0200 |
commit | 4ceb9b896760e900caf12237a94b6c837746edeb (patch) | |
tree | 31577455552eb47c09001ff0e6aff4dc11bd88e0 | |
parent | f3abc6e3247dee49fdb03dd371f2c5c4361a6f3d (diff) |
Make scratch.vim a plugin
-rw-r--r-- | .config/nvim/init.lua | 24 | ||||
-rw-r--r-- | .config/nvim/plugin/scratch.vim | 18 |
2 files changed, 22 insertions, 20 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index a13d87c..e0d399d 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -40,18 +40,6 @@ vim.opt.tabstop = 4 vim.opt.undodir = os.getenv('XDG_STATE_HOME') .. '/nvim/undo' vim.opt.undofile = true -function mk_scratch_buffer() - vim.cmd [[ - if bufexists('scratch') - buffer scratch - else - noswapfile hide enew - setlocal buftype=nofile bufhidden=hide - file scratch - endif - ]] -end - vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' }) vim.keymap.set('n', '<C-k>', '<C-w><C-k>', @@ -92,14 +80,10 @@ vim.keymap.set('n', 'gJ', function() ]] end, { desc = '[J]oin lines without whitespace' }) -vim.keymap.set('n', '<Leader>s', function() - vim.cmd 'vsplit' - mk_scratch_buffer() -end, { desc = 'Open the scratch buffer in a vertical split' }) -vim.keymap.set('n', '<Leader>S', function() - vim.cmd 'split' - mk_scratch_buffer() -end, { desc = 'Open the scratch buffer in a horizontal split' }) +vim.keymap.set('n', '<Leader>s', ':VScratch<CR>', + { desc = 'Open the scratch buffer in a vertical split' }) +vim.keymap.set('n', '<Leader>S', ':Scratch<CR>', + { desc = 'Open the scratch buffer in a horizontal split' }) if vim.loop.os_uname().sysname ~= 'Darwin' then vim.keymap.set({'n', 'x'}, '<C-v>', 'V', diff --git a/.config/nvim/plugin/scratch.vim b/.config/nvim/plugin/scratch.vim new file mode 100644 index 0000000..a6a7a07 --- /dev/null +++ b/.config/nvim/plugin/scratch.vim @@ -0,0 +1,18 @@ +if &cp || exists('g:loaded_scratch') + finish +endif +let g:loaded_scratch = v:true + +function! scratch#New(cmd) + execute a:cmd + if bufexists('scratch') + buffer scratch + else + noswapfile hide enew + setlocal buftype=nofile bufhidden=hide + file scratch + endif +endfunction + +command! -nargs=0 Scratch call scratch#New('split') +command! -nargs=0 VScratch call scratch#New('vsplit') |