Submit Search
Upload
An introduction to neocomplete
•
26 likes
•
16,587 views
Shougo
Follow
An introduction to neocomplete by DarkVim Master(暗黒美夢王)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
タボ先生による風来のシレン5泥棒講座
タボ先生による風来のシレン5泥棒講座
siren5
【MCKids】ドラムって何だろう?
【MCKids】ドラムって何だろう?
nobianchi
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Shougo
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Shougo
Introduction to Vim 8.0
Introduction to Vim 8.0
k-takata
neobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
neovim = VM
neovim = VM
Shougo
Recommended
タボ先生による風来のシレン5泥棒講座
タボ先生による風来のシレン5泥棒講座
siren5
【MCKids】ドラムって何だろう?
【MCKids】ドラムって何だろう?
nobianchi
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Shougo
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Shougo
Introduction to Vim 8.0
Introduction to Vim 8.0
k-takata
neobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
neovim = VM
neovim = VM
Shougo
Vim conf2019
Vim conf2019
Shougo
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
Shougo
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
Shougo
Let's talk about neovim
Let's talk about neovim
Shougo
Vimから見たemacs
Vimから見たemacs
Shougo
Shougoの開発環境
Shougoの開発環境
Shougo
Unite vim
Unite vim
Shougo
Vim = VM
Vim = VM
Shougo
modern X86 environment
modern X86 environment
Shougo
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
Shougo
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
More Related Content
More from Shougo
Vim conf2019
Vim conf2019
Shougo
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
Shougo
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
Shougo
Let's talk about neovim
Let's talk about neovim
Shougo
Vimから見たemacs
Vimから見たemacs
Shougo
Shougoの開発環境
Shougoの開発環境
Shougo
Unite vim
Unite vim
Shougo
Vim = VM
Vim = VM
Shougo
modern X86 environment
modern X86 environment
Shougo
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
Shougo
More from Shougo
(10)
Vim conf2019
Vim conf2019
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
Let's talk about neovim
Let's talk about neovim
Vimから見たemacs
Vimから見たemacs
Shougoの開発環境
Shougoの開発環境
Unite vim
Unite vim
Vim = VM
Vim = VM
modern X86 environment
modern X86 environment
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Recently uploaded
(8)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
An introduction to neocomplete
1.
neocomplete.vim さぁ、補完の時間だ! Let's completion time! 暗黒美夢王(Shougo)
2.
注意事項 ● ● ● このスライドには暗黒美夢王成分が大量に含まれ ます。ネタをネタと分かる人だけが聞きましょう ネタがわからない人はいますぐ避難するんだ! 「はやくしろっ!! 間にあわなくなってもしらん ぞーーっ!!」
3.
我の名は…… ● あるときは、「Vimサポーターズ」 ● またあるときは「Vimネタ職人」 ● ● またあるときは「Vimプラグイン作者」「Vimキチ○イ」 「修正しました」「鋼のメンタルを持つ男」 しかしてその実態は……
4.
「きさま!? まさか!!」 「そう、そのまさかだ!!フハ ハハハ…」
5.
自己紹介(暗黒美夢王) ● ● ● クックック……我の名は暗黒美夢王(ダークビムマス ター) とあるVimmerが前回の勉強会を経て闇の力に覚醒 した存在である 特技:闇の力でVimを拡張する => 「闇のVim」、「Vimのカオス化」 ● 対義語:「光のVim」 プラグインに頼らないVimの構築術
6.
neo-completeとは? ● neo-completeとはバトルエディターズに登場するVim専 用のプラグインのことである ● 暗黒美夢王が愛用するneoシリーズのプラグインの一つ ● 機能『ネオ・コンプリート・フラッシュ』 メモリ上のコマンドを一つトラッシュに送る。このターン終了まで、 このプラグインをインストールしたテキストエディタの戦闘力は1.5 倍となる。この機能は1 ターンに一度のみ適用可能である ● バトルエディターズ第二話でSublime Text3を粉砕した 超強力なプラグインだ(暗黒美夢王調べ)
7.
neocompleteとは? ● neocompleteとはneocomplcacheの後継として 開発された自動補完プラグインのことである ● neocomplcacheは現在メンテナンスのみ ● 基本的な使用方法はneocomplcacheと同一 ● ただし、オプション名が異なっている ● 一部の機能が廃止されている ● neocomplcacheよりも高速化を実現 ● 残念ながら、neocomplcacheとのsource互換性 はない(重要)
8.
なぜneocompleteを作ったの か? ● autocomplpopの開発が止まり、neocomplcache は長らくライバル不在 ● しかし YouCompleteMeが登場、センセーショナル なキャッチフレーズによりneocomplcacheの立場を 脅かすことでやる気になる ※:YouCompleteMe公式サイトより抜粋
9.
neocompleteを使用するには ● neocompleteはif_luaを利用しているので、if_luaが 有効になったvimが必要(7.3.885以上) ● Windows: Kaoriya版のVimを使う ● Linux: 自分でコンパイルする ● Mac:
brew を使う $ brew install macvim --with-cscope --with-lua --HEAD ● 詳しくはneocompleteのドキュメントを参照 – :help neocomplete-install
10.
既存のプラグインに対する 利点 ● 高い拡張性 ● YouCompleteMeほどではないが高速 ● neocomplcacheの機能をほぼすべて持つ ● 標準で曖昧マッチ ● キャッシュ機能の改良 ● filter機能 ● Unite.vimとのインタフェース親和性 etc...
11.
neocomplete の 簡単な使用方法 NeoBundle “Shougo/neocomplete.vim” let
g:neocomplete#enable_at_startup = 1 neobundle.vim経由で インストールする ● neobundle.vimについては 前回の発表を参照
12.
neoocmplcacheとの違い わたし、気になります! ● ● ベースはneocomplcacheなので、大きく使用方法が 違うわけではない 一番違うのはオプションの指定方法 g:neocomplcache_enable_at_startup→ g:neocomplete#enable_at_startup ● 詳しくはこちらを参照: https://github.com/Shougo/neocomplete.vim/wiki/neocom plete-migration-guide
13.
neocompleteのsourceにつ いて ● sourceとはneocompleteが補完する候補の種類で ある ● sourceはユーザーが任意に追加できる ● Unite.vimのsourceとほとんど同じ意味 ● neocomplcacheとは異なり、*_complete ではない
14.
代表的なneocompleteの source ● buffer バッファ補完 ● dictionary ディクショナリ補完 ● syntax
シンタックス補完 ● include インクルード補完 ● tag タグ補完 ● vim Vim script補完 ● file ファイル名補完 ● omni オムニ補完
15.
曖昧マッチ機能 ● 補完テキストの途中が抜けていても補完ができる ● 標準で有効 ● ● ● ● 例: foobar を補完する時にfbのみ入力すれば候補に出 てくる 無効にすることもできる。無効化方法はneocompleteの FAQを参照 neocomplcacheにも似た機能はあったがオプション 曖昧マッチで代用できるため、camel
case completion, underbar completion機能は廃止(重要)
16.
改良されたキャッシュ ● ● ● キャッシュの読み込みが高速化している さらに、neocomplcacheの時のようにスペルミスを いつまでたっても覚えていることが(ほぼ)ない! 動的にキャッシュした文字列がバッファに存在するか どうかチェックすることにより実現
17.
omni sourceとforce omni ● g:neocomplete#omni#input_patternsで指定するomni sourceはneocompleteの一部 – – filters,
選択候補の学習 – ● neocompleteの機能が全て使用可能 Vimのオムに補完のエミュレーションなので、一部の補完関数との 相性が悪い(ruby_complete, clang_complete等) g:neocomplete#force_omni_input_patternsで指定する と、neocomplete経由ではなく、直接オムニ補完を呼び出す – 全てのオムニ補完が利用可能 – neocompleteの機能は全て無効になる
18.
neocomplete-filters ● unite.vimと同様にfilterという機能を用いて拡張をす ることができる ● matcher 候補のマッチに使用する ● sorter 候補をソートする ● converter
候補を変換する ● 通常はmatcher,sorter,converterの順番 ● neocomplete#custom#source({source名}, {filters})でカスタマイズ可能
19.
代表的な filters ● matcher_fuzzy 曖昧マッチ(デフォルト) ● matcher_head
先頭マッチ ● sorter_rank 選択頻度によるソート(デフォルト) ● sorter_word アルファベット順ソート ● sorter_length 候補の長さによるソート ● converter_case 候補の大文字小文字自動変換(デフォルト) ● converter_abbr 長い候補の省略(デフォルト) ● converter_delimiter デリミタの省略(デフォルト) ● converter_remove_next_keyword 補完文字列の後ろを見た 候補変換(デフォルト)
20.
他のプラグインと neocompleteの連携 ● ぶっちゃけFAQを読むべきである ● clang_completeの設定例、jedi.vimの設定例等み んな載っている ● g:neocomplete#force_omni_input_patternsを 設定しなければならないことが多い
21.
neocompleteのsource作成 ● 何、neocompleteのsourceを作りたい……だと? ● sourceの作り方はドキュメントを参照(英語) :help neocomplete-create-source ● sourceはneocomplcacheの時よりもunite.vimっ ぽくなっている ● 例:gather_candidates(), filterの存在,
hookの指 定方法
22.
まったく、if_luaは最高だぜ! ● if_luaはif_pythonと比較するとマイナー ● neocomplete, unite.vim等のプラグインがif_luaを優遇するこ とで、少しずつ知られてきた(クックック……計画通り) ● if_luaはif_pythonよりも高速、消費メモリ量も少ない、実行時 オーバーヘッドもほぼ無い ● Vim scriptと連携することで機能の少なさをカバー – Vim
scriptの知識は無駄にならない、Vim scriptたんは可愛い(真理) ● if_pythonの場合、全てをPythonで書くことになりがち ● Vim scriptを愛する暗黒美夢王はif_luaを応援しています
23.
YouCompleteMeとの違い わたし、気になります! ● YouCompleteMeはif_pythonに依存 ● if_pythonだけではなく、速度が必要な部分をC++モジュールで行 うために圧倒的な速度 ● 非同期補完機能 ● C/C++/ObjCの補完に特化 ● jedi.vimやUltisnipsとの連携機能 ● C++モジュールがあるので拡張するのが難しい ● ビルドが必須なのでインストールが難しい(特にWindows環境)
24.
今後のneocomplete ● 機能の実装はほぼ終わり ● 現在はたまに出てくる問題の解決がメイン ● 良いアイディアがあれば採用されるかも知れない ● そろそろ vim.org に公開? – しかし最近忙しいからな……
25.
まとめ ● ● ● ● neocompleteはneocomplcacheがランクアップ したVim plugin あのバトルエディターズでもneocompleteは活躍 している if_lua 可愛いよ
if_lua もっとみんな使おう そういえば、auto-complete.elはどうしたのだろう か……(遠い目)
26.
終わり? ● ● ● 何、「今回の歌はどうしたのか」だと? クックック……用意はしているが時間の都合上、懇 親会での披露を考えている 暗黒美夢王についてもっと知りたければ、下記ブロ グで連載中の「バトルエディターズ」をチェックする ことだ(現在第三話まで公開済み) http://vinarian.blogspot.jp/
27.
質問 ● さて、我の発表に対する質問があるだろうか?
Download now