Amazon オーディブル2ヶ月無料キャンペーン中 5/9まで

【Mac】Neovimのおすすめプラグイン(見た目をクールに!デザイン・UI関連)

7 min

こんにちは。ナミレリです。前回のNeovimの初期設定の記事に続き、今回はNeovimの見た目をクールにかっこ良くするプラグインやそのプラグインの設定方法を紹介します。見た目優先です。

前回の記事はこちらです。前回はNeovimの初期設定を中心に紹介しています。

Neovimの初期設定

この記事の設定後にはLSPの設定がおすすめです。下の記事です。

NeovimでLSPを構築

NeovimでTelescopeを設定

この記事はこんな人にオススメ

  • VSCode以外にもテキストエディタを試してみたい
  • プログラミング初心者で、効率的なテキストエディタを使いたい方
  • Vimに興味があり、よりモダンで拡張性に富んだエディタを試してみたい方
  • すでにNeovimを使い始めたが、より深く活用したいと考えている方
この記事の環境
Parallelsの母艦
  • MacBook Pro 14インチ M1Max(メモリ32GB)
  • macOS Ventura 13.3.1
  • Parallels Desktop 18 for MacParallelsの公式サイト
  • Neovim NVIM v0.10.0-dev-1444
ParallelsのゲストOS
  • Ubuntu22.10
  • Neovim NVIM v0.9.0-dev-613
Parallels 19 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。
NEW Parallels Desktop 19 for Mac

Parallels Desktop 19 for Macは、M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

14日間の無料トライアルもありますので、ぜひダウンロードして試してみてください。

目次

はじめに

Neovimは、Vimの強力な機能を継承しつつ、拡張性とパフォーマンスを追求したエディタです。そして、その魅力は数多くのプラグインが支えています。プラグインを利用することで、Neovimはまるで無限の可能性を秘めた宝箱のように、目を見張るほどの変貌を遂げます。

この記事では、見た目をクールにかっこ良くするプラグインから紹介します

みなさんのNeovimをカスタマイズし、究極にモチベーションが上がるエディタ環境を手に入れてください。

前回はNeovimの初期設定を中心に紹介しています。前回の記事はこちらです。

Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

Amazon オーディブル:2ヶ月無料キャンペーン中(5/9まで)→ 詳しくはこちら

見た目をクールに!デザイン・UI関連のおすすめプラグイン

私のおすすめする(使っている)見た目、デザインやUIに関わるプラグインは以下となります。この記事でそれぞれのプラグインの概要やインストール、設定方法を紹介していきます。

カテゴリプラグイン説明
カラースキームfolke/tokyonight.nvim美しいダークカラーのテーマ
カラースキームcatppuccin/nvim美しいパステルカラーのテーマ
ステータスラインnvim-lualine/lualine.nvimステータスラインをカスタマイズ
アイコンnvim-tree/nvim-web-deviconsファイルタイプに応じたアイコン
タブラインkdheepak/tabline.nvimタブラインをカスタマイズ
インデントechasnovski/mini.indentscopeアニメーションするインデントガイドを表示
シンタックスハイライトnvim-treesitter/nvim-treesitterシンタックスハイライトする
ポップアップUIfolke/noice.nvimポップアップメニューのUI
ファイラーnvim-neo-tree/neo-tree.nvimディレクトリやファイルをツリー構造で表示
gitのサイン表示lewis6991/gitsigns.nvimgitの状態を可視化する

それでは、ひとつひとつ紹介していきます。まずはカラースキームです。

1. カラースキーム

まずは、クールで美しいおすすめのカラースキームの紹介です。

私はfolke/tokyonight.nvimのカラースキームを使っています。下のキャプチャーはTokyoNightの3つあるダーク系の中のtokyonight-stormです。

tokyonight-stormのカラー
tokyonight-stormのカラー

Tokyo NightはVSCodeのTokyoNightテーマから移植された、Luaで書かれたダークとライトのNeovimテーマです。ダーク系のテーマは3つあり特にこのダーク系カラースキームが美しいです。

