Vim に入門してみた

9474 ワード

はじめに

この記事では、1週間前に Vim に入門してみた私が、入門する際に参考にした記事、私の Vim の設定ファイル、および設定ファイルの管理方法をメモとして残します。
これから Vim に入門する方、.vimrc(Vim の設定を記述するファイル)や dein.vim で扱う tomlファイル(Vim に追加するプラグインを管理するファイル)を参考にしたい方などの助けになればと思います。

Vim についての所感

今まで

私は、ターミナルからファイルを編集するときには nano を使用していました。
何故なら、nano では単にファイルを編集するという目的を、とにかく簡単に達成できるからです。
実際に nano を使用してファイルを編集するときに最低限必要となるコマンドは、ファイルの書き込みを保存するための C-o とファイルの編集を終了するための C-x の2つです。
nano を使用していたときも Vim については何となくは知っていましたが、知っている Vim のコマンドが少なく(i, :wq, Esc など)、また、Vim 専用のコマンドを覚える学習コストも高そうに思えたので、敢えて Vim を使おうとは思いませんでした。

Vim を勉強し始めてから

当初想定したよりも、Vim のコマンドは覚えやすいことが分かりました。
何故なら、Vim のコマンドを覚える ≠ 独立した数多のコマンドを覚えると分かったからです。
実際にVim のコマンドは、独立したコマンドではなく、いくつかのコマンドの組合せから構成されることがあります。
例えば、カーソル上の programming のような単語を削除する diw コマンドが挙げられます。
ここで、diw とは、操作を示す d(delete)と操作の対象を示す iw(inner word)の組合せから成ります。
このように Vim のコマンドは、いくつかのコマンドから構成されていることが多く、コマンド自体を丸暗記する必要が少なくなります。
そのため、主要なコマンドなどについては、思っているよりも直ぐに覚えることができると思います。

現在

何故人が Vim を推すのか分かるようになり、この記事も Vim で書くようになりました。
が、VSCode NeoVim拡張 使うまでに詰まったところという記事を見つけ、
VSCode + NeoVim拡張という形に一旦落ち着きました。VSCode と Vim コマンド の両方の利点を活かせているように感じます。
まだ Vim 初心者の私は、Vim それ自体というよりは、Vim のコマンドが好きなのかもしれません。

Vim に入門する際に参考にした記事

私は、以下の順番で Vim に入門しました。

  1. Vim のコマンドを覚える
  2. Vim をより便利にするための設定を書く
  3. Vim をより便利にするためのプラグインをインストールする

Vim のコマンドを覚える

以下の順番で記事を読みました。
どの記事も面白く分かりやすいので、楽しみながら読めると思います。

  1. 知識0から始めるVim講座
  2. vimを使うとき十字キーで移動して、vimmerに殺されるその前に
  3. Vim幼稚園からVim小学校へ
  4. 脱初心者を目指すなら知っておきたい便利なVimコマンド25選 (Vimmerレベル診断付き)

Vim をより便利にするための設定を書く

一通りコマンドを覚えた後は、少しは Vim は便利だと感じるかもしれません。
しかし、現状の Vim では、VSCode のようなエディタとは、かけ離れた状態にあると思います。
例えば、画面左端には、ファイルの行数が表示されていません。
また、コマンドに割り当てられたキーを、自分好みにカスタマイズしたくなるかもしれません。
このようなときに活躍するのが、.vimrc です。

最初は、人の .vimrc を真似れば良いと思います。
私が最初に参考にしたのは、何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜です。
一つ一つの設定にコメントが書かれており、初心者の私にもとても分かりやすかったです。
また、コマンドのキーマッピングに関しては、【vimめも】 10. マッピングがとても参考になりました。

私の Vim の .vimrc に関しては、この記事の最後に書いています。よければご参照ください。

Vim をより便利にするためのプラグインをインストールする

.vimrc に設定を書くことで、Vim がより便利になったと思います。
しかし、まだ VSCodeのようなエディタとはかけ離れた状態にあると思います。
例えば、現状の Vim では画面左端にファイルツリーを表示したり、文字列によるファイルを検索を行ったりすることが、簡単にはできません。
そこで、Vim にプラグインを追加し、このような機能を実現します。

dein.vim で Vim のプラグインを管理する

Vim のプラグインを管理する方法は色々ありますが、この記事では dein.vim を用いる方法を紹介します。

dein.vim のインストール

  • 下記のコマンドを実行し、dein.vim をインストール

    • $ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
    • $ sh ./installer.sh ~/.cache/dein
  • 下記のコマンドを実行し、dein.vim で使用するディレクトリ・ファイルを作成

    • $ mkdir ~/.vim/dein
    • $ touch ~/.vim/dein/toml/dein.toml
    • $ touch ~/.vim/dein/toml/dein_lazy.toml

.vimrc に dein.vim でプラグイン管理するための設定を書く

.vimrc
let s:dein_dir = expand('~/.cache/dein')
let s:toml_dir = expand('~/.vim/dein/toml')
let s:toml = s:toml_dir . '/dein.toml'
let s:lazy_toml = s:toml_dir . '/dein_lazy.toml'

set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim

call dein#begin(s:dein_dir)

call dein#load_toml(s:toml, {'lazy': 0})
call dein#load_toml(s:lazy_toml, {'lazy': 1})

call dein#end()

if dein#check_install()
  call dein#install()
endif

dein.toml に追加するプラグインを書く

dein.toml の記述方法は、deinでのvimのプラグイン管理の最終形が参考になりました。
私の上の設定には、dein_lazy.toml に関する記述がありますが、これは遅延ロードによる Vim の起動速度の高速化を行うための設定です。不要であれば、削除しても大丈夫です。
Vim の起動速度が気になりだしたら、触れてみると良いと思います。
私の場合は、今の所 Vim の起動速度は気になっていないので、まだ足を踏み入れていません。

便利だと感じたプラグイン

以下は、私が便利だと感じたプラグインです。特に fzf はターミナルからも利用できるのでお勧めです。

  • VimをVSCodeライクにするで紹介されているプラグイン

    • vim-airline:ステータ表示
    • vim-code-dark:カラースキームをVSCodeライクに
    • fern.vim:ファイルツリーを表示
    • fzf.vim:ファイル検索
  • その他

Vim の設定を Git で管理する

私は 画像のように Vim の設定を ~/dotfiles/.vim にまとめています。私の dotfiles
dotfiles_vim
また、.vimrc に直接設定を書くのではなく、設定ごとに.vimファイルを作成し、それらを .vimrc から読み込む構成にしています。
Git で管理するのは ~/dotfiles 以下です。
setup.sh を実行し、画像のように ~/dotfiles/.vim から ~/.vim~/.vimrc などにシンボリックリンクを貼るようにしています。
vim

おわりに

この記事では、1週間前に Vim に入門してみた私が、入門する際に参考にした記事、私の Vim の設定ファイル、および設定ファイルの管理方法をメモとして残しました。
私の Vim の設定は GitHub に上げているので、よければご参照ください。
私のようにこれまで nano を使っていた人が、Vim を使い始めるきっかけを作れたら良いなと思います。