連載 本記事は複数記事の連載記事の1つです。 Builtin LSP NeoVimは標準でLSPクライアントが実装されており、Builtin LSPやnvim lspと呼ばれています。 Lua言語によってパフォーマンスが向上したり、フローティングウィンドウなどNeoVimにしかない機能が利用されています。 メリットでもデメリットでもありますが、Builtin LSPはcocのようなオールインワンで […]
Neovimを新しい環境に作ろうとすると、これが意外と大変です。 Neovim上の設定はinit.vimやプラグインマネージャーでサクッと入りますが、プラグインマネージャー自体やNeovim本体、Python実行環境などは自動化できません。 連載 本記事は複数記事の連載記事の1つです。 GitHubで管理する まず、複数環境で設定を共有するためにinit.vimを含むNeovimの設定ディレクトリ […]
連載 本記事は複数記事の連載記事の1つです。 LSP LSPとはLanguage Server Protocolの略です。 手っ取り早く伝えると、これを入れるとプログラミング言語の構文解析・構文ハイライト・静的エラーチェック・リファレンス参照・入力補完といった機能がNeovimに搭載されます。 LSPはVSCodeの一部 といっても過言ではありません。 LSPはMicrosoftが提唱したプロトコ […]
連載 本記事は複数記事の連載記事の1つです。 ファジーファインダー VSCodeはCtrl-pでワークスペースのファイルをあいまい検索して開くことが出来ます。 同等のことをNeovimで実現していきましょう。 Telescope yuki-yano/fzf-preview.vimがよく出来ていて有名ですが、fzf-previewを参考にLua言語で作られているnvim-telescope/tele […]
連載 本記事は複数記事の連載記事の1つです。 Neovimのタブの概念は違う タブと聞くとブラウザのタブを想像すると思いますが、Neovimのタブは全くの別物です。 なぜこれをタブと命名したんだと揶揄されるほど誤解を生む原因となっています。 Neovimのタブを理解するには、関連するバッファ・ウィンドウについて理解する必要があります。 公式の解説はNeovim内から以下のヘルプを開くことで確認する […]
連載 本記事は複数記事の連載記事の1つです。 ファイルエクスプローラーとは ディレクトリツリーからファイルを開くアレです。 Neovimには標準でファイルエクスプローラーが付いていて :e で開くことが出来ます。 ただし使いやすいとは言えず、サーバーなどのまっさらなVimを触る時に使う程度でしょう。 ファイルエクスプローラープラグインは色々あり、今回は多機能で導入も簡単な Fern を紹介します。 […]
連載 本記事は複数記事の連載記事の1つです。 プラグイン プラグインは必ず入れる必要はありませんが、何か困ったとき「プラグインってどんな物があって何が出来るようになるのか」を大体知っていないと困ります。 すぐに試せるようにdeinの設定例も記載しておきます。 導入ポイント プラグインのGitHubのトップページに紹介とインストール方法が載っているので読みましょう。 盲点なのが、GitHubのWik […]
連載 本記事は複数記事の連載記事の1つです。 おすすめオプション設定 Neovimのオプションはデフォルトでいい感じになっている訳ではありません。 行番号を表示するなど、実質必須と言えるオプションが多くあります。 オプション名 設定値 詳細 helplang vim.o.helplang = ‘ja,en’ ヘルプ(:help)を日本語で表示します ignorecase v […]
連載 本記事は複数記事の連載記事の1つです。 プラグインマネージャーとは Neovimは皆が作った拡張機能を取り入れて機能を拡張することが出来ます。 プラグインはGitHubで公開されており、プラグインマネージャーを使って取り入れます。 プラグインマネージャーは様々な種類があり、シンプルなものからキャッシュ機能や遅延読み込みに対応して高速に動作するものまで様々です。 プラグインマネージャーの種類 […]
連載 本記事は複数記事の連載記事の1つです。 自動コマンドとは VimではInsertやNormalモードの切り替えなど、様々なイベント時に設定したコマンドを実行できます。 ハンドルできるイベントの一覧は以下のヘルプコマンドから確認できます。 :h autocmd-events 自動コマンドの定義 Vimのヘルプを確認すると、単純に何らかのイベント時に実行するだけではありません。 ファイル名がパタ […]