!!!Vim Tips {{outline}} !!設定 ! でハイライト解除 set hlsearch nmap :nohlsearch ! ステータスラインに文字コードと改行コードを表示 "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 =vimrc:source =gvimrc map ,g :edit =gvimrc map ,v :edit =vimrc !ファイル整形(オートインデント) map migg=G'i !タブ操作 map :tabnew map :tabnext map :tabprevious map :tabclose imap :tabnext imap :tabprevious imap :tabnew imap :tabclose !ファイル名を付けて保存(KaoriYa 版 GVIM のみ?) map :browse confirm saveas imap :browse confirm saveasa !インテリジェンス機能 "imap "imap imap 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 :set guifont=MS_Gothic:h12:cSHIFTJIS map :set guifont=MS_Gothic:h20:cSHIFTJIS !プラグイン * 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