# vim-lsp + rust-analyzerを試してみた
元々rlsを使用してrustを書いていたのですが、rls-2.0としてrust-analyzerというものが
あることを知ってvimで使用できるかどうか試してみました。
環境
macOS: 10.15.4
vim: 8.2.647
vim-lsp, rust-analyzer などは2020-04-27時点での最新版を使用しています。
インストール
- 事前準備
rust-srcの追加
# rustup component add rust-src
- rust-analyzerのインストール
# git clone https://github.com/rust-analyzer/rust-analyzer # cd rust-analyzer # cargo xtask install
- vim-lspの設定
if executable('rust-analyzer') au User lsp_setup call lsp#register_server({ \ 'name': 'rust-analyzer', \ 'cmd': {server_info->['rust-analyzer']}, \ 'whitelist': ['rust'], \ }) endif
備考
rust nightly 1.47 から RUST_SRC_PATH に設定していた$(rustc --print sysroot)/lib/rustlib/src/rust/src
が
$(rustc --print sysroot)/lib/rustlib/src/rust/library
に変更しないと候補が上手くでなくなりました。
Vim Killed 9
Vim killed 9
[環境]
* macOS high sierra(10.14.2)
* pyenv: python 3.7.1
* rbenv: ruby 2.6.0
* plenv: perl 5.28.0
* clang: 7.0.1(using homebrew)
[詳細]
vimenv と vim-build を使用して
vimをコンパイルしているのですが以下のエラーが出て実行できません。
vimの実行結果:
$ vim Killed 9
otoolの結果:
$ otool -L ./vim /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: './vim': truncated or malformed object (load command 17 LC_LOAD_DYLIB library name extends past the end of the load command)
githubのvim issue にあることはやってみましたが、 問題は解決されませんでした。
Homebrewでインストールしたbinutilsが原因でできなかったっぽいです。
brew uninstall binutils
でvimのインストールに成功しました。
[詳細]
python、perl、rubyのインストールにも影響があったみたいで、arとranlibコマンドで
それぞれエラーが出てましたが、同時に解決しました。
vim-build で タグでのインストールができるようになりました
以下の点を更新しました。
- n オプションの追加
- l オプションの追加
- t オプションの追加
- o オプションの削除
nオプション
nオプションは最新版のvimをインストールしたい場合に使用します。
フォルダ名は```latest````で作成されます。
また、ファイル名を指定してインストール(-f <FILE_NAME>)する場合、
フォルダ名はvim
で作成されるようになりました。
lオプション
lオプションはvimのタグ名を取得するオプションです。
取得するのにcurlコマンドを使用しています。
もし、curlコマンドが使用できない場合、ここから.hgtagsを
vim-buildディレクトリ直下にhgtagsに名前を変更して置けば、
lオプションでタグ名を確認することができます。
tオプション
lオプションで表示されたタグ名を-t <TAG_NAME>
とすれば、
そのタグのバージョンをインストールすることができます。
フォルダ名は、指定したタグ名で作成されます。
oオプション
上記の理由からoオプションは削除しました。
eskk.vim でハマった
久しぶりにeskk.vimを使用してみたら日本語変換できずハマったのでメモしておく。
変更した点はOSのLANG
設定とvimrcのlanguage
のところ。
色々試してみたところ、次のように変更したら日本語変換できるようになった。
before 1. OS LANG=en_US.UTF-8 2. language mes en_US.utf8 :!locale -a で確認 after 1. OS $ export LANG=C 2. vimrc language mes en_US.utf8
g:eskk#log_cmdline_level = 4
で確認してみたところ、LANG=en_US.UTF-8の場合は
入力した文字がeskk#complete#eskkcomplete()
のa:base
にセットされないようでした。
ひとまず、日本語変換できるようになったのでよしとしておく。
vim-build の修正
前回書いたvim-build 作りました で書いた vim-build を修正しました。
主な修正点は、次のようになります。
1. 出力先ディレクトリは -o
で指定
2. vimenv install した時のread -p "Press the enter"
で一時停止させていたのを無効化
これで、以前より使い勝手は良くなったと思います。
perl-plack.vim を作りました
perl の PSGI アプリを vim で作っているときに、
実行するためにファイルを保存して plackup <psgi_file>
とするのが億劫なので
編集中の psgi ファイルから直接 plackup を実行できるようにしました。
インストール
perl-plack.vim のソースは github で公開してます。
Neobundle をインストール済みの場合、以下を .vimrc に記述してください。
Neobundle 'yasu-n/perl-plack.vim.git'
次にノーマルモードで
NeobundleInstall
を実行するとインストールされます。使用方法
実行する psgi ファイルを開いている状態で、
:Unite perl/plack
を実行してください。
実行すると unite バッファに plackup の出力がでます。plackup のオプションは今のところ追加できるようにはしていません。
vim-build 作りました
Vim Advent Calendar 307 日目の記事です。
vim-build は ruby-build や perl-build のように簡単にユーザ環境へ vim をインストールしたくて作成しました。
rbenv、plenv に相当する vimenv は ここにあるものを使用させていただいています。
- なお、最新バージョンの vim のみの対応となっています。
1. vim-build の インストール $ git clone https://github.com/yasu-n/vim-build.git ~/.vimenv/plugins/vim-build $ vimenv install 2. ディレクトリ指定のインストール $ VIM_VERSION=hoge vimenv install -> .vimenv/versions/hoge がにインストールされる * vimenv install --with-compiledby=foohoge のように別途オプションを追加できます。 インストールしたディレクトリを削除するには $ vimenv uninstall hoge -> .vimenv/versions/hoge 以下が削除されます。
最新版の vim を楽に local 環境に入れたい方にはお勧めです。