「Neovim」の版間の差分
(→設定: vim と nvim の間の共有設定を翻訳して追加) |
(→言語サーバープロトコル (LSP): 同期) |
||
(2人の利用者による、間の32版が非表示) | |||
1行目: | 1行目: | ||
[[Category:開発]] |
[[Category:開発]] |
||
[[Category:テキストエディタ]] |
[[Category:テキストエディタ]] |
||
+ | [[Category:コンソールアプリケーション]] |
||
[[en:Neovim]] |
[[en:Neovim]] |
||
+ | [[es:Neovim]] |
||
− | [https://neovim.io/ Neovim] はユーザーエクスペリエンスやプラグイン、GUI などを改良した [[Vim]] のフォークです。 |
||
+ | [[pl:Neovim]] |
||
+ | [[pt:Neovim]] |
||
+ | [[zh-hans:Neovim]] |
||
+ | [https://neovim.io/ Neovim] は、コードベースの改善を目的とした [[Vim]] のフォークであり、API の実装を容易にし、ユーザーエクスペリエンスとプラグインの実装を向上させます。Neovim は [[Helix]] のようなエディターに影響を与えました。 |
||
== インストール == |
== インストール == |
||
− | {{Pkg|neovim}} パッケージを [[インストール]] または最新の開発バージョンの場合は {{Aur|neovim-nightly-bin}} を選択します。これにより、 {{Pkg|lua}} を主な構成言語として使用することが強く推奨されます。 |
||
+ | {{Pkg|neovim}} パッケージを [[インストール]] または最新の開発バージョンの場合は {{Aur|neovim-nightly-bin}} を選択して下さい。メインの設定言語として {{Pkg|lua}} を使用することが強く推奨されます。 |
||
− | {{Note|neovim では、一部の機能が外部 ''プロバイダ'' に委任されます。 Python プロバイダの場合は、 {{Pkg|python-pynvim}} を使用します。 |
||
− | クリップボード |
+ | システムクリップボードを Neovim で動作させるには、{{Pkg|xclip}} (X11) または {{Pkg|wl-clipboard}} (Wayland) をインストールする必要があります。 |
+ | {{Note|neovim では、一部の機能が外部 ''プロバイダ'' に委任されます。Python プロバイダの場合は、{{Pkg|python-pynvim}} を使用します。 |
||
− | また、 [https://github.com/neovim/neovim/wiki/Related-projects 多くのGUIおよびその他の関連プロジェクト] のいずれかをインストールすることもできます (大部分は [[公式リポジトリ]] または [[AUR]] にあります) |
||
+ | クリップボードプロバイダの場合は、[https://neovim.io/doc/user/provider.html#provider-clipboard provider-clipbood] または {{ic|:help provider-clipboard}} neovim コマンドを参照してください。}} |
||
+ | |||
+ | また、[https://github.com/neovim/neovim/wiki/Related-projects 多くの GUI およびその他の関連プロジェクト] のいずれかをインストールすることもできます (大部分は [[公式リポジトリ]] または [[AUR]] にあります。) |
||
+ | |||
+ | * {{App|{{Pkg|neovim-qt}}|高速、軽量、カスタマイズ可能な Qt GUI 複数のタブ、分割ウィンドウ、カスタマイズ可能なテーマのサポートを含む、最新のインターフェイスを提供します。|https://github.com/equalsraf/neovim-qt|{{Pkg|neovim-qt}}}} |
||
+ | * {{App|{{AUR|neovim-gtk}}|GTK GUI 分割ウィンドウ、複数のタブ、カスタマイズ可能なテーマのサポートを含む、最新のカスタマイズ可能なインターフェイスを提供します。|https://github.com/Lyude/neovim-gtk|{{AUR|neovim-gtk}}, {{AUR|neovim-gtk-git}}}} |
||
+ | * {{App|{{AUR|uivonim-git}}|([https://aur.archlinux.org/packages/uibonim-git#comment-888471 Inactive]) シンプルで軽量な GTK GUI 分割ウィンドウやカスタマイズ可能なテーマのサポートなど、最小限のインターフェイスを提供します。|{{AUR|uivonim-git}}|{{AUR|uivonim-git}}}} |
||
+ | * {{App|{{Pkg|neovide}}|Rust GUI.|https://github.com/neovide/neovide|{{Pkg|neovide}}, {{AUR|neovide-git}}}} |
||
+ | * {{App|{{AUR|neoray-git}}|Go GUI.|https://github.com/hismailbulut/neoray|{{AUR|neoray-git}}}} |
||
+ | * {{App|{{AUR|gnvim}}|GTK GUI.|https://github.com/vhakulinen/gnvim|{{AUR|gnvim}}}} |
||
+ | * {{App|{{AUR|fvim}}|F# GUI.|https://github.com/yatli/fvim|{{AUR|fvim}}}} |
||
== 設定 == |
== 設定 == |
||
− | Neovim のユーザ固有の設定ファイルは {{ic|$XDG_CONFIG_HOME/nvim/init.vim}} にあり、デフォルトでは {{ic|~/.config/nvim/init.vim}} です。グローバルコンフィグレーションファイルが、存在する場合は {{ic|$XDG_CONFIG_DIRS/nvim/sysinit.vim}} |
+ | Neovim のユーザ固有の設定ファイルは {{ic|$XDG_CONFIG_HOME/nvim/init.vim}} にあり、デフォルトでは {{ic|~/.config/nvim/init.vim}} です。グローバルコンフィグレーションファイルが、存在する場合は {{ic|$XDG_CONFIG_DIRS/nvim/sysinit.vim}} デフォルトでは {{ic|/etc/xdg/nvim/sysinit.vim}} から、存在しない場合は {{ic|/usr/share/nvim/sysinit.vim}} からロードされます。このファイルは、ユーザが編集することはできません。[https://github.com/neovim/neovim/blob/master/runtime/doc/starting.txt#L437] デフォルトでは、以前のグローバルコンフィグレーションファイルは存在しません。前者のファイルを作成する場合、 pacman でインストールされた vim パッケージを Neovim で動作させる機能が必要な場合は、後者をソースにすることもできます。 |
Neovim は Vimのほとんどのオプションと互換性がありますが、 Neovim 固有のオプションもあります。 Neovim のオプションの完全なリストについては、 Neovim の [https://neovim.io/doc/user/options.html help file] を参照してください。 |
Neovim は Vimのほとんどのオプションと互換性がありますが、 Neovim 固有のオプションもあります。 Neovim のオプションの完全なリストについては、 Neovim の [https://neovim.io/doc/user/options.html help file] を参照してください。 |
||
20行目: | 35行目: | ||
Neovim のデータディレクトリは {{ic|~/.local/share/nvim/}} にあり、開いているファイルのスワップ、 [https://neovim.io/doc/user/starting.html#shada ShaDa] (共有データ) ファイル、プラグインのサイトディレクトリが含まれています。 |
Neovim のデータディレクトリは {{ic|~/.local/share/nvim/}} にあり、開いているファイルのスワップ、 [https://neovim.io/doc/user/starting.html#shada ShaDa] (共有データ) ファイル、プラグインのサイトディレクトリが含まれています。 |
||
− | + | Nvim のバージョン 0.5 から Lua を使って Nvim を設定することができるようになりました。現在の設定を変換する方法については、[https://github.com/nanotee/nvim-lua-guide] を参照してください。現時点では、{{ic|init.lua}} と一般的な {{ic|init.vim}} を比較した場合、あまり大きなメリットはありませんが、正しく設定すれば、Lua は起動時間を少し改善しますし、設定が簡単なので、Lua で書かれたプラグインをいくつか使う場合に特に有用です。 |
|
=== vim からの移行 === |
=== vim からの移行 === |
||
− | + | 既存の Vim の設定を Nvim に移行したい場合は、{{ic|~/.vimrc}} を {{ic|~/.config/nvim/init.vim}} にコピーするだけす。 |
|
+ | 該当する場合は、{{ic|~/.vim/autoload/}} の内容を {{ic|~/.local/share/nvim/site/autoload/}} にコピーしてください。 |
||
− | |||
− | 移行に関する情報は [https://neovim.io/doc/user/nvim.html#nvim-from-vim nvim-from-vim] を参照するか、neovim で {{ic|:help nvim-from-vim}} コマンドを実行することで得ることができます。 |
||
=== vim と nvim の間の共有設定 === |
=== vim と nvim の間の共有設定 === |
||
32行目: | 46行目: | ||
Neovimは、メイン設定ディレクトリとして {{ic|~/.vim}} の代わりに {{ic|$XDG_CONFIG_HOME/nvim}} を使用し、メイン設定ファイルとして {{ic|~/.vimrc}} の代わりに {{ic|$XDG_CONFIG_HOME/nvim/init.vim}} を使用します。 |
Neovimは、メイン設定ディレクトリとして {{ic|~/.vim}} の代わりに {{ic|$XDG_CONFIG_HOME/nvim}} を使用し、メイン設定ファイルとして {{ic|~/.vimrc}} の代わりに {{ic|$XDG_CONFIG_HOME/nvim/init.vim}} を使用します。 |
||
− | vim を使い続けたい場合や、Neovim で既存の vim 構成をソース化したい場合は、 [https://neovim.io/doc/user/nvim.html#nvim-from-vim nvim-from-vim] または {{ic|:help nvim-from-vim}} neovim コマンド。 |
+ | vim を使い続けたい場合や、Neovim で既存の vim 構成をソース化したい場合は、 [https://neovim.io/doc/user/nvim.html#nvim-from-vim nvim-from-vim] または {{ic|:help nvim-from-vim}} neovim コマンドを参照して下さい。 |
− | ==== |
+ | ==== プラグインのロード ==== |
+ | [[公式リポジトリ]] や [[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 のためにインストールしたプラグインやシンタックス定義などのアドオンを使いたい場合、{{ic|rtp}} を使って vim のデフォルトのランタイムパスを neovim に追加することができます。nvim の中から以下を実行するか、あるいは neovim の設定ファイルに追加してください: |
||
+ | vim 用に書かれたプラグインのほとんどは Nvim でも問題なく動作しますが、Nvim 用に書かれたプラグインのすべてが Vim で動作するわけではないので、互換性のある設定を確保したい場合は、従来の {{ic|init.vim}} や {{ic|.vimrc}} を使ってください。 |
||
− | set rtp^=/usr/share/vim/vimfiles/ |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
61行目: | 75行目: | ||
" Standard vim specific commands |
" Standard vim specific commands |
||
endif |
endif |
||
+ | |||
+ | === True color のサポート === |
||
+ | |||
+ | [https://github.com/carlowood/nneovim-true-color-scheme-editor このプロジェクト] の {{ic|READMEs}} では、構文の強調表示に24ビットの ''TrueColor'' サポートを追加する方法と、カラーピッカーを使用してリアルタイムでどのように表示されるかを確認する方法について説明しています。C++ 用の作者のシンタックスハイライト (インストールしている場合) が付属しています。 |
||
+ | |||
+ | === カーソルの最後の位置をサポート === |
||
+ | |||
+ | カーソルの最後の位置を保存したい場合は、[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] クライアントが含まれており [https://github.com/neovim/nvim-lspconfig nvim-lspconfig] プラグインは、その共通設定を提供します。 |
||
+ | |||
+ | Arch パッケージのリストについては、[[言語サーバープロトコル]] を参照してください。 |
||
+ | |||
+ | === ページャとして使用 === |
||
+ | |||
+ | マニュアルページを開くには {{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] も試してみてください。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
2024年11月2日 (土) 18:47時点における最新版
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 も試してみてください。
トラブルシューティング
Neovim を終了してもカーソルが元に戻らない
Neovim の終了後もカーソルが点滅してしまう場合は neovim FAQ の解決方法を見てください。