====== vi ======
主にvimの話
===== プラグイン =====
''~/.vim/plugin''に入れるだけ
* [[http://www.vim.org/scripts/script.php?script_id=1567|rails.vim - Ruby on Rails plugin]]
* [[http://www.vim.org/scripts/script.php?script_id=922|svncommand.vim - Subversion (svn) integration plugin]]
===== vimrc =====
Mac の vim のデフォルト設定は非常に寂しいので色々設定してやる。ホームディレクトリに''.vimrc''を作って以下の記述
" ライン番号を表示
set number
" インデント制御
set ai
set cindent
" タブ幅制御
set tabstop=4
set softtabstop=4
set shiftwidth=4
" タブをスペースで入力(タブを入力する時はCtrl-v tab)
set expandtab=on
" 折り返しの設定
set nolinebreak
set nowrap
" ステータス行の表示
set laststatus=2
" シンタックスハイライト
syntax on
" 検索結果をハイライト
set hlsearch
" インラインモードでCtrl Spaceを押したらノーマルモードに戻る
imap
" ノーマルモードでCtrl a、Ctrl eで行頭、行末へ移動
nmap 0
nmap $
" CJK記号の幅を調整
set ambiwidth=double
色々設定があるので試して自分好みに改良してみるがよろし。
===== ファイルタイプ別の設定 =====
例えば基本は上記の設定で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