denite.nvimで絵文字を入力する
denite.nvimで絵文字選択用のソースを作ってみました。
実用的かどうかは微妙ですが。。
:Denite emoji
で絵文字候補を出して、Enter
で選択した絵文字がバッファに挿入されます。
絵文字の元ネタは vim-emojiというpluginが持っている絵文字データを使っているだけなので全然大したことはしてないんですが、deniteのカスタムソースはとても書きやすくて良いですね。
実質書いたのは
from.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='emoji'self.kind='word'defgather_candidates(self,context):candidates=[]foremoji_name,codeinself.vim.eval('emoji#data#dict()').items():ifisinstance(code,list):emoji="".join(map(chr,code))else:emoji=chr(code)candidates+=[{'word':"{0} {1}".format(emoji,emoji_name),'action__text':emoji}]returncandidates
だけなんですが、これでいい感じにカスタムソースが作れるのでめっちゃ楽ですね。
ただ、何個かうまく表示できない文字があってcn
() とか it
() とかの文字がうまく表示出来ないのは何故なんだろう。
ターミナル上だと表示できて、neovim上だと表示できてないのでneovimの問題なんだろうか。