LoginSignup
4
1

More than 5 years have passed since last update.

[vim]denite.nvim で絵文字を入力する

Posted at

denite.nvimで絵文字を入力する

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

vim-denite-emoji

スクリーンショット 2016-12-03 22.27.54.png

: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(:flag_cn:) とか it(:flag_it:) とかの文字がうまく表示出来ないのは何故なんだろう。
ターミナル上だと表示できて、neovim上だと表示できてないのでneovimの問題なんだろうか。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1