トップ 一覧 検索 ヘルプ RSS ログイン

VimTipsの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!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