nvimのdeopleteプラグインのstderrエラー
エラー内容
nvimの設定をいじっていたら文字を入力する毎にエラーが出るようになってしまいました。
[deoplete] stderr from child process:b'look: ' [deoplete] stderr from child process:b'/usr/share/dict/words' [deoplete] stderr from child process:b': \xe3\x81\x9d\xe3\x81\xae\xe3\x82\x88\xe3\x8 1\x86\xe3\x81\xaa\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x82\x84\xe3\x8 3\x87\xe3\x82\xa3\xe3\x83\xac\xe3\x82\xaf\xe3\x83\x88\xe3\x83\xaa\xe3\x81\xaf\xe3\x8 1\x82\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\n' 続けるにはENTERを押すかコマンドを入力してください
文字化け部分は/usr/share/dict/words
が無いと書いていたようです。
$ perl -e 'print "\xe3\x81\x9d\xe3\x81\xae\xe3\x82\x88\xe3\x81\x86\xe3\x81\xaa\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x82\x84\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xac\xe3\x82\xaf\xe3\x83\x88\xe3\x83\xaa\xe3\x81\xaf\xe3\x81\x82\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\n"' そのようなファイルやディレクトリはありません
参考ページ \x(¥x)から始まるUnicode文字列を読めるようにする:https://www.linuxmaster.jp/linux_skill/2019/09/xxunicode.html
$ ls -l /usr/share/dict/words ls: '/usr/share/dict/words' にアクセスできません: そのようなファイルやディレクトリはありません
$ look a look: /usr/share/dict/words: そのようなファイルやディレクトリはありません
lookコマンドを実行すると同じエラーが出てきました。
原因
ujihisa/neco-look
プラグインはlook
コマンドからdeoplete.nvimの補完候補を作るプラグインなのでlook
コマンドが使えない状態でこのプラグインをインストールしたことが原因のようです。
解決方法
その1 エラーを表示させない(応急処置)
stderrを表示しない事で入力を邪魔させない
init.vim に追加call deoplete#custom#option({'check_stderr': v:false}) "
参考ページ Should add an option to suppress stderr printout when racer panics #137:https://github.com/racer-rust/vim-racer/issues/137 GitHub deoplete.nvim/doc/deoplete.txt:https://github.com/Shougo/deoplete.nvim/blob/master/doc/deoplete.txt
その2 neco-lookプラグインを削除する(あきらめる)
ujihisa/neco-look
プラグインを削除するとエラーは出なくなりました。
その3 /usr/share/dictに辞書ファイルを配置する(解決)
yay -S words
パッケージをインストールするとlookコマンドが正常に動作してエラーも出なくなりました。