CLIツール

【Vim/Neovimオプション】setコマンドとオプション一覧

reisuta

Webエンジニア | 20代中盤 | 大学時代はGmailすら知らないIT音痴でプログラミングとは無縁の生活を送る → 独学でプログラミングを学ぶ → Web系受託開発企業にエンジニアとして就職 → Web系自社サービス企業に転職 | 実務未経験の頃からVimを愛好しており、仕事でもプライベートでも開発はVimとTmuxを使っているので、VSCodeに疎いのが最近の悩み。何だかんだでやっぱりRubyが好き。

Vimを使うにあたって、.vimrcの設定は欠かせないが、
まず始めに設定したいのは、setのオプション関係でしょう。

本記事では、Vimを使い始めたら、
まずは、設定したいオプションの紹介とsetの使い方などを解説します。

文字より動画で視聴したい方は、
下記が本記事の内容を解説した動画になります。

Vimの導入をまだしていない方は、
下記の動画で完全解説しているので、
ご参考ください。

下記動画一本で、Vimの基本事項はマスターできます。

setコマンドとは何か?

setとは、コマンドの一種で、vimに様々な設定を適用させることができるものです。
そして、この適用可能な設定をoptionと呼び、
setは、optionを設定するコマンドです。

オプションの一覧は、
下記のサイトなどが詳しいです。

options - Vim日本語ドキュメント (vim-jp.org)

上記のドキュメントを見るとわかりますが、
笑っちゃうぐらいたくさんのオプションがあります。

中には、いつ使うねんって言う感じの
オプションもあって、面白いので、
暇な人は読んで見てください。

さて、脱線しましたが、
具体的な使い方としては、

:se[t] {option} 
:se[t] no{option}

のようにコマンドモードで使用すると、
そのオプションが有効になります。

なお、setと打たないで、
seだけでも適用できます。

また、設定を無効にしたい場合h、
上記にあるように、noをoptionの前につけるとできます。

optionの末尾に、?をつけると、
その設定が有効かどうかの確認ができます。

代表的なオプション

number

まず最初に設定したいのは、
やはりこれでしょう。

:set numberとすることで、
行番号を付与することができる。

コーディングをする以上、
行番号はやはりないと不便なもの。

このように常に適用したいやつとかに関しては、
上記のようにいちいちコマンドラインモードで有効にするのではなく、
.vimrcに記載してしまいましょう。

set number

ちなみに、カーソルからの相対番号にする設定も可能で、
その場合は、

:set number rnu

のようにすると有効にできる。

なんか、グラフ理論っぽい、番号配置になっている気がします。

ちなみに、numberについては、
省略形としてnuも使えます。

showmode

これを設定すると、
現在のモードがステータス行に表示されるようになる。

:set showmode

下にINSERTと表示されているのがわかります。

こちらの設定も適用させないメリットはないと思うので、
ぜひとも設定したいですね。

まあそうは言っても、Vimの場合、
デフォルトでONになっているオプションではありますが。

省略形はsmdになります。

set cursorline

カーソル行をハイライトします。

15行目がハイライトされていますね。

設定しておいた方が、便利で見やすいと
推奨です。

省略形は、culですね。

set cursorcolumn

こちらは、cursorlineの列バージョンです。

カーソル列をハイライトします。
上記の画像だと、setのeの列、二列目がハイライトされていますね。

省略形は、cucです。

set incsearch

何も設定していない状態で検索をしても、
マッチしている部分がハイライトされないため、
検索ができているのかわかりにくい。

ちなみに、検索は、
コマンドモードで/を入力して、
検索したい文字を入力してエンターで検索できます。

そこで、下記のように

:set incsearch

と設定すると、

/setと検索した際にハイライトされる。

見やすくなるかと思います。

またこちらは、検索したい文字を入力している最中でも
ハイライトされるため、検索を多用する際は、
非常に便利です。

省略形は、isです。

ハイライトされているときに、CTRL-L を押すと、その後ろの文字が
コマンドラインへ入力されます。

上記の画像の場合、一度CTRL-Lを押すと、
スペースがコマンドラインへ入力され、もう一度押すと、
s、その次は、hというふうに入力されます。

set hlsearch

上記の、incsearchだけだと、
マッチした部分すべてをハイライトしてくれないため、
こちらの設定で検索にマッチした部分をすべてハイライトしてくれる。

Plugと検索したら、マッチしている部分がすべてハイライトされた

人によるかもしれませんが、
やはりこちらの方が見やすいですかね?

set shiftwidth

vimでは、>>や<<と入力すると
インデントを適用することができる。
その際に、デフォルトでどれぐらいインデントさせるかを設定するのが、
このshiftwidthになる。

set shiftwidth=2で設定して>>を実行すると二文字ずれるのがわかる

デフォルト設定だと8になっているが、
ほとんどの場合、8個分もインデントを入れたいケースはないかと思われる。

なので、こちらも2などで設定することが多い印象です。

オプションを.vimrcにまとめる

さて、色々のオプションを紹介しましたが、
numberのところで触れた通り、
いちいちコマンドラインモードで有効にするなんていう、
かったるいことはできません。

なので、.vimrcに記載して、
デフォルト設定にしてしまいましょう。

set number
set showmode
set shiftwidth=2
set incsearch
set hlsearch
set cursorline
set cursorcolumn

となる。

ちなみに、色々なオプションを有効にしていると、
たまには素のVimで修行したくなるときがあります。

そんなときは、

vim -u NONE .vimrc

のようにすると、
例えば上記で設定したオプションなどは、
無効にされた初期状態で開けます。

本記事では、やや素のVimよりの話でしたが、
こちらの記事のようなプラグインの紹介なども行っているので、
ご参考ください。

Vim/Neovimプラグイン
参考【Vim/NeoVimプラグイン】これだけは入れておきたいプラグイン10選

プラグインをどれだけ入れるかは、その人の思想なども関係するので、一概にこれがいいというのはないかもしれません。 プラグインを全く入れない人もいれば、100個以上入れる人もいます。 ただそれでも、これだ ...

続きを見る

  • この記事を書いた人
  • 最新記事

reisuta

Webエンジニア | 20代中盤 | 大学時代はGmailすら知らないIT音痴でプログラミングとは無縁の生活を送る → 独学でプログラミングを学ぶ → Web系受託開発企業にエンジニアとして就職 → Web系自社サービス企業に転職 | 実務未経験の頃からVimを愛好しており、仕事でもプライベートでも開発はVimとTmuxを使っているので、VSCodeに疎いのが最近の悩み。何だかんだでやっぱりRubyが好き。

おすすめ記事はこちら

Vim/Neovimプラグイン 1

プラグインをどれだけ入れるかは、その人の思想なども関係するので、一概にこれがいいというのはないかもしれません。 プラグインを全く入れない人もいれば、100個以上入れる人もいます。 ただそれでも、これだ ...

VimとNeovimの比較 2

本記事では、VimとNeovimの違いについて、解説します。 VimとNeovimの違いについては、普段頻繁にVimなどを使う方でなければ、正直、あまり気にしなくてもいいかなと思います。 ただ、Vim ...

Ruby変数やすべてがオブジェクトについて 3

本記事は、Rubyの基礎文法である、変数や真偽値、論理演算子に触れると同時に、「すべてがオブジェクト」というRubyの特徴的な思想についても解説します。 この思想は、Rubyの文法の根幹になっているの ...

4

エンジニアにおすすめの技術書 書籍学習は、エンジニアの嗜みみたいなところがありますが、 良書というものは、意外とそこまで多くもありません。 そこで本記事では「技術書マニアの筆者が厳選した技術書20選」 ...

5

エンジニアになるには? プログラミングは、専門性が高く自分一人で勉強するのが大変に感じることも多いですよね。 そこで本記事では「おすすめのプログラミングスクール5選」を特徴と、現役エンジニア目線で優れ ...

-CLIツール