denite.nvimで絵文字を入力する
denite.nvim で絵文字選択用のソースを作ってみました。
実用的かどうかは微妙ですが。。

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