技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

会社で支給されたPCにvim環境を整え、久しぶりにvimを使っていたところ、いろいろと忘れていることがあったのでメモ。
 

まずはgithubからneobundleを入れる

vimをインストールしたらまずは以下のURLからgit cloneしてneobundleを入れる。
https://github.com/Shougo/neobundle.vim.git
 
neobundleが入ったら、vimrcに以下のコードを記述する。
この命令ではneobundleからgitを使うためにパスを通し、pluginsディレクトリの中のbundleディレクトリからneobundle.vimを呼び出すようにしている。

let $PATH = $PATH . ';C:\Program Files\Git\bin'
set nocompatible
filetype off
if has('vim_starting')
  set runtimepath+=$VIMpluginsbundleneobundle.vim
  call neobundle#rc(expand('$VIMpluginsbundle'))
endif

 
上記を記述できたら更に以下の内容をvimrcに記述する。以下はneobundleを通してプラグインをインストールする為のコード。
ここら辺は好みに合わせてインストールするプラグインを変更しても良い。

NeoBundle 'Shougo/neobundle.vim'
NeoBundle 'Shougo/vimproc'
NeoBundle 'Shougo/vimshell'
NeoBundle 'Shougo/neocomplcache'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/vimfiler'
NeoBundle 'kien/ctrlp.vim'
NeoBundle 'thinca/vim-quickrun'
NeoBundle 'scrooloose/syntastic'

filetype plugin indent on
filetype indent on
syntax on

 
以上の記述が終わったらvimrcを保存し、vimから:NeoBundleInstallコマンドを叩くと一括でプラグインをインストールすることができる。
 

スワップファイルとバックアップファイルの保存場所を決める

以下のコードをvimrcに記述する。以下はスワップファイルとバックアップファイルの保存場所を指定するコード。
 

set backupdir=$HOME/.vim/backup
set browsedir=buffer
set directory=$HOME/.vim/backup,c:\temp
set history=1000

 
最低限の設定はひとまずこれで終了。これ以降のvimrcやgvimrcの設定はこちらに記載している。
 

vimの基本操作

vimは習得コストが高いことが知られており、いろいろな人のアドバイスを受けながらやっと基本的な操作方法を身に着けかけていたにも関わらず、半年間ものニート生活を満喫し過ぎたせいでほとんどの操作を忘れていた。この際なので思い出しながら操作方法をメモしてみようと思う。
 
※以下、<c-a>はCtrlとaの同時押し, <s-a>はShiftとaの同時押し, <M-a>はAltとaの同時押しを指す。
 

Vimの基本操作
キー 説明
<Esc>,<C-[> ノーマルモードへと移行する。Esc、もしくはCtrl + [で行う。
i,a ノーマルモードから挿入モードへと移行する。iではカーソル前、aではカーソル後から挿入する。
: ノーマルモードの状態から入力する。コマンド入力を行うことができる。:wで上書き保存(writeのw)、:qでファイルを閉じる(quitのq)、:wq!等とすると強制的に上書き保存を行いつつファイルを閉じることができる(!を付けることで強制することができる)。ちなみに画面分割した全てのウィンドウを閉じたいときは:qaとする。
v ノーマルモードからビジュアルモードへと移行する。視覚的に分かりやすく文字を選択することができる。
V ノーマルモードからビジュアルラインモードへと移行する。視覚的に分かりやすく行を選択することができる。
<C-v> ノーマルモードからビジュアルブロックモードへと移行する。視覚的に分かりやすく矩形で選択することができる。
/ ノーマルモードの状態から前方検索モードへと移行する。前方検索モードでは、検索ワードを入力した後に[Enter]を押すことで検索を確定させる。検索確定後は、”n”で検索、”N”で逆順検索を行うことが出来る。
? ノーマルモードの状態から後方検索モードへと移行する。後方検索モードでは、検索ワードを入力した後にEnterを押すことで検索を確定させる。検索確定後は、nで順検索、Nで逆順検索を行うことが出来る。
* ノーマルモードの状態で入力する。カーソルの乗っている単語を前方検索モードにて検索する。
h,j,k,l ノーマルモードの状態で入力する。カーソルを左,下,上,右に動かす。
H,L ノーマルモードの状態で入力する。Hで見えている範囲の一番上にカーソルを移動。Lで見えている範囲の一番下にカーソルを移動。
w,W ノーマルモードの状態で入力する。単語単位で次の単語の最初の文字にカーソルを移動。
e,E ノーマルモードの状態で入力する。単語単位で次の単語の最後の文字にカーソルを移動。
b,B ノーマルモードの状態で入力する。単語単位で前の単語の最初の文字にカーソルを移動。
J ノーマルモードの状態で入力する。Jでカーソル上の行の改行を削除。
K ノーマルモードの状態で入力する。Kでカーソル上のフレーズをmanコマンドで引くことができる。
g,G ノーマルモードの状態で入力する。カーソルを行移動する。gでは行きたい行を指定して移動できる(ggでは1行目に移動し、3ggでは3行目に移動できる)、Gでは一番下の行に移動することができる。
o,O ノーマルモードの状態で入力する。改行しつつ挿入モードに入る。oではカーソルより下の行を改行し、Oではカーソルより上の行を改行する。
s,S ノーマルモードの状態で入力する。文字や行を削除しながら挿入モードに入る。sではカーソルのある文字を削除し、Sではカーソルのある行を削除する。
u ノーマルモードの状態で入力する。操作内容を取り消して一つ前に戻る。アンドゥ。
<C-r> ノーマルモードの状態で入力する。取り消した操作内容を元に戻す。リドゥ。
x ノーマルモードの状態で入力する。1文字削除する。5xなどとすると5文字削除できる。
d,D ノーマルモードの状態で入力する。デリート。ddで行を削除(d3dで3行削除)、dwで単語単位で削除、dlで1文字削除(d3lで3文字削除)、d^で行頭まで削除、d$で行末まで削除。Dでカーソル位置から行末まで削除。
y ノーマルモードの状態で入力する。ヤンク。yyで行をヤンク(y3yで3行ヤンク)、ywで単語単位でヤンク、ylで1文字ヤンク(y3lで3文字ヤンク)、y^で行頭までヤンク、y$で行末までヤンク。
p,P ノーマルモードの状態で入力する。ペースト。pでカーソル右からバッファを挿入、Pでカーソル左からバッファを挿入。3pとするとで操作を3回繰り返す。ちなみにインサートモードでのペーストはShift + Insertで行う。
r,R ノーマルモードの状態で入力する。リプレイス。rでカーソルの1文字を置換、Rでカーソルから複数文字を置換できる。3rとするとカーソルから3文字を置換できる。
<C-w> コマンド入力モードの状態で入力する。ウィンドウを操作することができる。<C-w>sでは上下に画面分割(splitのs)、<C-w>vでは左右に画面分割(verticalのv)、<C-w>hで左ウィンドウに移動、<C-w>jで下ウィンドウに移動、<C-w>kで上ウィンドウに移動、<C-w>lで右ウィンドウに移動できる。<C-w>cでウィンドウを閉じる(closeのc)。
:s/[old]/[new] ノーマルモードの状態で入力する。カーソル行の最初の[old]を[new]に置換する。:s/[old]/[new]/gとするとカーソル行の全ての[old]を[new]に置換する。:10,20s/[old]/[new]/gとすると10行目から20行目までの[old]を[new]に置換する。:%s/[old]/[new]/gとするとファイル中の全ての[old]を[new]に置換する。:%s/[old]/[new]/gcとすると確認を行いながらファイル中の全ての[old]を[new]に置換する。(substitutionのs,globalのg,changeのcをそれぞれ意味している。%は特殊な意味を持つ記号で、すべての行が対象となる。)
ノーマルモードの状態で入力する。バッファに名前を付けることができる。”ayyとするとバッファにaという名前を付けつつ、1行ヤンクすることができる。”apとするとaという名前のバッファを呼び出してペーストを行うことができる。

 

独自拡張しているキーマッピング

独自拡張しているキーマッピング
キー 説明
<C-f> 挿入モードの状態で入力する。フォワード。カーソルを進める。
<C-b> 挿入モードの状態で入力する。バックワード。カーソルを戻す。
<C-Tab> ノーマルモードの状態で入力する。新しいタブを開くことができる。
<S-Tab> ノーマルモードの状態で入力する。タブを移動することができる。
<M-/> ノーマルモードの状態で入力する。:%s/old/new/gcをコマンドラインに表示する。

 
※独自拡張しているキーマッピングについてはvimrcに設定を記述しないと使えない。一部ぱせら氏(@pasela)の設定を真似して使っていたところ、使用感がしっくりきたので定着した。
 
こちらのページに記載しているvimrcのKey Mappingの項目に上記のキーマッピングの設定が書いてあるので興味があれば参考までに。
 
 
以上
 
 
参考
ぱせら氏(@pasela)からのアドバイス

Vimで行頭にTabを挿入したり、全行ヤンクする方法 arrow-right
Next post

arrow-left サーバー機のLinuxにSSH接続する方法
Previous post

コメントを残す