aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2022-12-18 14:36:59 +0900
committernsfisis <nsfisis@gmail.com>2022-12-18 14:36:59 +0900
commit766c5183b72afd87fd2951c36f6355ca25186535 (patch)
tree86b4f3bffab3c6238c0857a62c828db08cc67762
parent28e97c03a8c11fd8939bc93017004f93882421e6 (diff)
downloaddotfiles-766c5183b72afd87fd2951c36f6355ca25186535.tar.gz
dotfiles-766c5183b72afd87fd2951c36f6355ca25186535.tar.zst
dotfiles-766c5183b72afd87fd2951c36f6355ca25186535.zip
neovim: dor-repeat go/gO without repeat.vim
-rw-r--r--.config/nvim/init.lua39
-rw-r--r--.config/nvim/lua/plugins.lua10
2 files changed, 25 insertions, 24 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 4a6c548..b0e6bb0 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -771,20 +771,31 @@ vim.keymap.set('!', 'jk', '<ESC>', { remap=true })
vim.keymap.set('n', '<C-c>', ':<C-u>nohlsearch<CR>', { silent=true })
-
-function vimrc.map_callbacks.insert_blank_line(offset)
- for i = 1, vim.v.count1 do
- F.append(F.line('.') - offset, '')
- end
-end
-
-vim.keymap.set('n', '<Plug>(my-insert-blank-lines-after)',
- 'call v:lua.vimrc.map_callbacks.insert_blank_line(0)')
-vim.keymap.set('n', '<Plug>(my-insert-blank-lines-before)',
- 'call v:lua.vimrc.map_callbacks.insert_blank_line(1)')
-
-vim.keymap.set('n', 'go', '<Plug>(my-insert-blank-lines-after)')
-vim.keymap.set('n', 'gO', '<Plug>(my-insert-blank-lines-before)')
+-- Lua function cannot be set to 'operatorfunc' for now.
+vim.cmd([[
+ function! Vimrc_insert_black_line_below(type = '') abort
+ if a:type ==# ''
+ set operatorfunc=Vimrc_insert_black_line_below
+ return 'g@ '
+ else
+ for i in range(v:count1)
+ call append(line('.'), '')
+ endfor
+ endif
+ endfunction
+ function! Vimrc_insert_black_line_above(type = '') abort
+ if a:type ==# ''
+ set operatorfunc=Vimrc_insert_black_line_above
+ return 'g@ '
+ else
+ for i in range(v:count1)
+ call append(line('.') - 1, '')
+ endfor
+ endif
+ endfunction
+]])
+vim.keymap.set('n', 'go', F.Vimrc_insert_black_line_below, { expr = true })
+vim.keymap.set('n', 'gO', F.Vimrc_insert_black_line_above, { expr = true })
vim.keymap.set('n', '<Space>w', '<Cmd>update<CR>')
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua
index 4d368d0..6e5bcdf 100644
--- a/.config/nvim/lua/plugins.lua
+++ b/.config/nvim/lua/plugins.lua
@@ -693,16 +693,6 @@ packer.startup(function(use)
-- Autoload vim-repeat immediately in order to make <Plug>(RepeatRedo) available.
-- repeat#setreg() does nothing here.
vim.fn['repeat#setreg']('', '')
-
- -- Make them repeatable with vim-repeat.
- vim.cmd([[
- nnoremap <silent> <Plug>(my-insert-blank-lines-after)
- \ :<C-u>call v:lua.vimrc.map_callbacks.insert_blank_line(0)<Bar>
- \ silent! call repeat#set("\<Lt>Plug>(my-insert-blank-lines-after)")<CR>
- nnoremap <silent> <Plug>(my-insert-blank-lines-before)
- \ :<C-u>call v:lua.vimrc.map_callbacks.insert_blank_line(1)<Bar>
- \ silent! call repeat#set("\<Lt>Plug>(my-insert-blank-lines-before)")<CR>
- ]])
end,
}
-- Introduce user-defined mode.