「Neovim」の版間の差分
(→ヒントとテクニック: 同期) |
|||
| (同じ利用者による、間の7版が非表示) | |||
| 7行目: | 7行目: | ||
[[pt:Neovim]] |
[[pt:Neovim]] |
||
[[zh-hans:Neovim]] |
[[zh-hans:Neovim]] |
||
| − | [https://neovim.io/ Neovim] は、コードベースの改善を目的とした [[Vim]] のフォークであり、API の実装を容易にし、ユーザー |
+ | [https://neovim.io/ Neovim] は、コードベースの改善を目的とした [[Vim]] のフォークであり、API の実装を容易にし、ユーザーエクスペリエンスとプラグインの実装を向上させます。Neovim は [[Helix]] のようなエディターに影響を与えました。 |
== インストール == |
== インストール == |
||
| + | |||
| − | {{Pkg|neovim}} パッケージを [[インストール]] または最新の開発バージョンの場合は {{Aur|neovim-nightly-bin}} を選択します。メインの構成言語として {{Pkg|lua}} を使用することが強く推奨されます。 |
||
| + | {{Pkg|neovim}} パッケージを [[インストール]] または最新の開発バージョンの場合は {{Aur|neovim-nightly-bin}} を選択して下さい。メインの設定言語として {{Pkg|lua}} を使用することが強く推奨されます。 |
||
システムクリップボードを Neovim で動作させるには、{{Pkg|xclip}} (X11) または {{Pkg|wl-clipboard}} (Wayland) をインストールする必要があります。 |
システムクリップボードを Neovim で動作させるには、{{Pkg|xclip}} (X11) または {{Pkg|wl-clipboard}} (Wayland) をインストールする必要があります。 |
||
| 49行目: | 50行目: | ||
==== プラグインのロード ==== |
==== プラグインのロード ==== |
||
| − | [[公式リポジトリ]] や [[AUR]] からインストールした Vim/Nvim プラグインは自動的に {{ic|/etc/xdg/nvim/sysinit.vim}} でソースを取得するので、余計な手順を踏む必要はありません。膨大な数のプラグインが両方の場所で見つかりますが、プラグインを追加する最も推奨される方法はプラグインマネージャを使うことです。最もよく使われるのは [https://github.com/junegunn/vim-plug vim-plug] |
+ | [[公式リポジトリ]] や [[AUR]] からインストールした Vim/Nvim プラグインは自動的に {{ic|/etc/xdg/nvim/sysinit.vim}} でソースを取得するので、余計な手順を踏む必要はありません。膨大な数のプラグインが両方の場所で見つかりますが、プラグインを追加する最も推奨される方法はプラグインマネージャを使うことです。最もよく使われるのは、Vim と Nvim の両方で使える [https://github.com/junegunn/vim-plug vim-plug] と と Nvim のみで動作する Lua で書かれた [https://github.com/folke/lazy.nvim lazy.nvim] です。どちらも github ブランチからランタイムコマンドまで、柔軟な設定が可能です。 |
vim 用に書かれたプラグインのほとんどは Nvim でも問題なく動作しますが、Nvim 用に書かれたプラグインのすべてが Vim で動作するわけではないので、互換性のある設定を確保したい場合は、従来の {{ic|init.vim}} や {{ic|.vimrc}} を使ってください。 |
vim 用に書かれたプラグインのほとんどは Nvim でも問題なく動作しますが、Nvim 用に書かれたプラグインのすべてが Vim で動作するわけではないので、互換性のある設定を確保したい場合は、従来の {{ic|init.vim}} や {{ic|.vimrc}} を使ってください。 |
||
| 83行目: | 84行目: | ||
カーソルの最後の位置を保存したい場合は、[https://github.com/neovim/neovim/issues/16339#issuecomment-1348133829 lastplace.lua] が非常に便利です。 {{ic|~/.config/nvim/plugin/}} またはシステム全体のディレクトリ {{ic|/usr/share/nvim/runtime/plugin/}} に配置する必要があります。 |
カーソルの最後の位置を保存したい場合は、[https://github.com/neovim/neovim/issues/16339#issuecomment-1348133829 lastplace.lua] が非常に便利です。 {{ic|~/.config/nvim/plugin/}} またはシステム全体のディレクトリ {{ic|/usr/share/nvim/runtime/plugin/}} に配置する必要があります。 |
||
| − | === 言語サーバー |
+ | === 言語サーバープロトコル (LSP) === |
| − | Neovim には組み込みの [https://microsoft.github.io/language-server-protocol Language Server Protocol] クライアントが含まれており |
+ | Neovim には、組み込みの [https://microsoft.github.io/language-server-protocol Language Server Protocol] クライアントが含まれており [https://github.com/neovim/nvim-lspconfig nvim-lspconfig] プラグインは、その共通設定を提供します。 |
| + | Arch パッケージのリストについては、[[言語サーバープロトコル]] を参照してください。 |
||
| − | 言語サーバーは、次のパッケージを使用してネイティブにインストールできます。 |
||
| − | |||
| − | {| 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}} |
||
| − | |} |
||
=== ページャとして使用 === |
=== ページャとして使用 === |
||
| − | + | マニュアルページを開くには {{ic|:Man}} コマンドを使います。neovim ですべてのマニュアルページを開くには、{{ic|MANPAGER}} [[環境変数]] を {{ic|nvim +Man!}} に設定します。 |
|
| + | |||
| + | 他のページャをサポートするには {{AUR|nvimpager}} か {{AUR|nvimpager-git}} パッケージをインストールし、{{ic|PAGER}} [[環境変数]] を {{ic|nvimpager}} に設定します。 |
||
| + | |||
| + | {{AUR|page-git}} でパッケージされている [https://github.com/I60R/page page] も試してみてください。 |
||
| + | |||
| + | === 複数の nvim 設定を並行して利用する === |
||
| + | |||
| + | [https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME NVIM_APPNAME] 環境変数を使うことで、複数の nvim フレーバーを並行してインストールして利用することができます。 |
||
| + | {{ic|XDG_CONFIG_HOME}} 内にディレクトリを作成し、例として {{ic|~/.config/foo}} に新しい nvim 設定を置きます。 |
||
| + | |||
| + | 特定の設定で ''nvim'' を実行するには: |
||
| + | |||
| + | * シェルや設定ファイルで直接 {{ic|NVIM_APPNAME}} 変数を設定します: {{ic|1=export NVIM_APPNAME=foo}} これにより {{ic|nvim}} コマンドが自動的に ''foo'' フレーバーを呼び出すようになります。デフォルトの動作に戻すには {{ic|unset NVIM_APPNAME}} を実行してください。 |
||
| + | * エイリアスを定義する方法もあります。例: {{ic|1=alias v=' NVIM_APPNAME=foo nvim'}} |
||
| + | |||
| + | ==== ネイティブの nvim 設定と並行して LazyVim をインストールする ==== |
||
| + | |||
| + | 人気のある [https://www.lazyvim.org/ LazyVim] フレーバーを ''ネイティブ'' の nvim 設定と並行してインストールしたい場合は、[https://www.lazyvim.org/installation インストール手順] に従ってください。 |
||
| + | ただし実際の nvim 設定ディレクトリである {{ic|~/.config/nvim}}, {{ic|~/.local/share/nvim}}, {{ic|~/.local/state/nvim}}, {{ic|~/.cache/nvim}} を削除または移動する必要はありません。 |
||
| + | |||
| + | 代わりに、スタータリポジトリを {{ic|.config}} パス内のお好みのディレクトリ名にクローンしてください。以下のコマンドでは {{ic|nvimLazyvim}} というディレクトリ名を例としています: |
||
| + | |||
| + | $ git clone https://github.com/LazyVim/starter ~/.config/nvimLazyvim |
||
| + | |||
| + | {{ic|.git}} ディレクトリを削除するのを忘れないでください: |
||
| + | |||
| + | $ rm -rf ~/.config/nvimLazyvim/.git |
||
| + | |||
| + | 新しい ''フレーバー'' を起動するには次のコマンドを使います: |
||
| + | |||
| + | $ NVIM_APPNAME=nvimLazyvim nvim |
||
| + | |||
| + | 入力を短縮するために、{{ic|.bashrc}} または {{ic|.zshrc}} に以下の行を追加してエイリアスを作成できます: |
||
| + | |||
| + | {{hc|.zshrc|2= |
||
| + | alias v=' NVIM_APPNAME=nvimLazyvim nvim' |
||
| + | }} |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
| 420行目: | 136行目: | ||
Neovim の終了後もカーソルが点滅してしまう場合は [https://github.com/neovim/neovim/wiki/FAQ#cursor-style-isnt-restored-after-exiting-nvim neovim FAQ] の解決方法を見てください。 |
Neovim の終了後もカーソルが点滅してしまう場合は [https://github.com/neovim/neovim/wiki/FAQ#cursor-style-isnt-restored-after-exiting-nvim neovim FAQ] の解決方法を見てください。 |
||
| + | |||
| + | === システムアップグレード後の Tree-sitter パーサーエラー === |
||
| + | |||
| + | システムを更新した後は、{{ic|:Lazy sync}} などを使用して Neovim のパッケージを同期し、{{ic|:TSUpdate}} を使用して手動でパーサーを強制的に更新することをお勧めします。{{ic|~/.local/share/nvim}} にある Neovim のキャッシュファイルを削除すると、問題が解決する場合があります。 |
||
| + | |||
| + | === Tree-sitter executable not found === |
||
| + | |||
| + | {{Pkg|tree-sitter}} パッケージはライブラリのみを提供します。''tree-sitter'' 実行ファイルが必要な場合は、{{Pkg|tree-sitter-cli}} をインストールしてください。 |
||
== 参照 == |
== 参照 == |
||
2025年9月1日 (月) 18:44時点における最新版
Neovim は、コードベースの改善を目的とした Vim のフォークであり、API の実装を容易にし、ユーザーエクスペリエンスとプラグインの実装を向上させます。Neovim は Helix のようなエディターに影響を与えました。
インストール
neovim パッケージを インストール または最新の開発バージョンの場合は neovim-nightly-binAUR を選択して下さい。メインの設定言語として lua を使用することが強く推奨されます。 システムクリップボードを Neovim で動作させるには、xclip (X11) または wl-clipboard (Wayland) をインストールする必要があります。
また、多くの GUI およびその他の関連プロジェクト のいずれかをインストールすることもできます (大部分は 公式リポジトリ または AUR にあります。)
- neovim-qt — 高速、軽量、カスタマイズ可能な Qt GUI 複数のタブ、分割ウィンドウ、カスタマイズ可能なテーマのサポートを含む、最新のインターフェイスを提供します。
- neovim-gtkAUR — GTK GUI 分割ウィンドウ、複数のタブ、カスタマイズ可能なテーマのサポートを含む、最新のカスタマイズ可能なインターフェイスを提供します。
- uivonim-gitAUR — (Inactive) シンプルで軽量な GTK GUI 分割ウィンドウやカスタマイズ可能なテーマのサポートなど、最小限のインターフェイスを提供します。
- uivonim-gitAUR || uivonim-gitAUR
- neovide — Rust GUI.
- neoray-gitAUR — Go GUI.
- gnvimAUR — GTK GUI.
- fvimAUR — F# GUI.
設定
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 (共有データ) ファイル、プラグインのサイトディレクトリが含まれています。
Nvim のバージョン 0.5 から Lua を使って Nvim を設定することができるようになりました。現在の設定を変換する方法については、[2] を参照してください。現時点では、init.lua と一般的な init.vim を比較した場合、あまり大きなメリットはありませんが、正しく設定すれば、Lua は起動時間を少し改善しますし、設定が簡単なので、Lua で書かれたプラグインをいくつか使う場合に特に有用です。
vim からの移行
既存の Vim の設定を Nvim に移行したい場合は、~/.vimrc を ~/.config/nvim/init.vim にコピーするだけす。
該当する場合は、~/.vim/autoload/ の内容を ~/.local/share/nvim/site/autoload/ にコピーしてください。
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 コマンドを参照して下さい。
プラグインのロード
公式リポジトリ や AUR からインストールした Vim/Nvim プラグインは自動的に /etc/xdg/nvim/sysinit.vim でソースを取得するので、余計な手順を踏む必要はありません。膨大な数のプラグインが両方の場所で見つかりますが、プラグインを追加する最も推奨される方法はプラグインマネージャを使うことです。最もよく使われるのは、Vim と Nvim の両方で使える vim-plug と と Nvim のみで動作する Lua で書かれた lazy.nvim です。どちらも github ブランチからランタイムコマンドまで、柔軟な設定が可能です。
vim 用に書かれたプラグインのほとんどは Nvim でも問題なく動作しますが、Nvim 用に書かれたプラグインのすべてが Vim で動作するわけではないので、互換性のある設定を確保したい場合は、従来の init.vim や .vimrc を使ってください。
ヒントとテクニック
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
True color のサポート
このプロジェクト の READMEs では、構文の強調表示に24ビットの TrueColor サポートを追加する方法と、カラーピッカーを使用してリアルタイムでどのように表示されるかを確認する方法について説明しています。C++ 用の作者のシンタックスハイライト (インストールしている場合) が付属しています。
カーソルの最後の位置をサポート
カーソルの最後の位置を保存したい場合は、lastplace.lua が非常に便利です。 ~/.config/nvim/plugin/ またはシステム全体のディレクトリ /usr/share/nvim/runtime/plugin/ に配置する必要があります。
言語サーバープロトコル (LSP)
Neovim には、組み込みの Language Server Protocol クライアントが含まれており nvim-lspconfig プラグインは、その共通設定を提供します。
Arch パッケージのリストについては、言語サーバープロトコル を参照してください。
ページャとして使用
マニュアルページを開くには :Man コマンドを使います。neovim ですべてのマニュアルページを開くには、MANPAGER 環境変数 を nvim +Man! に設定します。
他のページャをサポートするには nvimpagerAUR か nvimpager-gitAUR パッケージをインストールし、PAGER 環境変数 を nvimpager に設定します。
page-gitAUR でパッケージされている page も試してみてください。
複数の nvim 設定を並行して利用する
NVIM_APPNAME 環境変数を使うことで、複数の nvim フレーバーを並行してインストールして利用することができます。
XDG_CONFIG_HOME 内にディレクトリを作成し、例として ~/.config/foo に新しい nvim 設定を置きます。
特定の設定で nvim を実行するには:
- シェルや設定ファイルで直接
NVIM_APPNAME変数を設定します:export NVIM_APPNAME=fooこれによりnvimコマンドが自動的に foo フレーバーを呼び出すようになります。デフォルトの動作に戻すにはunset NVIM_APPNAMEを実行してください。 - エイリアスを定義する方法もあります。例:
alias v=' NVIM_APPNAME=foo nvim'
ネイティブの nvim 設定と並行して LazyVim をインストールする
人気のある LazyVim フレーバーを ネイティブ の nvim 設定と並行してインストールしたい場合は、インストール手順 に従ってください。
ただし実際の nvim 設定ディレクトリである ~/.config/nvim, ~/.local/share/nvim, ~/.local/state/nvim, ~/.cache/nvim を削除または移動する必要はありません。
代わりに、スタータリポジトリを .config パス内のお好みのディレクトリ名にクローンしてください。以下のコマンドでは nvimLazyvim というディレクトリ名を例としています:
$ git clone https://github.com/LazyVim/starter ~/.config/nvimLazyvim
.git ディレクトリを削除するのを忘れないでください:
$ rm -rf ~/.config/nvimLazyvim/.git
新しい フレーバー を起動するには次のコマンドを使います:
$ NVIM_APPNAME=nvimLazyvim nvim
入力を短縮するために、.bashrc または .zshrc に以下の行を追加してエイリアスを作成できます:
.zshrc
alias v=' NVIM_APPNAME=nvimLazyvim nvim'
トラブルシューティング
Neovim を終了してもカーソルが元に戻らない
Neovim の終了後もカーソルが点滅してしまう場合は neovim FAQ の解決方法を見てください。
システムアップグレード後の Tree-sitter パーサーエラー
システムを更新した後は、:Lazy sync などを使用して Neovim のパッケージを同期し、:TSUpdate を使用して手動でパーサーを強制的に更新することをお勧めします。~/.local/share/nvim にある Neovim のキャッシュファイルを削除すると、問題が解決する場合があります。
Tree-sitter executable not found
tree-sitter パッケージはライブラリのみを提供します。tree-sitter 実行ファイルが必要な場合は、tree-sitter-cli をインストールしてください。