「Neovim」の版間の差分
(→設定: 微修正) |
(→ヒントとテクニック: 言語サーバー プロトコル (LSP)の項目を翻訳して追加) |
||
65行目: | 65行目: | ||
[https://github.com/carlowood/nneovim-true-color-scheme-editor このプロジェクト] の {{ic|READMEs}} を読んで構文の強調表示とどのようにするかについて説明しています。 カラーピッカーを使用してリアルタイムでどのように見えるかを確認して下さい。 C++ 用の(インストールされている場合)の構文強調表示が付属しています。 |
[https://github.com/carlowood/nneovim-true-color-scheme-editor このプロジェクト] の {{ic|READMEs}} を読んで構文の強調表示とどのようにするかについて説明しています。 カラーピッカーを使用してリアルタイムでどのように見えるかを確認して下さい。 C++ 用の(インストールされている場合)の構文強調表示が付属しています。 |
||
+ | |||
+ | === 言語サーバー プロトコル (LSP) === |
||
+ | |||
+ | Neovim には組み込みの [https://microsoft.github.io/language-server-protocol Language Server Protocol] クライアントが含まれており、 [https://github.com/neovim/nvim-lspconfig nvim-lspconfig] プラグインはその一般的な設定を提供します。 |
||
+ | |||
+ | 言語サーバーは、次のパッケージを使用してネイティブにインストールできます。 |
||
+ | |||
+ | {| class="wikitable" |
||
+ | ! lSP config |
||
+ | ! Language |
||
+ | ! LSP サーバー パッケージ |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#als als] |
||
+ | | Ada/SPARK |
||
+ | | {{Aur|ada_language_server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#angularls angularls] |
||
+ | | Angular |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#bashls bashls] |
||
+ | | BASH |
||
+ | | {{Pkg|bash-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ccls ccls] |
||
+ | | C, C++, Objective-C |
||
+ | | {{Pkg|ccls}} {{Aur|ccls-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#clangd clangd] |
||
+ | | C++ |
||
+ | | {{Pkg|clang}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#clojure_lsp clojure_lsp] |
||
+ | | Clojure |
||
+ | | {{Aur|clojure-lsp-bin}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#cmake cmake] |
||
+ | | CMake |
||
+ | | {{Aur|cmake-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#codeqlls codeqlls] |
||
+ | | CodeQL |
||
+ | | {{Aur|codeql}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#cssls cssls] |
||
+ | | CSS, LESS, SASS |
||
+ | | {{Aur|vscode-css-languageserver-bin}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#dartls dartls] |
||
+ | | Dart |
||
+ | | {{Pkg|dart}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#denols denols] |
||
+ | | JavaScript, TypeScript |
||
+ | | {{Pkg|deno}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#dhall_lsp_server dhall_lsp_server] |
||
+ | | Dhall |
||
+ | | {{Pkg|dhall-lsp-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#diagnosticls diagnosticls] |
||
+ | | General purpose |
||
+ | | {{Aur|diagnostic-languageserver}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#dockerls dockerls] |
||
+ | | Dockerfile |
||
+ | | {{Aur|dockerfile-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#efm efm] |
||
+ | | General purpose |
||
+ | | {{Pkg|efm-langserver}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#elixirls elixirls] |
||
+ | | Elixir |
||
+ | | {{Aur|elixir-ls}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#elmls elmls] |
||
+ | | Elm |
||
+ | | {{Aur|elm-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#erlangls erlangls] |
||
+ | | Erlang |
||
+ | | {{Aur|erlang_ls-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#flow flow] |
||
+ | | Flow |
||
+ | | {{Aur|flow}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#fortls fortls] |
||
+ | | Fortran |
||
+ | | {{Aur|fortran-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#fsautocomplete fsautocomplete] |
||
+ | | F# |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#gdscript gdscript] |
||
+ | | GDScript |
||
+ | | {{Pkg|godot}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ghcide ghcide] |
||
+ | | Haskell |
||
+ | | {{Aur|ghcide}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#gopls gopls] |
||
+ | | GOlang |
||
+ | | {{Pkg|gopls}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#graphql graphql] |
||
+ | | GraphQL |
||
+ | | {{Aur|graphql-lsp}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#groovyls groovyls] |
||
+ | | Groovy |
||
+ | | {{Aur|groovy-language-server-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#haxe_language_server haxe_language_server] |
||
+ | | Haxe |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#hie hie] |
||
+ | | Haskell |
||
+ | | {{Aur|haskell-ide-engine}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#hls hls] |
||
+ | | Haskell |
||
+ | | {{Pkg|haskell-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#html html] |
||
+ | | HTML |
||
+ | | {{Aur|vscode-html-languageserver}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#intelephense intelephense] |
||
+ | | PHP |
||
+ | | {{Aur|nodejs-intelephense}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#java_language_server java_language_server] |
||
+ | | Java |
||
+ | | {{Aur|java-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#jdtls jdtls] |
||
+ | | Java |
||
+ | | {{Aur|jdtls}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#jedi_language_server jedi_language_server] |
||
+ | | Jedi |
||
+ | | {{Pkg|jedi-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#jsonls jsonls] |
||
+ | | JSON |
||
+ | | {{Aur|vscode-json-languageserver-bin}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#julials julials] |
||
+ | | Julia |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#kotlin_language_server kotlin_language_server] |
||
+ | | Kotlin |
||
+ | | {{Aur|kotlin-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#leanls leanls] |
||
+ | | Lean |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#metals metals] |
||
+ | | Scala |
||
+ | | {{Aur|metals}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#nimls nimls] |
||
+ | | Nim |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ocamlls ocamlls] |
||
+ | | OCaml, Reason |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ocamllsp ocamllsp] |
||
+ | | OCaml, Reason |
||
+ | | {{Aur|ocaml-lsp-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#omnisharp omnisharp] |
||
+ | | OmniSharp |
||
+ | | {{Aur|omnisharp-roslyn}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#perlls perlls] |
||
+ | | Perl |
||
+ | | {{Aur|perl-perl-languageserver}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#phpactor phpactor] |
||
+ | | PHP |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#powershell_es powershell_es] |
||
+ | | PowerShell |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#purescriptls purescriptls] |
||
+ | | PureScript |
||
+ | | {{Aur|purescript-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#pyls pyls] |
||
+ | | Python |
||
+ | | {{Pkg|python-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#pyls_ms pyls_ms] |
||
+ | | Python |
||
+ | | {{Aur|microsoft-python-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#pylsp pylsp] |
||
+ | | Python |
||
+ | | {{Aur|python-lsp-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#pyright pyright] |
||
+ | | Python |
||
+ | | {{Pkg|pyright}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#r_language_server r_language_server] |
||
+ | | R |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#racket_langserver racket_langserver] |
||
+ | | Racket |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rescriptls rescriptls] |
||
+ | | ReScript |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rls rls] |
||
+ | | Rust |
||
+ | | {{Aur|rls-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rnix rnix] |
||
+ | | nix |
||
+ | | {{Aur|rnix-lsp-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rome rome] |
||
+ | | Rome |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer rust_analyzer] |
||
+ | | Rust |
||
+ | | {{Pkg|rust-analyzer}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#scry scry] |
||
+ | | Crystal |
||
+ | | {{Aur|scry-git}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#solargraph solargraph] |
||
+ | | Ruby |
||
+ | | {{Aur|ruby-solargraph}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#sorbet sorbet] |
||
+ | | Ruby |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#sourcekit sourcekit] |
||
+ | | C, C++, Objective-C |
||
+ | | {{Aur|swift-language}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#sqlls sqlls] |
||
+ | | SQL |
||
+ | | {{Aur|sql-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#sqls sqls] |
||
+ | | SQL |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#stylelint_lsp stylelint_lsp] |
||
+ | | stylelint |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#sumneko_lua sumneko_lua] |
||
+ | | Lua |
||
+ | | {{Aur|lua-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#svelte svelte] |
||
+ | | Svelte |
||
+ | | {{Aur|nodejs-svelte-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#svls svls] |
||
+ | | SystemVerilog |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#terraformls terraformls] |
||
+ | | Terraform |
||
+ | | {{Aur|terraform-ls}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#texlab texlab] |
||
+ | | (La)TeX |
||
+ | | {{Pkg|texlab}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#tflint tflint] |
||
+ | | Terraform |
||
+ | | {{Aur|tflint}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#tsserver tsserver] |
||
+ | | TypeScript |
||
+ | | {{Aur|typescript-language-server-bin}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#vala_ls vala_ls] |
||
+ | | Vala |
||
+ | | {{Aur|vala-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#vimls vimls] |
||
+ | | Vim |
||
+ | | {{Aur|vim-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#vls vls] |
||
+ | | V |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#vuels vuels] |
||
+ | | Vue |
||
+ | | {{Aur|nodejs-vls}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#yamlls yamlls] |
||
+ | | YAML |
||
+ | | {{Aur|yaml-language-server}} |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#zeta_note zeta_note] |
||
+ | | Markdown |
||
+ | | |
||
+ | |- |
||
+ | | [https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#zls zls] |
||
+ | | Zig |
||
+ | | {{Aur|zls-bin}} |
||
+ | |} |
||
== トラブルシューティング == |
== トラブルシューティング == |
2021年7月10日 (土) 02:00時点における版
Neovim はユーザーエクスペリエンスやプラグイン、GUI などを改良した Vim のフォークです。
目次
インストール
neovim パッケージを インストール または最新の開発バージョンの場合は neovim-nightly-binAUR を選択します。これにより、 lua を主な構成言語として使用することが強く推奨されます。
また、 多くのGUIおよびその他の関連プロジェクト のいずれかをインストールすることもできます (大部分は 公式リポジトリ または AUR にあります)
設定
Neovim のユーザ固有の設定ファイルは $XDG_CONFIG_HOME/nvim/init.vim
にあり、デフォルトでは ~/.config/nvim/init.vim
です。グローバルコンフィグレーションファイルが、存在する場合は $XDG_CONFIG_DIRS/nvim/sysinit.vim
デフォルトでは /etc/xdg/nvim/sysinit.vim
から、存在しない場合は /usr/share/nvim/sysinit.vim
からロードされます。このファイルは、ユーザが編集することはできません。[1] デフォルトでは、以前のグローバルコンフィグレーションファイルは存在しません。前者のファイルを作成する場合、 pacman でインストールされた vim パッケージを Neovim で動作させる機能が必要な場合は、後者をソースにすることもできます。
Neovim は Vimのほとんどのオプションと互換性がありますが、 Neovim 固有のオプションもあります。 Neovim のオプションの完全なリストについては、 Neovim の help file を参照してください。
Neovim のデータディレクトリは ~/.local/share/nvim/
にあり、開いているファイルのスワップ、 ShaDa (共有データ) ファイル、プラグインのサイトディレクトリが含まれています。
Neovim のバージョン 0.5 以降では、Lua 経由で Neovim をセットアップすることができます。デフォルトでは ~/.config/nvim/init.lua
、 API はまだ若いですが、一般的な設定は、これ以上のステップを踏むことなく、すぐに使えます。現在の設定を変換する方法については、 [2] を参照してください。現時点では、init.lua
を使用しても一般的な init.vim
を使用してもあまりメリットはありませんが、正しく実行すると、 Lua の起動時間がわずかに短縮され、設定も容易なため、 Lua で作成された複数のプラグインを使用する場合に特に便利になります。
vim からの移行
Neovim はメインの設定ディレクトリに ~/.vim
ではなく $XDG_CONFIG_HOME/nvim
を、メインの設定ファイルとして ~/.vimrc
ではなく $XDG_CONFIG_HOME/nvim/init.vim
を使用します。
移行に関する情報は nvim-from-vim を参照するか、neovim で :help nvim-from-vim
コマンドを実行することで得ることができます。
vim と nvim の間の共有設定
Neovimは、メイン設定ディレクトリとして ~/.vim
の代わりに $XDG_CONFIG_HOME/nvim
を使用し、メイン設定ファイルとして ~/.vimrc
の代わりに $XDG_CONFIG_HOME/nvim/init.vim
を使用します。
vim を使い続けたい場合や、Neovim で既存の vim 構成をソース化したい場合は、 nvim-from-vim または :help nvim-from-vim
neovim コマンド。
vim アドオンのロード
vim のためにインストールしたプラグインやシンタックス定義などのアドオンを使いたい場合、rtp
を使って vim のデフォルトのランタイムパスを neovim に追加することができます。nvim の中から以下を実行するか、あるいは neovim の設定ファイルに追加してください:
set rtp^=/usr/share/vim/vimfiles/
ヒントとテクニック
vi や vim を neovim で置き換える
$VISUAL
と $EDITOR
環境変数を設定することで大抵の場合に neovim が使われるようになります。
一部のアプリケーションでは vi や vim がデフォルトエディタとしてハードコードされていますが、neovim-drop-inAUR をインストールすることで neovim を使うことができます。
init.vim から .vimrc にシンボリックリンクを作成
neovim は標準 vim と互換性を保っているため、nvim/init.vim
から .vimrc
にシンボリックリンクを張ることで設定オプションをそのまま使うことができます:
$ ln -s ~/.vimrc ~/.config/nvim/init.vim
neovim と vim の設定を分けたい場合、.vimrc
ファイルの中で if
ブロックを使うことでどちらかにだけ適用される設定を記述できます:
if has('nvim') " Neovim specific commands else " Standard vim specific commands endif
Neovim へ true color サポートを追加する
このプロジェクト の READMEs
を読んで構文の強調表示とどのようにするかについて説明しています。 カラーピッカーを使用してリアルタイムでどのように見えるかを確認して下さい。 C++ 用の(インストールされている場合)の構文強調表示が付属しています。
言語サーバー プロトコル (LSP)
Neovim には組み込みの Language Server Protocol クライアントが含まれており、 nvim-lspconfig プラグインはその一般的な設定を提供します。
言語サーバーは、次のパッケージを使用してネイティブにインストールできます。
トラブルシューティング
Neovim を終了してもカーソルが元に戻らない
Neovim の終了後もカーソルが点滅してしまう場合は neovim FAQ の解決方法を見てください。