ですが、 apt-get や docker-compose を打っていると少し利点を感じました。
- 「Shift Key を押さなくて良い」
怠惰な私にとって採用理由として十分。なので zsh で使う function は kebab-case で記述しています。
さて、ここで小さな問題が発生しました。
neovim で利用している補完プラグインの deoplete が、default の設定では kebab-case を補完してくれない。
と、いうことで kebab-case も補完対象にするように設定したログです。
さて、ここで小さな問題が発生しました。
neovim で利用している補完プラグインの deoplete が、default の設定では kebab-case を補完してくれない。
と、いうことで kebab-case も補完対象にするように設定したログです。
環境
- OS: macOS Mojave 10.14.6
- zsh: 5.7.1 (x86_64-apple-darwin18.2.0)
- neovim: v0.4.3
- deoplete: master(記事執筆時 6e01000280)
- Python: 3.7.6
- pynvim: 0.4.1
補完の設定
まず、補完の対象を設定する変数などが無いか、:help deoplete で探します。
ありました。keyword_patterns で filetype 別に正規表現を指定すれば良さそうです。
というか ruby の補完サンプルもありますね。末尾の ! や ? に対応している。便利そう。
話が逸れました。まず、kebab-case にマッチしそうな正規表現として
というか ruby の補完サンプルもありますね。末尾の ! や ? に対応している。便利そう。
話が逸れました。まず、kebab-case にマッチしそうな正規表現として
- 最初の文字は alphabet と '_'
- それ以降は alpabet と '_' と '-' が0回以上繰り返される
とします。これを具体的な正規表現にすると
これで deoplete の補完対象の設定ができるようになりました。
zsh 以外の普段良く使う filetype の補完設定もしておきます。
zsh 以外の普段良く使う filetype の補完設定もしておきます。
- ruby: 先程発見した ruby の補完設定で、先頭に '@' を加えたもの
- text: 英数字も含めて補完対象を広めにしたもの
- _: help にあった定義をそのまま利用。なお、この設定は全 filetype に適用されます
これらを鑑みて設定した、私用の具体的な keyword_patterns の設定はこんな感じ。以下抜粋。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let s:keyword_patterns = {} | |
let s:keyword_patterns['_'] = '[a-zA-Z_]\k*' | |
let s:keyword_patterns['ruby'] = '[a-zA-Z_@]\w*[!?]?' | |
let s:keyword_patterns['text'] = '[0-9a-zA-Z][0-9a-zA-Z_.-]*' | |
let s:keyword_patterns['zsh'] = '[a-zA-Z_][a-zA-Z_-]*' | |
call deoplete#custom#option('keyword_patterns', s:keyword_patterns) |
0 件のコメント:
コメントを投稿