LoginSignup
187
194

More than 5 years have passed since last update.

これまでのVimの勉強内容まとめ

Last updated at Posted at 2014-02-28

Vimの最低限の操作

ファイルを開く

$ vim path/to/file
bashでTabを押すと補完が効く。
補完が効かないときは大抵タイプミスしている。

上書き保存して終了

Escを押してから:wq

保存しないで終了

Escを押してから:q!

Vimのチュートリアルで勉強

$ vimtutor

画面移動

Ctrl+F/Ctrl+BでForward/Backに1画面分移動できる。

少しだけ応用編

文字の検索

/searchwordで検索、nで次へ、Nで前へ

文字の置換

:%s/from/to/gでfromに一致する文字をtoに全部置換。
色々オプションがあるらしいけどまだ全部覚えていないのと、エスケープが必要な文字が良くわかっていない。

行の挿入系

Oでカーソル行に新しい行を挿入して編集開始、oだとカーソル行の1つ下に挿入して編集開始。

単語を消して編集開始

ciw 会社で教えてもらった神コマンド。

追記:
ci"は""で囲まれた中身を削除、ci'は''で囲まれた中身を削除など、
最後の文字を変えるといろいろ応用がきく。

行を削除

ddでカーソルのある行自体を削除。

行でカーソル位置より後ろを全部削除

Dで同じ行のカーソル位置より後ろを全部削除。

行番号

:set numberで行番号を表示する。
:set nonumberで行番号を非表示にする。

ファイルを開く

:e path/to/fileでファイルを開く。
bashよりも優秀な補完がきく。

数行のインデントやコメントアウトを一気に削除

Control(ctrl)キーを押しながらvを押すことで矩形選択モードになる。
そのままxを押すと選択された範囲の文字が一気に消える。

数行に同じ文字を一気に挿入

Control(ctrl)キーを押しながらvを押すことで矩形選択モードになる。
そのままIを押してから好きな文字を入力する。最期にEscで一気に挿入。

ついに画面分割

コントロールキーの表記

Vim界で<C-w>はControl(Ctrl)キーを押しながらwを押すことを示す。

画面を分割する

<C-w>v で画面を垂直分割、<C-w>s で画面を水平分割。

画面を移動する

<C-w>h, <C-w>j, <C-w>k, <C-w>l で分割した画面を移動できる。
分割先でファイルを開くといい感じに2つ以上のファイルを同時編集できる。

タブなど

タブ機能も:tab〜などのコマンドでできるらしいがタイピングが面倒くさい。

.vimrcを少し弄り出す

カラースキームとの出会い

molokaiをダウンロードして ~/.vim/colors/molokai.vim に配置する。
vim ~/.vimrc で.vimrcを開き(無い場合は新規作成)colorscheme molokaiと記述する。

入れてみたら綺麗になって満足、いい感じ。

スワップファイルを無効に

.vimrcにset noswapfileを足すとgitによく引っかかって邪魔なスワップファイルを無効に。

自動でインデントするように

.vimrcにset autoindentを足すと自動でインデントするように。

タブの下げ幅をカスタマイズ

.vimrcにset tabstop=2でタブの下げ幅をスペース2個分の表示にする。

タブ入力時にスペースを使うように

.vimrcにset expandtabでタブ入力時にスペースが自動で入力されるようになる。

Ctrl+Vで貼付けても階段状にならないように

.vimrcにset pastetoggle=<C-E> で貼付け時ににすると、通常のコピペで貼付けても階段状にならない!!!神!

vimの設定をgithubに保存

細かい設定をいちいち書くのが面倒なので、
~/.vim~/.vimrcをgithubに保存しておくとcloneするだけでよい。楽ちん。

改めてタブの導入

面倒なタブコマンドではなく新しいバインドで導入


" Tab pages  "{{{2
" Fallback  "{{{3

" the prefix key.
noremap <C-t>  <Nop>


" Basic  "{{{3

" Move new tabpage at the last.
nnoremap <silent> <C-t>n  :<C-u>tabnew \| :tabmove<CR>
nnoremap <silent> <C-t>c  :<C-u>tabclose<CR>
nnoremap <silent> <C-t>o  :<C-u>tabonly<CR>
nnoremap <silent> <C-t>i  :<C-u>tabs<CR>

nmap <C-t><C-n>  <C-t>n
nmap <C-t><C-c>  <C-t>c
nmap <C-t><C-o>  <C-t>o
nmap <C-t><C-i>  <C-t>i

nnoremap <silent> <C-t><Space>  :<C-u>TabpageTitle<CR>

nmap <silent> <C-t><C-@>  <C-t><Space>
nmap <silent> <C-t><C-Space>  <C-t><Space>


" Moving around tabpages.  "{{{3

nnoremap <silent> <C-t>k
\ :<C-u>execute 'tabnext' 1 + (tabpagenr() + v:count1 - 1) % tabpagenr('$')<CR>
nnoremap <silent> <C-t>j
\ :<C-u>execute 'tabprevious' v:count1 % tabpagenr('$')<CR>
nnoremap <silent> <C-t>J  :<C-u>tabfirst<CR>
nnoremap <silent> <C-t>K  :<C-u>tablast<CR>

nmap <C-t><C-j>  <C-t>k
nmap <C-t><C-k>  <C-t>j
nmap <C-t><C-t>  <C-t>k

nmap <C-t>h  <C-t>j
nmap <C-t>l  <C-t>k
nmap <C-t><C-h>  <C-t>j
nmap <C-t><C-l>  <C-t>k

emonkak氏のをパクってきた。
<C-t>から色々タブの操作をできるようにしたらほんとうに快適になった!!

Vimを起動したまま.vimrcを反映

:source ~/.vimrc で起動したまま.vimrcを反映する。
ただし変更後にクリアされていないキーバインド等は想定通りに反映されないことも。

プラグインに手を出し始めた

NeoBundleの導入

Shougo/neobundle.vimのREADMEにならって導入。
:NeoBundleInstallはよくわからないけれど、とりあえずVimを再起動すればどうにかなるっぽい。

Unite.vimの導入

Shougo/unite.vimを導入。
NeoBundle 'Shougo/unite.vim'と書くだけでOKだった。
使い方がわからなくて放置・・・。

ctrlpの導入

kien/ctrp.vimを導入。
使い方はこの辺で。
まだ使い始めたばかりだけれどかなり使いやすく気に入っている。

VimShellの導入

Shougo/vimshell.vimを導入。
タブ操作と組み合わせてつかうととても便利だでした。
Vimを閉じる必要が無くなった。

agvimの導入

ag(The Silver Searcher)で検索しpecoで更に絞り込みvimで該当行を開く
キーバインドはjkにしてみた。

いまここ

これから

fugitive.vimがオススメと聞いているので使ってみたい。
vim-filer.vimやUniteをちゃんと使えるようになると、VimShellでcpとかしなくても済みそう・・。

187
194
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
187
194