1-1. 公式リポジトリ(folke/tokyonight.nvim

folke/tokyonight.nvimの公式リポジトリはこちらです。

1-2. インストール後の見た目(folke/tokyonight.nvim

下のキャプチャーはTokyoNightの3つあるダーク系の中のtokyonight-nightです。

tokyonight-nightカラー
tokyonight-nightのカラー

1-3. インストール(folke/tokyonight.nvim

では、この美しいtokyonightのカラーテーマをインストールします。この記事でのパッケージマネジャーはpacker.nvimを使います

~/.config/nvim/lua/plugins.luaの編集

下のように、~/.config/nvim/lua/plugins.luaを編集し、use 'folke/tokyonight.nvim'を最下部のend)より前に追加します。


vi ~/.config/nvim/lua/plugins.lua


vim.cmd [[packadd packer.nvim]]
return require("packer").startup(function(use)
  -- Packer can manage itself
  use "wbthomason/packer.nvim"
  --
  -- この下にインストールするプラグインを記載します。
  use "folke/tokyonight.nvim" -- <-- この行を追加

end)

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

folke/tokyonight.nvimがインストールされました。

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にtokyonightのカラースキームが設定されるようにします。


vi ~/.config/nvim/init.lua


vim.cmd[[colorscheme tokyonight-night]]

1-4. 完成(folke/tokyonight.nvim

Neovimを立ち上げると、TokyoNightのカラースキームになっています。

1-5. その他おすすめのカラースキーム

Catppuccinは、低コントラストと高コントラストの中間のパステルカラーのテーマです。

2. ステータスライン

次はステータスラインをクールにかっこ良くします。ステータスラインは画面下部の部分で、ファイル名やカーソル位置など様々な情報を表示することができます。

このステータスラインをクールにする、nvim-lualine/lualine.nvimをインストールし設定します。lualine.nvimは、簡単な設定で美しく機能的なステータスラインを実現します。

テータスラインは画面下部のファイル名やカーソルの位置などの情報が表示される
テータス
ステータスラインは画面下部のファイル名やカーソルの位置などの情報が表示される

2-1. 公式リポジトリ(nvim-lualine/lualine.nvim

2-2. インストール後の見た目(nvim-lualine/lualine.nvim

lualine.nvimをインストールするとクールなステータスラインになります
lualine.nvimをインストールするとクールなステータスラインになります

2-3. インストール(nvim-lualine/lualine.nvim

では、簡単な設定で美しく機能的なステータスラインを実現するnvim-lualine/lualine.nvimをインストールします。パッケージマネジャーはpacker.nvimを使います

Nerd Fontについて

Nerd Fontをインストールされていない方はiTerm2などのターミナルでフォントの設定をしておきましょう。Nerd Fontを使うと数多くのアイコンフォントが使用できるようになります。

こちら下の記事を参考にNerd Fontを設定してください。

UbuntuへのNerd Fontのインストール方法はこちらの記事を参考にしてください。

~/.config/nvim/lua/plugins.luaの編集

下のように、~/.config/nvim/lua/plugins.luaを編集し、最下部のend)より前に追加します。


vi ~/.config/nvim/lua/plugins.lua


  use {
    "nvim-lualine/lualine.nvim",
    requires = { "nvim-tree/nvim-web-devicons", opt = true }
  }
  use("nvim-tree/nvim-web-devicons")

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

nvim-lualine/lualine.nvimnvim-tree/nvim-web-deviconsがインストールされました。

:PackerInstallでインストールする
:PackerInstallでインストールする

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にnvim-lualine/lualine.nvimを読み込むようにします。


vi ~/.config/nvim/init.lua


require("lualine").setup()

2-4. 完成(nvim-lualine/lualine.nvim

Neovimを立ち上げると、下のようなクールなステータスラインになっているはずです。

lualine.nvimのインストール後のステータスライン
lualine.nvimのインストール後のステータスライン
Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

Amazon オーディブル:2ヶ月無料キャンペーン中(5/9まで)→ 詳しくはこちら

3. タブライン

次はタブラインをクールにかっこ良くします。タブラインは画面上部の部分で、バッファ名が表示される部分です。

kdheepak/tabline.nvimをインストールすると、タブラインがタブっぽく扱うことができ、また見た目に関しては、先程インストールしたlualine.nvim(ステータスラインのカスタマイズ)に合わせることができます。

kdheepak/tabline.nvimは、簡単な設定で美しく機能的なタブラインを実現します。

3-1. 公式リポジトリ(kdheepak/tabline.nvim

3-2. インストール後の見た目(kdheepak/tabline.nvim

tabline.nvimをインストールするとクールなタブラインになります
tabline.nvimをインストールするとクールなタブラインになります

3-3. インストール(kdheepak/tabline.nvim

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua


use("kdheepak/tabline.nvim")

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

kdheepak/tabline.nvimがインストールされました。

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にkdheepak/tabline.nvimを読み込むようにします。


vi ~/.config/nvim/init.lua


require("tabline").setup()

3-4. 完成(kdheepak/tabline.nvim

Neovimを立ち上げると、下のようなクールなタブラインになっているはずです。

tabline.nvimのインストール後のタブライン
tabline.nvimのインストール後のタブライン

3-5. キーマップの設定(kdheepak/tabline.nvim

複数のファイル(バッファ)を開いている場合にショートカットキーでファイル(バッファ)を切り替えられるようにしてみます。

Ctrl+nで次のバッファへ移動(Next)、Ctrl+pで前のバッファに移動(previous)できるように設定します。参考にしてみてください。


vi ~/.config/nvim/lua/keymaps.lua


local opts = { noremap = true, silent = true }
local term_opts = { silent = true }

-- bufferの移動
vim.keymap.set("n", "<C-n>", ":bnext<Return>", opts)
vim.keymap.set("n", "<C-p>", ":bprevious<Return>", opts)

~/.config/nvim/lua/plugins.luaの編集

keymaps.luaを起動時に読み込むように、下のようにinit.luaに追加します。


require("keymaps")

4. アニメーションでインデントを可視化

echasnovski/mini.indentscopeは、アニメーションでインデントを可視化するプラグインです。非常に高速で、アニメーションの遅延時間などもカスタマイズすることができます。

4-1. 公式リポジトリ(echasnovski/mini.indentscope

4-2. インストール後の見た目(echasnovski/mini.indentscope

echasnovski/mini.indentscopeの見た目
echasnovski/mini.indentscopeの見た目

4-3. インストール(echasnovski/mini.indentscope

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua


use("echasnovski/mini.indentscope")

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

echasnovski/mini.indentscopeがインストールされました。

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にechasnovski/mini.indentscopeを読み込むようにします。


vi ~/.config/nvim/init.lua


require("mini.indentscope").setup({
  symbol = "▏",
})

インデントのシンボルを""にすると、直線になりよりクールでおすすめです。

4-4. 完成(echasnovski/mini.indentscope

Neovimを立ち上げると、下のようなクールなアニメーションするインデントの可視化になっているはずです。

5. シンタックスハイライト

nvim-treesitter/nvim-treesitterは、Neovim向けの高速な構文解析とハイライトを提供するプラグインです。コードの読みやすさが向上し、Neovimでのコーディング体験が大幅に向上します。

様々な言語に対するハイライトのサンプルはこちらで確認できます。

5-1. 公式リポジトリ(nvim-treesitter/nvim-treesitter

5-2. インストール後の見た目(nvim-treesitter/nvim-treesitter

nvim-treesitter/nvim-treesitterの見た目
nvim-treesitter/nvim-treesitterの見た目

5-3. インストール(nvim-treesitter/nvim-treesitter

Ubuntuの場合

Ubuntuでnvim-treesitterを使うにはは、build-essentialがインストールされている必要があります。下のコマンドであらかじめインストールしておきましょう。


sudo apt install build-essential

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua


use({
  "nvim-treesitter/nvim-treesitter",
  run = ":TSUpdate",
})

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

:TSUpdateは、最初のインストール時に失敗しますが、その後は問題なく正しく更新されます。

nvim-treesitter/nvim-treesitterがインストールされました。

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にnvim-treesitter/nvim-treesitterを読み込むようにします。


vi ~/.config/nvim/init.lua


require("nvim-treesitter.configs").setup({
  auto_install = true,
  highlight = {
    enable = true,
  },
})

5-4. 完成(nvim-treesitter/nvim-treesitter

 Lua言語のファイルで使用前、使用後を比較してみます。

こちらがtreesitter適用後

 こちらがtreesitter適用前

6. ポップアップのUI

folke/noice.nvimは、メッセージ、コマンドライン、ポップアップメニューのUIをクールでかっこ良くしてくれます。インタフェースが一気に変わるのでインパクトも大きいです。

注意点として、noice.nvimは実験的なプラグインであるため、予期しない問題が発生する可能性があるかもしれませんが、NeovimのUIの見た目や使いやすさやを向上させることは間違いありません。

6-1. 公式リポジトリ(folke/noice.nvim

6-2. インストール後の見た目(folke/noice.nvim

folke/noice.nvimの見た目
folke/noice.nvimの見た目

6-3. インストール(folke/noice.nvim

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua

まずは、公式の通りに設定します。


use({
  "folke/noice.nvim",
  -- 下の5行はinit.luaで記述するのでコメントアウトします
  -- config = function()
  -- require("noice").setup({
        -- add any options here
  -- })
  -- end,
  requires = {
    "MunifTanjim/nui.nvim",
    "rcarriga/nvim-notify",
    }
})

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

~/.config/nvim/init.luaの編集

下のようにinit.luaを編集し、起動時にfolke/noice.nvimを読み込むようにします。


vi ~/.config/nvim/init.lua


require("noice").setup({
  cmdline = {
    format = {
      -- search iconの文字化け対策
      search_down = { kind = "search", pattern = "^/", icon = " ", lang = "regex" },
      search_up = { kind = "search", pattern = "^%?", icon = " ", lang = "regex" },
    },
  },
  lsp = {
    -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
    override = {
      ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
      ["vim.lsp.util.stylize_markdown"] = true,
      ["cmp.entry.get_documentation"] = true,
    },
  },
  -- you can enable a preset for easier configuration
  presets = {
    bottom_search = false, -- use a classic bottom cmdline for search
    command_palette = false, -- position the cmdline and popupmenu together
    long_message_to_split = true, -- long messages will be sent to a split
    inc_rename = false, -- enables an input dialog for inc-rename.nvim
    lsp_doc_border = false, -- add a border to hover docs and signature help
  },
})

bottom_search = falseとし、command_palette = falseとします。

6-4. 完成(folke/noice.nvim

Neovimを立ち上げると、下のようなクールなコマンドラインやメッセージになっているはずです。

:でコマンドモードにして、echo "This is a test"と入力しています。

folke/noice.nvimの見た目
folke/noice.nvimの見た目

右上にメッセージが表示されました。

folke/noice.nvimの見た目
folke/noice.nvimの見た目

7. ファイラー(ファイルブラウザ)

nvim-neo-tree/neo-tree.nvimは、ディレクトリやファイルをツリー構造で表示してくれるプラグインで、ファイラー、ファイルブラウザ、ファイルエクスプローラなどと呼ばれています。

7-1. 公式リポジトリ(nvim-neo-tree/neo-tree.nvim

7-2. インストール後の見た目(nvim-neo-tree/neo-tree.nvim

nvim-neo-tree/neo-tree.nvimの見た目
nvim-neo-tree/neo-tree.nvimの見た目

7-3. インストール(nvim-neo-tree/neo-tree.nvim

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua

まずは、公式の通りに最小限のクイックスタートできる設定をします。2024年2月時点の最新バージョン3系です。特に問題がなければバージョン3系がおすすめです。

バージョン3系のインストール


use {
  "nvim-neo-tree/neo-tree.nvim",
    branch = "v3.x",
    requires = { 
      "nvim-lua/plenary.nvim",
      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
      "MunifTanjim/nui.nvim",
      "3rd/image.nvim",
    }
}

バージョン2系のインストール


use {
  "nvim-neo-tree/neo-tree.nvim",
    branch = "v2.x",
    requires = { 
      "nvim-lua/plenary.nvim",
      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
      "MunifTanjim/nui.nvim",
    }
}

:PackerInstallする

nvimを起動して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

7-4. 使い方(nvim-neo-tree/neo-tree.nvim

バージョン3系の場合は、:Neotree toggleでファイラーが表示されます。もう一度、:Neotree toggleでファイラーが閉じます。

バージョン2系の場合は、:NeoTreeShowToggleでファイラーが表示されます。もう一度、:NeoTreeShowToggleでファイラーが閉じます。

主なデフォルトマッピング

マッピング
<bs>1つ上の階層
.現在選択されているディレクトリをルートディレクトリにする
Pプレビューモードの切り替え
ファイルを選択した状態でPを押すと内容をプレビューする
もう一度Pを押すと消えます
S選択しているファイルを水平分割で開く
s選択しているファイルを垂直分割で開く
t選択しているファイルをタブで開く
aファイルやディレクトリを新規作成する
d選択しているファイルやディレクトリを消す
i選択しているファイルやディレクトリの詳細を表示する
r選択しているファイルやディレクトリの名前を変更する
c選択しているファイルやディレクトリをコピーする
m選択しているファイルやディレクトリを移動する
H隠しファイルの表示を切り替える
主なデフォルトマッピング

7-4. キーマップの設定(nvim-neo-tree/neo-tree.nvim

毎回、:Neotree toggleと入力するのも面倒なので、ショートカットキーを設定してみます。

Leader + nn:Neotree toggleに割り当ててみます。使いやすいキーマップになるように参考してください。


vi ~/.config/nvim/lua/keymaps.lua


local opts = { noremap = true, silent = true }
local term_opts = { silent = true }

-- ここから下を追加します
-- Leaderの設定(スペースキー)
vim.g.mapleader = " "
-- Leader + nnでNeotree toggle
vim.keymap.set("n", "<Leader>nn", ":Neotree toggle<Return>", opts)

Macのoptionとの組み合わせは<M-*>書きます。option + nの場合は、<M-n>です。

8. gitの状態確認

lewis6991/gitsigns.nvimは、git管理下のファイルの行の追加、削除、変更などのサインを表示するnvimのプラグインです。

8-1. 公式リポジトリ(lewis6991/gitsigns.nvim

8-2. インストール後の見た目(lewis6991/gitsigns.nvim

下のキャプチャのように、行の追加、削除、変更などのサインが表示されて便利です。

lewis6991/gitsigns.nvimの見た目
lewis6991/gitsigns.nvimの見た目

8-3. インストール(lewis6991/gitsigns.nvim

~/.config/nvim/lua/plugins.luaの編集


vi ~/.config/nvim/lua/plugins.lua

公式の通りに設定します。packer.nvimを使っている場合は、gitsigns.nvimは直接requireすることができます。


use({
		"lewis6991/gitsigns.nvim",
		config = function()
			require("gitsigns").setup()
		end,
	})

:PackerInstallする

nvimを起動するか、:source %でカレントバッファを再読込して、:PackerInstallするとplugins.luaに書かれていて、インストールされていないプラグインをインストールしてくれます。


:PackerInstall

設定ファイル

前回のNeovimの最初にやっておきたい初期設定の設定ファイルに、今回紹介した7つのプラグインの設定を追加した設定は下のようになります。

init.lua


require("plugins")
require("keymaps")
require("autocmds")
require("options")

vim.cmd([[colorscheme tokyonight-night]])
require("lualine").setup()
require("tabline").setup()
require("mini.indentscope").setup({
	symbol = "▏",
})
require("nvim-treesitter.configs").setup({
	auto_install = true,
	highlight = {
		enable = true,
	},
})
require("noice").setup({
	lsp = {
		-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
		override = {
			["vim.lsp.util.convert_input_to_markdown_lines"] = true,
			["vim.lsp.util.stylize_markdown"] = true,
			["cmp.entry.get_documentation"] = true,
		},
	},
	-- you can enable a preset for easier configuration
	presets = {
		bottom_search = false, -- use a classic bottom cmdline for search
		command_palette = false, -- position the cmdline and popupmenu together
		long_message_to_split = true, -- long messages will be sent to a split
		inc_rename = false, -- enables an input dialog for inc-rename.nvim
		lsp_doc_border = false, -- add a border to hover docs and signature help
	},
})

lua/plugins.lua


local ensure_packer = function()
	local fn = vim.fn
	local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
	if fn.empty(fn.glob(install_path)) > 0 then
		fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
		vim.cmd([[packadd packer.nvim]])
		return true
	end
	return false
end

local packer_bootstrap = ensure_packer()

return require("packer").startup(function(use)
	-- Packer can manage itself
	use("wbthomason/packer.nvim")
	--
	-- この下にインストールするプラグインを記載します。
	use("folke/tokyonight.nvim")
	use({
		"nvim-lualine/lualine.nvim",
		requires = { "nvim-tree/nvim-web-devicons", opt = true },
	})
	use("nvim-tree/nvim-web-devicons")
	use("kdheepak/tabline.nvim")
	use("echasnovski/mini.indentscope")
	use({
		"nvim-treesitter/nvim-treesitter",
		run = ":TSUpdate",
	})
	use({
		"folke/noice.nvim",
		config = function()
			require("noice").setup({
				-- add any options here
			})
		end,
		requires = {
			"MunifTanjim/nui.nvim",
			"rcarriga/nvim-notify",
		},
	})
	use({
		"nvim-neo-tree/neo-tree.nvim",
		branch = "v3.x",
		requires = {
			"nvim-lua/plenary.nvim",
			"nvim-tree/nvim-web-devicons",
			"MunifTanjim/nui.nvim",
			"3rd/image.nvim",
		},
	})
	use({
		"lewis6991/gitsigns.nvim",
		config = function()
			require("gitsigns").setup()
		end,
	})
end)

lua/keymaps.lua


local opts = { noremap = true, silent = true }
local term_opts = { silent = true }

-- Leader keyの設定(スペースキー)
vim.g.mapleader = " "

-- bufferの移動
vim.keymap.set("n", "<C-n>", ":bnext<Return>", opts)
vim.keymap.set("n", "<C-p>", ":bprevious<Return>", opts)

-- Leader + nnでNeotree toggle
vim.keymap.set("n", "<Leader>nn", ":Neotree toggle<Return>", opts)

-- Packer Syns
vim.keymap.set("n", "<Leader>Ps", ":PackerSync<Return>", opts)

上のキーマップの設定では、Leaderキーをスペースに設定しています。また、Leaderキー + PsでPackerSyncを割り当てています。

lua/options.lua


-- lang
vim.cmd('language en_US') -- 表示言語を英語にする
-- vim.cmd('language en_US.utf8') -- 表示言語を英語にする(Linux)


-- ファイル
vim.opt.fileencoding = "utf-8" -- エンコーディングをUTF-8に設定
vim.opt.swapfile = false -- スワップファイルを作成しない
-- vim.opt.helplang = "ja" -- ヘルプファイルの言語は日本語
vim.opt.hidden = true -- バッファを切り替えるときに
                      --ファイルを保存しなくてもOKに

-- カーソルと表示
-- vim.opt.cursorline = true -- カーソルがある行を強調
-- vim.opt.cursorcolumn = true -- カーソルがある列を強調

-- クリップボード共有
vim.opt.clipboard:append({ "unnamedplus" }) -- レジスタとクリップボードを共有

-- メニューとコマンド
vim.opt.wildmenu = true -- コマンドラインで補完
vim.opt.cmdheight = 1 -- コマンドラインの表示行数
vim.opt.laststatus = 2 -- 下部にステータスラインを表示
vim.opt.showcmd = true -- コマンドラインに入力されたコマンドを表示

-- 検索・置換え
vim.opt.hlsearch = true -- ハイライト検索を有効
vim.opt.incsearch = true -- インクリメンタルサーチを有効
vim.opt.matchtime = 1 -- 入力された文字列がマッチするまでにかかる時間

-- カラースキーム
vim.opt.termguicolors = true -- 24 ビットカラーを使用
vim.opt.background = "dark" -- ダークカラーを使用する

-- インデント
vim.opt.shiftwidth = 4 -- シフト幅を4に設定する
vim.opt.tabstop = 4 -- タブ幅を4に設定する
vim.opt.expandtab = true -- タブ文字をスペースに置き換える
vim.opt.autoindent = true -- 自動インデントを有効にする
vim.opt.smartindent = true -- インデントをスマートに調整する

-- 表示
vim.opt.number = true -- 行番号を表示
vim.opt.relativenumber = true -- 相対行番号を表示
vim.opt.wrap = true -- テキストの自動折り返しを無効に
vim.opt.showtabline = 2 -- タブラインを表示
                        -- (1:常に表示、2:タブが開かれたときに表示)
vim.opt.visualbell = true -- ビープ音を表示する代わりに画面をフラッシュ
vim.opt.showmatch = true -- 対応する括弧をハイライト表示

-- インタフェース
vim.opt.winblend = 0 -- ウィンドウの不透明度
vim.opt.pumblend = 0 -- ポップアップメニューの不透明度
vim.opt.showtabline = 2 -- タブラインを表示する設定
vim.opt.signcolumn = "yes" -- サインカラムを表示

---- 行番号の色を変更(色は適宜変更してください)
vim.cmd("highlight LineNr guifg=#8a70ac")

-- カーソルの形状
vim.o.guicursor = "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20"

覚えておきたいカーソル移動系のコマンド

基本的なカーソル移動

コマンド説明
h左に移動
j下に移動
k上に移動
l右に移動
0行の先頭に移動
$行の末尾に移動
^行の最初の非空白文字へ移動

単語単位のカーソル移動

コマンド説明
w次の単語の先頭へ
W空白で区切られた次の単語の先頭へ
b前の単語の先頭へ
B空白で区切られた前の単語の先頭へ
e次の単語の末尾へ
E空白で区切られた次の単語の末尾へ

行単位・段落単位のカーソル移動

コマンド説明
ggドキュメントの先頭へ
Gドキュメントの末尾へ
{前の段落へ
}次の段落へ
H画面の上端へ
M画面の中央へ
L画面の下端へ

文字検索で移動

コマンド説明
f+ {char}文字{char}まで移動
F+ {char}文字{char}まで逆方向に移動
t+ {char}文字{char}の前の文字まで移動
T+ {char}文字{char}の後の文字まで逆方向に移動
;文字検索の移動を繰り返す
,文字検索の移動を逆方向に繰り返す

スクロール

コマンド説明
ctrl+f1画面分下へスクロール
ctrl+b1画面分上へスクロール

サーチに関連する移動

コマンド説明
/[キーワード]下方向へキーワードを検索
?[キーワード]上方向へキーワードを検索
n同方向へ次の検索結果へ
N反対方向へ次の検索結果へ

マッチする括弧・ブラケットへの移動

コマンド説明
%カーソル位置の括弧やブラケットの対になるものへジャンプ

マーク・ブックマーク関連

コマンド説明
mxxに現在位置をマーク(xは任意の英字)
'xマークxの行の先頭にジャンプ:'は(shift+7
`xマークxの位置へジャンプ:`は(shift+@

その他の移動

コマンド説明
ctrl+u半画面分上へスクロール
ctrl+d半画面分下へスクロール
ctrl+o前の位置へ戻る
ctrl+ictrl + oの逆の動作

最後に

最後まで読んでいただきありがとうございます。Neovimの最初にやっておきたい初期設定はいかがでしたでしょうか。NeovimやVimは自分好みにとことんカスタマイズできる使いやすいテキストエディターです。最初は独特の操作を覚える必要がありますが、一度覚えると無くてはならない存在になり、魅力的なエディターになることは間違いないのでぜひ活用してみてください。

この記事の設定後にはLSPの設定がおすすめです。下の記事です。

究極のコーディング体験:NeovimとHHKBで高める生産性

neovim関連記事

Neovimをかっこ良くクールに使う設定

定番おすすめ記事

ターミナルを活用する記事をまとめました。ターミナルの活用方法やコマンドの使い方などは、UbuntuなどのLinuxでも活用できます。Macの大元がUnix系統であるからこそです。

カテゴリー:
関連記事