diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-03-27 03:47:32 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-03-27 03:47:32 +0900 |
| commit | 65e3b07b4595e91691f73a6804d0bd90785f640d (patch) | |
| tree | 682c0ee233f98091af4cc1055ec05df10de96d60 | |
| parent | 17f700ec23d9f99a504ad64ebcfa7dad30d1e815 (diff) | |
| download | dotfiles-65e3b07b4595e91691f73a6804d0bd90785f640d.tar.gz dotfiles-65e3b07b4595e91691f73a6804d0bd90785f640d.tar.zst dotfiles-65e3b07b4595e91691f73a6804d0bd90785f640d.zip | |
nvim: migrate from eskk to skkeleton
| -rw-r--r-- | .config/nvim/lazy-lock.json | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/init/05-appearance.lua | 15 | ||||
| -rw-r--r-- | .config/nvim/lua/vimrc/plugins.lua | 128 |
3 files changed, 61 insertions, 85 deletions
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 88283a9..eedb3f1 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -4,8 +4,8 @@ "colorswatch.vim": { "branch": "main", "commit": "2e3f847fc0e493de8b119d3c8560e47ceeff595c" }, "committia.vim": { "branch": "master", "commit": "a187b8633694027ab5ef8a834527d33093282f95" }, "copilot.vim": { "branch": "release", "commit": "9484e35cf222e9360e05450622a884f95c662c4c" }, + "denops.vim": { "branch": "main", "commit": "b5dfcbc249a7559cbdc08ba1b7dc1cd92dec6d98" }, "emmet-vim": { "branch": "master", "commit": "def5d57a1ae5afb1b96ebe83c4652d1c03640f4d" }, - "eskk.vim": { "branch": "master", "commit": "a2a722c1c020748249a1f04b788cecd4f509202b" }, "fern-hijack.vim": { "branch": "master", "commit": "f65524899231b15528066744e714fb344abf0892" }, "fern.vim": { "branch": "main", "commit": "928d355e4c06e08eb3c9062485a661f1d37b01d1" }, "foldCC.vim": { "branch": "master", "commit": "344335d27349b837d33dc7757de0cb7930ac33ae" }, @@ -17,6 +17,7 @@ "playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" }, "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, "rust.vim": { "branch": "master", "commit": "889b9a7515db477f4cb6808bef1769e53493c578" }, + "skkeleton": { "branch": "main", "commit": "438b9d22d926569db6e6034e0d333edce5f4d4cf" }, "telescope.nvim": { "branch": "master", "commit": "74ce793a60759e3db0d265174f137fb627430355" }, "textobj-wiw": { "branch": "master", "commit": "8f89ed3797adb181332b8a9c80a9311c56184047" }, "vim-altr": { "branch": "master", "commit": "fba055cf3b83a1ada5b05d694fbefd024aa93289" }, diff --git a/.config/nvim/lua/init/05-appearance.lua b/.config/nvim/lua/init/05-appearance.lua index 0edd3b3..e218252 100644 --- a/.config/nvim/lua/init/05-appearance.lua +++ b/.config/nvim/lua/init/05-appearance.lua @@ -90,14 +90,15 @@ function vimrc.statusline.mode() local vim_mode = vim_mode_and_hl[1] local hl = vim_mode_and_hl[2] - -- Calling `eskk#statusline()` makes Vim autoload eskk. If you call it - -- without checking `g:loaded_autoload_eskk`, eskk is loaded on an early - -- stage of the initialization (probably the first rendering of status line), - -- which slows down Vim startup. Loading eskk can be delayed by checking both - -- of `g:loaded_eskk` and `g:loaded_autoload_eskk`. local skk_mode - if G.loaded_eskk and G.loaded_autoload_eskk then - skk_mode = F['eskk#statusline'](' (%s)', '') + if F.exists('*skkeleton#mode') == 1 then + skk_mode = ({ + ['hira'] = ' (あ)', + ['kata'] = ' (ア)', + ['hankata'] = ' (半ア)', + ['zenkaku'] = ' (全角英数)', + ['abbrev'] = ' (abbrev)', + })[F['skkeleton#mode']()] or '' else skk_mode = '' end diff --git a/.config/nvim/lua/vimrc/plugins.lua b/.config/nvim/lua/vimrc/plugins.lua index f6ac202..092cae2 100644 --- a/.config/nvim/lua/vimrc/plugins.lua +++ b/.config/nvim/lua/vimrc/plugins.lua @@ -4,92 +4,66 @@ return { { 'nvim-lua/plenary.nvim', }, + -- skkeleton depends on it. + { + 'vim-denops/denops.vim', + }, -- Text editing {{{1 -- IME {{{2 -- SKK (Simple Kana to Kanji conversion program) for Vim. { - 'vim-skk/eskk.vim', + 'vim-skk/skkeleton', config = function() + local vimrc = require('vimrc') local my_env = require('vimrc.my_env') - vim.g['eskk#dictionary'] = { - path = my_env.skk_dir .. '/jisyo', - sorted = false, - encoding = 'utf-8', - } - - vim.g['eskk#large_dictionary'] = { - path = my_env.skk_dir .. '/jisyo.L', - sorted = true, - encoding = 'euc-jp', - } - - vim.g['eskk#backup_dictionary'] = vim.g['eskk#dictionary'].path .. '.bak' - - -- NOTE: - -- Boolean values are not accepted because eskk#utils#set_default() checks types. - vim.g['eskk#enable_completion'] = 0 - vim.g['eskk#egg_like_newline'] = 1 - - -- Change default markers because they are EAW (East Asian Width) characters. - vim.g['eskk#marker_henkan'] = '[!]' - vim.g['eskk#marker_okuri'] = '-' - vim.g['eskk#marker_henkan_select'] = '[#]' - vim.g['eskk#marker_jisyo_touroku'] = '[?]' - - vim.cmd([=[ - function! My_eskk_initialize_pre() - for [orgtable, mode] in [['rom_to_hira', 'hira'], ['rom_to_kata', 'kata']] - let t = eskk#table#new(orgtable . '*', orgtable) - call t.add_map('z ', ' ') - call t.add_map('0.', '0.') - call t.add_map('1.', '1.') - call t.add_map('2.', '2.') - call t.add_map('3.', '3.') - call t.add_map('4.', '4.') - call t.add_map('5.', '5.') - call t.add_map('6.', '6.') - call t.add_map('7.', '7.') - call t.add_map('8.', '8.') - call t.add_map('9.', '9.') - call t.add_map(':', ':') - call t.add_map('z:', ':') - " Workaround: 'zl' does not work as 'l' key leaves from SKK mode. - call t.add_map('zL', '→') - call eskk#register_mode_table(mode, t) - endfor - endfunction - - autocmd Vimrc User eskk-initialize-pre call My_eskk_initialize_pre() - - function! My_eskk_initialize_post() - " I don't use hankata mode for now. - EskkUnmap -type=mode:hira:toggle-hankata - EskkUnmap -type=mode:kata:toggle-hankata - - " I don't use abbrev mode for now. - EskkUnmap -type=mode:hira:to-abbrev - EskkUnmap -type=mode:kata:to-abbrev - - " I don't use ascii mode for now. - EskkUnmap -type=mode:hira:to-ascii - EskkUnmap -type=mode:kata:to-ascii - - " Instead, l key disable SKK input. - EskkMap -type=disable l - - " I type <C-m> for new line. - EskkMap -type=kakutei <C-m> - - map! jk <Plug>(eskk:disable)<ESC> + vimrc.autocmd('User', { + pattern = 'skkeleton-initialize-pre', + callback = function() + vim.fn['skkeleton#config']({ + -- Change default markers because they are EAW (East Asian Width) characters. + markerHenkan = '[!]', + markerHenkanSelect = '[#]', + eggLikeNewline = true, + userDictionary = my_env.skk_dir .. '/jisyo', + globalDictionaries = {my_env.skk_dir .. '/jisyo.L'}, + }) + vim.fn['skkeleton#register_kanatable']('rom', { + ['z '] = {' '}, + ['0.'] = {'0.'}, + ['1.'] = {'1.'}, + ['2.'] = {'2.'}, + ['3.'] = {'3.'}, + ['4.'] = {'4.'}, + ['5.'] = {'5.'}, + ['6.'] = {'6.'}, + ['7.'] = {'7.'}, + ['8.'] = {'8.'}, + ['9.'] = {'9.'}, + [':'] = {':'}, + ['z:'] = {':'}, + ['jk'] = 'escape', + }) + end, + }) - " Custom highlight for henkan markers. - syntax match skkMarker '\[[!#?]\]' - hi link skkMarker Special - endfunction + vimrc.autocmd('User', { + pattern = 'skkeleton-initialize-post', + callback = function() + vim.fn['skkeleton#register_keymap']('input', '<C-q>', nil) + vim.fn['skkeleton#register_keymap']('input', '<C-m>', 'newline') + vim.fn['skkeleton#register_keymap']('henkan', '<C-m>', 'newline') + -- Custom highlight for henkan markers. + vim.cmd([=[syntax match skkMarker '\[[!#]\]']=]) + vim.cmd([=[hi link skkMarker Special]=]) + end, + }) - autocmd Vimrc User eskk-initialize-post call My_eskk_initialize_post() - ]=]) + vim.cmd([[ + imap <C-j> <Plug>(skkeleton-enable) + cmap <C-j> <Plug>(skkeleton-enable) + tmap <C-j> <Plug>(skkeleton-enable) + ]]) end, }, -- Operators {{{2 |
