🔖

skkeletonのTips

2023/10/02に公開

はじめに

この記事はVim駅伝の10月2日の記事です。

skkeletonの小ネタをいくつか紹介します。

Escでヤンクする

この記事を書くきっかけになったメインコンテンツです。

VimをIMEとして使用するにはクリップボード経由でコピペする必要があります。[1]
手でやるのは面倒なので、8つ目の記事58つ目の記事等いろいろと工夫されています。
(私は単にワークスペースに常駐してるVimからヤンクしていました。nnoremap yss "+yy)

そんな中、slackで見かけたNI57721さんの設定がこれです。

autocmd InsertLeave * if g:skkeleton#state.phase !=# 'input' |
                      \   call job_start(['wl-copy', '--', getline('.')]) |
                      \ endif

文字を打ったらノーマルモードに戻るのは同じなのでひと手間減りました。最高ですね。
条件は好みの問題なので以下のようにしました。

command SKKON let g:skk_yank = v:true
autocmd InsertLeave * if g:skk_yank | let @+ = getline('.') | endif

IME用Vimを起動したらコマンドを実行すれば問答無用でヤンクされます。

辞書をdeinで管理する

SKK-JISYOはgithubに置いてあるのでdeinでプラグインと同じようにインストールや更新ができてしまいます。
deinの悪用です。

"toml
[[plugins]]
repo = 'skk-dev/dict'

"vimrc
function! s:skkeleton_init() abort
  call skkeleton#config({
    \ 'globalJisyo' : '~/.cache/dein/repos/github.com/skk-dev/dict/SKK-JISYO.L',
    \ })
endfunction

カタカナのトグルをやめる

デフォルトの katakana をかなテーブルからマッピングに変更することでカナモードから、かなモードに戻らないようにします。

call skkeleton#register_kanatable('rom', {'q': ['']}) 
call skkeleton#register_keymap('henkan', "q", 'katakana')

autocmd User skkeleton-mode-changed call s:kata()

function! s:kata()
  if g:skkeleton#mode ==# 'hira'
    call skkeleton#register_keymap('input', "q", 'katakana')
  elseif g:skkeleton#mode ==# 'kata'
    call skkeleton#register_keymap('input', "q", '')
  endif
endfunction

zkで矢印

他のIMEにもあるzから始まる記号系も変換できます。

z(
z)
z,
z-
z.
z/
z[
z]
z<スペース> 全角スペース
zh
zj
zk
zl

モードを表示する

ステータスラインではlightline.vim用のプラグインがあります。

カーソル付近に表示するプラグインもあります。

脚注
  1. ブラウザならGhostTextという手段もあります。gamoutatsumi/dps-ghosttext.vim ↩︎

Discussion