vi

主にvimの話

プラグイン

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 <C-space> <ESC>

" ノーマルモードでCtrl a、Ctrl eで行頭、行末へ移動
nmap <C-a> 0
nmap <C-e> $

" 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

 
vi.txt · 最終更新: 2010/07/21 10:45 by nullpon
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki