こんにちは。ナミレリです。前回のNeovimの初期設定の記事に続き、今回はNeovimの見た目をクールにかっこ良くするプラグインやそのプラグインの設定方法を紹介します。見た目優先です。
前回の記事はこちらです。前回はNeovimの初期設定を中心に紹介しています。
Neovimの初期設定
この記事の設定後にはLSPの設定がおすすめです。下の記事です。
NeovimでLSPを構築
NeovimでTelescopeを設定
この記事はこんな人にオススメ
- VSCode以外にもテキストエディタを試してみたい
- プログラミング初心者で、効率的なテキストエディタを使いたい方
- Vimに興味があり、よりモダンで拡張性に富んだエディタを試してみたい方
- すでにNeovimを使い始めたが、より深く活用したいと考えている方
- MacBook Pro 14インチ M1Max(メモリ32GB)
- macOS Ventura 13.3.1
- Parallels Desktop 18 for Mac(Parallelsの公式サイト)
- Neovim NVIM v0.10.0-dev-1444
- Ubuntu22.10
- Neovim NVIM v0.9.0-dev-613
目次
はじめに
Neovimは、Vimの強力な機能を継承しつつ、拡張性とパフォーマンスを追求したエディタです。そして、その魅力は数多くのプラグインが支えています。プラグインを利用することで、Neovimはまるで無限の可能性を秘めた宝箱のように、目を見張るほどの変貌を遂げます。
この記事では、見た目をクールにかっこ良くするプラグインから紹介します。
みなさんのNeovimをカスタマイズし、究極にモチベーションが上がるエディタ環境を手に入れてください。
前回はNeovimの初期設定を中心に紹介しています。前回の記事はこちらです。
見た目をクールに!デザイン・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 | シンタックスハイライトする |
ポップアップUI | folke/noice.nvim | ポップアップメニューのUI |
ファイラー | nvim-neo-tree/neo-tree.nvim | ディレクトリやファイルをツリー構造で表示 |
gitのサイン表示 | lewis6991/gitsigns.nvim | gitの状態を可視化する |
それでは、ひとつひとつ紹介していきます。まずはカラースキームです。
1. カラースキーム
まずは、クールで美しいおすすめのカラースキームの紹介です。
私はfolke/tokyonight.nvimのカラースキームを使っています。下のキャプチャーはTokyoNightの3つあるダーク系の中の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です。
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)
2-3. インストール(nvim-lualine/lualine.nvim)
では、簡単な設定で美しく機能的なステータスラインを実現するnvim-lualine/lualine.nvimをインストールします。パッケージマネジャーはpacker.nvimを使います。
~/.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.nvimとnvim-tree/nvim-web-deviconsがインストールされました。
~/.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を立ち上げると、下のようなクールなステータスラインになっているはずです。
3. タブライン
次はタブラインをクールにかっこ良くします。タブラインは画面上部の部分で、バッファ名が表示される部分です。
kdheepak/tabline.nvimをインストールすると、タブラインがタブっぽく扱うことができ、また見た目に関しては、先程インストールしたlualine.nvim(ステータスラインのカスタマイズ)に合わせることができます。
kdheepak/tabline.nvimは、簡単な設定で美しく機能的なタブラインを実現します。
3-1. 公式リポジトリ(kdheepak/tabline.nvim)
3-2. インストール後の見た目(kdheepak/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を立ち上げると、下のようなクールなタブラインになっているはずです。
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)
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)
5-3. インストール(nvim-treesitter/nvim-treesitter)
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
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をクールでかっこ良くしてくれます。インタフェースが一気に変わるのでインパクトも大きいです。
6-1. 公式リポジトリ(folke/noice.nvim)
6-2. インストール後の見た目(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
},
})
6-4. 完成(folke/noice.nvim)
Neovimを立ち上げると、下のようなクールなコマンドラインやメッセージになっているはずです。
:でコマンドモードにして、echo "This is a test"と入力しています。
右上にメッセージが表示されました。
7. ファイラー(ファイルブラウザ)
nvim-neo-tree/neo-tree.nvimは、ディレクトリやファイルをツリー構造で表示してくれるプラグインで、ファイラー、ファイルブラウザ、ファイルエクスプローラなどと呼ばれています。
7-1. 公式リポジトリ(nvim-neo-tree/neo-tree.nvim)
7-2. インストール後の見た目(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)
8. gitの状態確認
lewis6991/gitsigns.nvimは、git管理下のファイルの行の追加、削除、変更などのサインを表示するnvimのプラグインです。
8-1. 公式リポジトリ(lewis6991/gitsigns.nvim)
8-2. インストール後の見た目(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+f | 1画面分下へスクロール |
ctrl+b | 1画面分上へスクロール |
サーチに関連する移動
コマンド | 説明 |
---|---|
/[キーワード] | 下方向へキーワードを検索 |
?[キーワード] | 上方向へキーワードを検索 |
n | 同方向へ次の検索結果へ |
N | 反対方向へ次の検索結果へ |
マッチする括弧・ブラケットへの移動
コマンド | 説明 |
---|---|
% | カーソル位置の括弧やブラケットの対になるものへジャンプ |
マーク・ブックマーク関連
コマンド | 説明 |
---|---|
mx | xに現在位置をマーク(xは任意の英字) |
'x | マークxの行の先頭にジャンプ:'は(shift+7) |
`x | マークxの位置へジャンプ:`は(shift+@) |
その他の移動
コマンド | 説明 |
---|---|
ctrl+u | 半画面分上へスクロール |
ctrl+d | 半画面分下へスクロール |
ctrl+o | 前の位置へ戻る |
ctrl+i | ctrl + o の逆の動作 |
最後に
最後まで読んでいただきありがとうございます。Neovimの最初にやっておきたい初期設定はいかがでしたでしょうか。NeovimやVimは自分好みにとことんカスタマイズできる使いやすいテキストエディターです。最初は独特の操作を覚える必要がありますが、一度覚えると無くてはならない存在になり、魅力的なエディターになることは間違いないのでぜひ活用してみてください。
この記事の設定後にはLSPの設定がおすすめです。下の記事です。
NeovimとHHKBの組み合わせは、コーディング体験を最適化し、より生産的で満足のいくものにするための最高のツールです。コーディングの楽しさと効率性を新たなレベルへと引き上げてくれます。
neovim関連記事
Neovimをかっこ良くクールに使う設定