Help us understand the problem. What is going on with this article?

Vim スクリプトの補完候補に補足情報をつけたい

はじめに

Vim スクリプトの complete() 関数による補完候補について調べています。

そこで、補完候補を選択したときに入力される文字列とは別に、補完候補に表示される情報に補足情報を付ける方法がないかを調べてみました。

tl;dr

補完候補となる配列の各要素を、辞書型のデータで定義すればできました。
以下のような形です。

inoremap <F8> <C-R>=MyComplete()<CR>
func! MyComplete()
  call complete(col('.'), [
\ {'word': '1st', 'abbr': '1st:', 'menu': 'first element'},
\ {'word': '2nd', 'abbr': '2nd:', 'menu': 'second element'},
\ {'word': '3rd', 'abbr': '3rd:', 'menu': 'third element'}])
  return ''
endfunc

上記を設定し、インサートモードで <F8> キーで押し、補完を表示すると以下のようになります。

image.png

以下のように表示されていることがわかると思います。

  • 入力された文字: 1st
  • 補完候補の最初の表示: 1st:
  • 補完候補の補足: first element

辞書型のキーについて

補完候補の各要素に指定するキーの用途は以下のとおりです。他にも使えるキーがありますが、Vim のマニュアル に載っています。

キー 用途
word 挿入されるテキスト。必須
abbr "word" の略。これが空でなければ、メニューで "word" の代わりに表示される。
menu ポップアップメニューにおける追加情報。"word" または "abbr" の後に表示される。

おわりに

補完の候補に補足情報も追加できることがわかってよかったです。より便利に使えそうです。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした