ユーザ用ツール

サイト用ツール


vim

文書の過去の版を表示しています。


vim

プラグイン

~/.vim/pluginに入れるだけ

vimrc

Mac の vim のデフォルト設定は非常に寂しいので色々設定してやる。ホームディレクトリに.vimrcを作って以下の記述

" ライン番号を表示
set number
 
" タブ幅制御
set tabstop=4
set softtabstop=4
set shiftwidth=4
 
" タブをスペースで入力(タブを入力する時はCtrl-v tab)
set expandtab=on
 
" 折り返しの設定
set nolinebreak
set nowrap
 
" ステータス行の表示
set laststatus=2
 
" シンタックスハイライト
syntax on
 
" ファイルタイプ別の設定
filetype on
filetype indent on
filetype plugin on
 
" 検索結果をハイライト
set hlsearch
 
" インラインモードでCtrl Spaceを押したらノーマルモードに戻る
imap <C-space> <ESC>
 
" ノーマルモードでCtrl a、Ctrl eで行頭、行末へ移動
"nmap <C-a> 0
"nmap <C-e> $
 
" 行頭、行末への移動をシェルと同じに
map <C-a> <Home>
map <C-e> <End>
 
" CJK記号の幅を調整
set ambiwidth=double

色々設定があるので試して自分好みに改良してみるがよろし。以下の設定は環境によって最初から有効になってる場合もある

" 一番下まで検索したら最初の検索結果に戻る
set wrapscan
 
" インサートモード時にバックスペースで空行を削除できる
set backspace=2

インデント制御

<html> <dl> <dt>autoindent</dt> <dd>改行したときにインデントを前の行と同じにする。</dd> <dt>smartindent</dt> <dd>C言語風のインデントを自動的に行うが、C言語系の場合はcindentを使うのが良い。CSSの編集に相性が良い</dd> <dt>cindent</dt> <dd>smartindentより高度なC言語風のインデントを自動的に行う。C言語はもちろんJava等のC風シンタックスの言語に有効。</dd> </dl> </html>

ただし各言語用のindent定義が最初から入っているので上の設定は不要

filetype on 
filetype plugin on
filetype indent on

としておく

ファイルタイプ別の設定

例えばvimrcでインデントがスペース4つ分のタブに設定されているが、rubyファイルを編集する時はインデント幅を2スペースにし、タブではなくスペースを使いたいというならば、~/.vimrc に以下を追記

filetype on
filetype plugin on

~/.vim/ftplugin/ruby.vim というファイルを作成し、

setlocal expandtab
setlocal shiftwidth=2
setlocal tabstop=2
setlocal softtabstop=2

setではなくsetlocalを使うこと。setでは.vimrcの設定を完全に上書きし、rubyファイルと同時に他の種類のファイルを開くとそちらにも影響してしまう。

コマンドいろいろ

今開いているエディタに指定のファイルの中身をコピー

:read filename

分割オープン

:split filename
:vsplit filename

分割画面の移動は

Ctrl-w p 画面間の移動
Ctrl-w k 上の画面に移動
Ctrl-w j 下の画面に移動
Ctrl-w l 右の画面に移動
Ctrl-w h 左の画面に移動

サイズ調整は

Ctrl-w + 選択中の画面を一行分大きくする
Ctrl-w - 選択中の画面を一行分小さくする
Ctrl-w = 画面のサイズを同じにする

一時的にシェルへ(exitでviに戻る)

:shell
:sh 

コマンド実行

:!cmd

指定の文字までカット

df 指定文字

繰り返し

.

文字コードを指定して再読み込み

:e ++enc=utf8

ファイルタイプを指定(シンタックス指定)

:set filetype=html	

タブ・スペースの変換

:retab

ここみれ http://tonetsutomu.com/tone/linux/Reference/Vi/ViReference1.htm

RSpecを実行する

rspec.vimというファイルを作って ~/.vim/plugin/ に設置

function RunRspec ()
	:!rspec -cfs %
endfunction
 
function RunRspecLine ()
	exe '!rspec -cfs -l ' . line('.') . ' %'
endfunction
 
au BufRead,BufNewFile *_spec.rb :command! Rspec :call RunRspec()
au BufRead,BufNewFile *_spec.rb :command! Rspecl :call RunRspecLine()
 
 
function RunSpec ()
	:!spec -cfs %
endfunction
 
function RunSpecLine ()
	exe '!spec -cfs -l ' . line('.') . ' %'
endfunction
 
au BufRead,BufNewFile *_spec.rb :command! Spec :call RunSpec()
au BufRead,BufNewFile *_spec.rb :command! Specl :call RunSpecLine()

:Rspecで今開いているRSpecファイルを全体を、:Rspeclで現在カーソルのある行を含むテストケースをRSpec2で実行する。RSpec1を実行したい場合は、:Spec、:Specl

vim.1308289410.txt.gz · 最終更新: 2011/06/17 05:43 by nullpon