- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!Vim Tips
{{outline}}
!!設定
! <ESC><ESC> でハイライト解除
set hlsearch
nmap <Esc><Esc> :nohlsearch<CR><Esc>
! ステータスラインに文字コードと改行コードを表示
"set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
set statusline=[*%n]\ %<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
! ファイル保存時に折り畳み情報を保存
set viewdir=~/.vim/view
au BufWritePost * mkview
"au BufWritePost * call MkViewIfHasFold()
autocmd BufReadPost * loadview
! 加減算コマンド(Ctrl+a,Ctrl+x)にアルファベットや 8/16 進数を追加
"alpha アルファベット
"octal 8進数
"hex 16進数
set nrformats+=alpha
set nrformats+=octal
set nrformats+=hex
! % での移動に <> も追加
"下の3つはdefaultで移動可能
"{}
"[]
"()
set matchpairs+=<:>
! バックアップファイルの位置
set backupdir=$VIM/vimtmp
! スワップファイルの位置
set directory=$VIM/vimtmp
!vimrc/gvimrc の読み込みと反映
if has("win32")
let vimrc="$VIM/vimrc"
let gvimrc="$VIM/gvimrc"
endif
map ,u :source <C-R>=vimrc<CR><CR>:source <C-R>=gvimrc<CR><CR>
map ,g :edit <C-R>=gvimrc<CR><CR>
map ,v :edit <C-R>=vimrc<CR><CR>
!ファイル整形(オートインデント)
map <C-i> migg=G'i
!タブ操作
map <C-t> :tabnew<CR>
map <C-n> :tabnext<CR>
map <C-p> :tabprevious<CR>
map <C-d> :tabclose<CR>
imap <C-n> <ESC>:tabnext<CR>
imap <C-p> <ESC>:tabprevious<CR>
imap <C-t> <ESC>:tabnew<CR>
imap <C-d> <ESC>:tabclose<CR>
!ファイル名を付けて保存(KaoriYa 版 GVIM のみ?)
map <C-s><C-a> :browse confirm saveas<CR>
imap <C-s><C-a> <ESC>:browse confirm saveas<CR>a
!インテリジェンス機能
"imap <TAB> <C-X><C-O>
"imap <C-TAB> <C-X><C-O>
imap <C-TAB> <C-X><C-I>
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd Filetype ruby set omnifunc=rubycomplete#Complete
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType sql set omnifunc=sqlcomplete#Complete
autocmd FileType html set filetype=xhtml
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
!表示上のタブ幅を4文字相当に設定
set tabstop=4
!>> や << の際のインデント幅を4文字分に設定
set shiftwidth=4
! grep や :make の実行後、自動的に QuickFix ウィンドウを開く
au QuickfixCmdPost make,grep,grepadd,vimgrep,helpgrep copen
au QuickfixCmdPost l* lopen
! 表示行単位で行移動する
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
! 内臓 grep を使わず GNU Grep を使う
set grepprg=grep.exe\ -nH
! Ctrl + マウス左右クリックでフォントを大きくしたり小さくしたりする
map <C-LeftMouse> :set guifont=MS_Gothic:h12:cSHIFTJIS<CR>
map <C-RightMouse> :set guifont=MS_Gothic:h20:cSHIFTJIS<CR>
!プラグイン
* howm.vim
"set runtimepath+=$VIM/runtime/plugin
let g:howm_dir = 'howm'
"let g:howm_grepprg=''
"let g:howm_findprg=""
let g:howm_removeEmpty=1
"let g:howm_instantpreview = 0
* calender.vim
"週番号表示
let g:calendar_weeknm=1
"カレンダーディレクトリ指定
let g:calendar_diary='diary'
"月
let g:calendar_mruler ='睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走'
"let g:calendar_mruler ='JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER'
"let g:calendar_mruler ='Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'
"let g:calendar_mruler ='睦月:Jan,如月:Feb,弥生:Mar,卯月:Apr,皐月:May,水無月:Jun,文月:Jul,葉月:Aug,長月:Sep,神無月:Oct,霜月:Nov,師走:Dec'
"曜日
let g:calendar_wruler = '日 月 火 水 木 金 土'
"let g:calendar_wruler = 'Su Mo Tu We Th Fr Sa'
* skk.vim
let skk_jisyo = '$VIM/dict/skk-jisyo'
let skk_large_jisyo = '$VIM/dict/SKK-JISYO.L'
let skk_auto_save_jisyo = 1
let skk_keep_state = 0
let skk_egg_like_newline = 1
let skk_show_annotation = 1
let skk_use_face = 1
* Viki
let g:vikiNameSuffix=".viki"
autocmd! BufRead,BufNewFile $VIM/Viki/* set filetype=viki
let g:vikiHomePage =$VIM . "/Viki/index.viki"
!!コマンド
!ファイルを暗号化する
vim -x secret.txt
!暗号化を解除する、もしくはパスワードを変更する
:X
!折畳み
,コマンド,動作
,zf,折り畳みを作成する
,zo,カーソル位置の折り畳みを開く
,zO,カーソル位置の折り畳みを再帰的に開く
,zr,折り畳みを開く
,zR,すべての折り畳みを開く
,zc,カーソル位置の折り畳みを閉じる
,zC,カーソル位置の折り畳みを再帰的に閉じる
,zm,折り畳みを閉じる
,zM,すべて折り畳みを閉じる
,za,折り畳みが閉じていれば開き、開いていればそれを閉じる
,zA,折り畳みが閉じていれば再帰的に開き、開いていればそれを再帰的に閉じる
,zd,カーソル下の折り畳みを削除する
,zD,カーソル下の折り畳みを再帰的に削除する
,zE,そのファイルの折り畳みをすべて削除する
,zi,折り畳みの有効・無効を切り替える
!画面分割
,コマンド,動作
,CTRL-W s,画面を縦に二分割する(split)
,CTRL-W v,画面を横に二分割する(vsplit)
,CTRL-W n,画面分割し新規ファイルを作成
,CTRL-W ^,画面分割し#がついているバッファを表示
,CTRL-W c,カレント画面を閉じる(close)
,CTRL-W q,カレント画面を閉じる(quit)
,CTRL-W j,下の画面に移動する
,CTRL-W k,上の画面に移動する
,CTRL-W h,左の画面に移動する
,CTRL-W l,右の画面に移動する
,CTRL-W w,次の画面に移動する
,CTRL-W W,前の画面に移動する
! 空白行の削除(1)
:g/^$/d
! 空白行の削除(2)
:'<,'>s/^$\n/
! バイト単位移動
1700go
or
:go 1700
! 何バイト目にいるかを調べる
g CTRL-G
!全てのウィンドウを閉じる
:qall
! 全てのウィンドウを保存して閉じる
:wqall
! ^M を削除する
:%s/^M//g
^M の入力は Ctrl+V、Ctrl+M
! インデントを一つ浅くする
<<
! インデントを一つ深くする
>>
! 複数のファイルにある文字列を一括で変更する
対象のファイルを設定する。
以下の例だと全ての HTML ファイルを指定。
:args *.html
フォルダ内も対象にする場合は以下のようにする。
:args **/*.html
対象となるファイルを確認するには以下のようにする。
:args
実際に変更する場合は以下のようにする。
例では対象のファイルにある全ての hoge を fuga に変更する。
:argdo %s/hoge/fuga/g | update