初心者プログラマがガチムチプログラマを目指すぶろぐ

2017年の春から本格的にプログラミングを学び始めた学生です!よろしければ閲覧、ご指導のほどよろしくお願いいたします!!

vimをカスタマイズしてやったわ[set編]

筆者が設定しているsetコマンドを逐一説明して自分が忘れなくするための記事です

vimのsetコマンド

vimには4つのモードがあります。

  • ノーマルモード
  • インサートモード
  • コマンドモード
  • ヴィジュアルモード

これらのうちのコマンドモードにおいて

:set ~~~

となるコマンドが多数存在します。例えば、

:set number

と打ち込むと、左端に行数が出現します。

:set nonumber

と打ち込むと消えます。
おおおぉぉぉ!便利!ってなるコマンドが多数存在するのですが、vimを起動するたびに無数のsetコマンドなんて打ってられるだろうか?(いや、無理(反語))

そこで

前回も少し登場しました ~/.vimrcに気に入ったsetコマンドは打ち込んでいきます。~/.vimrcとはvimが起動されるたびに最初に読み込まれるファイルなので、ここに

:set number
:set ruler

とか打ち込んでおくと起動した時にはすでにnumberがsetされてしまっているということになるのです。これは、まさに、便利!

vimのsetと私

今回はここからスタートです笑

""""""""""""""""""""""↲
" plugin関係なし↲
""""""""""""""""""""""↲
" vimの見た目系↲
set ruler↲
set number↲
set title↲
set showcmd↲
syntax on↲
" 空白系↲
set autoindent↲
set smartindent↲
set shiftwidth=2↲
set expandtab↲
set tabstop=4↲
set ambiwidth=double↲
set list↲
set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%↲
" カーソル系↲
set whichwrap=b,s,[,],<,>↲
set backspace=indent,eol,start↲
set virtualedit=block↲
" ファイル操作系↲
set noswapfile↲
set hidden↲
set wildmenu↲
set backupdir=$HOME/.vimbackup↲
" 文字列系↲
set nrformats-=octal↲
" 検索系↲
set ignorecase↲
set smartcase↲
set hlsearch↲
set incsearch↲
set wrapscan↲
""""""""""""""""""""""↲

見た目系

ruler

右下に現在どの位置にいるかを示してくれる欄が出現します。便利なのでとりあえず入れとけ系ですね。

number

とりあえず入れとけ系第2弾ですね。左端に行数を入れてくれます。問題点を強いていえば、tmuxのコピーモードの時に邪魔です。

title

とりあえず入れとけ系第3弾!その名の通り開いているファイル名を表示してくれます

showcmd

確か一番下にちゃんとコマンドを表示するとかそんなんだった気がするけど…すみません!勉強不足というか、なんというか、とりあえず入れとけ系第4弾!!笑

空白系

autoindent

前の行のインデントと自動で合わせてくれます。わいは毎回tab押したいんやーーーーー!って人はオフにしておきましょう。デフォルトでonだそうです

smartindent

前の行の末尾の文字で勝手に判断してインデントをつけてくれます。これってautoindentと競合しないんだな。

shiftwidth=2

自動インデントでずれる幅です。師匠の2を受け継ぎました。

expandtab

tabを押してできた空白を半角スペースにするというものです。最初から書いてたんでアレなんですけど、この設定なかったらtab空白みたいな馬鹿でかい空白が生まれるんですかね。

tabstop=4

これはtabキーを押した時に半角スペース何個入れるかです。師匠の4を受け継ぎました。

ambiwidth=double

全角スペースを半角スペース二つに置き換える的なやつだった気がするぜ!

list

空白やら改行やらを可視化してくれるのである!地味に便利!

listchars=tab:>>-,trail:-,eol:↲,extends:>>,precedes:<<,nbsp:%

長い!空白文字を如何様にして可視化するかというやつです!

カーソル系

whichwrap=b,s,[,],<,>

折り返しでカーソル移動ができる!行頭でh押したら1行上の末尾に行ける!

backspace=indent,eol,start

backspaceキーをどこでも使えるようにするにはこの設定を入れねばならぬのだよ

virtualedit=block

空白行にもカーソルを移動できるようになるとかそっち系!よくわかってない!

ファイル操作系

noswapfile

なんかvimを使ってるとvimが勝手にswapファイルなるものを生成してるんですよ。鬱陶しくなったら作るな!バカ!と言ってやりましょう。

hidden

重複してファイルを開ける的なやつだった気がしますが、ちゃんと恩恵に預かったことはないです。

wildmenu

多分なんですけど、:eとかでファイル探してるとかに、中途半端なところでtab打って限界まで補完してくれた後、その後ろどうするって表示してくれるやつですね。便利

backupdir=$HOME/.vimbackup

backupファイルを作る場所を指定しております

文字列系

nrformats-=octal

0スタートの数字も10進数で扱ってください。普通の人間は16進数など使わんですよvimさん。

ignorecase

検索をかける時に大文字小文字の区別をなくしてくれるらしい!

smartcase

これをignorecaseと一緒に書いておけば、大文字を書いた時だけ大文字小文字を区別してくれるらしい!

hlsearch

high light searcdです。検索結果がハイライトされます

incsearch

インクリメントサーチができます。Google検索みたいに、Enter押す前から書き込まれてる分で検索を始めるやつです。

wrapscan

最後の検索結果から次に行くと最初の検索結果に飛びます。

以上

サクッと書くつもりが結構多くて、
しかもとりあえず書いてた的なの多すぎてこんな冗長で中身のない記事を書く結果となってしまいました。反省していま…せん。忘備録なので!笑

次回はプラグイン編ですかね!