$ cd ~/
$ mkdir vim_backup
$ mv .vimrc .gvimrc .vim vim_backup
$ git clone git://github.com/t9md/my-vim-config.git
$ cd my-vim-config
$ rake install
or $ rake install
$ gem install vim-update-bundles
$ vim-update-bundles
change following setting in .vimrc
let g:phrase_author = "YOURNAME"
set g:swap_colon_and_semicolon to '0' if you use Japanese keyboard
let g:swap_colon_and_semicolon = 0
Mac 環境では M-
は D-
になる。
M-
はAltキー
D-
はCommandキー
MacVim の場合 F11
でフルスクリーンに出来る。
nnoremap <F11> :emenu Window.Toggle\ Full\ Screen\ Mode<CR>
`M-[` 左のタブ
`M-]` 右のタブ
nnoremap <M-]> gt
nnoremap <M-[> gT
分割したWindow間を Control キーを押しながらhlkj
で移動出来る。
nnoremap <silent> <C-h> :wincmd h<CR>
nnoremap <silent> <C-l> :wincmd l<CR>
nnoremap <silent> <C-k> :wincmd k<CR>
nnoremap <silent> <C-j> :wincmd j<CR>
矢印キーだけでも Window を移動できる。
nnoremap <silent> <Left> :wincmd h<CR>
nnoremap <silent> <Right> :wincmd l<CR>
nnoremap <silent> <Up> :wincmd k<CR>
nnoremap <silent> <Down> :wincmd j<CR>
Visual モードで選択したテキストを Control を押しながら hlkj
で移動出来る。
C-h 右
C-l 左
C-k 上
C-j 下
vmap <C-j> <Plug>(TextManup.move_selection_down)
vmap <C-k> <Plug>(TextManup.move_selection_up)
vmap <C-h> <Plug>(TextManup.move_selection_left)
vmap <C-l> <Plug>(TextManup.move_selection_right)
範囲選択した text を 下方向に複製(Duplicate) Normal モードではカレント行が下方向に複製される。
M-d
<Space>d
D
vmap <M-d> <Plug>(TextManup.duplicate_selection_v)
nmap <M-d> <Plug>(TextManup.duplicate_selection_n)
vmap <Space>d <Plug>(TextManup.duplicate_selection_v)
nmap <Space>d <Plug>(TextManup.duplicate_selection_n)
vmap D <Plug>(TextManup.duplicate_selection_v)
NERDCommenter
F3 (Normal)現在行のコメントをトグル
M-; (Normal)現在行のコメントをトグル
F3 (Visual)選択範囲のコメントをトグル
M-; (Visual)選択範囲のコメントをトグル
<Space>; (Normal)同じ
<Space>; (Visual)同じ
nmap <silent> <F3> <plug>NERDCommenterToggle
vmap <silent> <F3> <plug>NERDCommenterToggle
nnoremap <silent> <Space>; :call NERDComment(0, "toggle")<CR>
vnoremap <silent> <Space>; :call NERDComment(0, "toggle")<CR>
nnoremap <silent> <M-;> :call NERDComment(0, "toggle")<CR>
vnoremap <silent> <M-;> :call NERDComment(0, "toggle")<CR>
inoremap <silent> <M-;> <C-o>:call NERDComment(0, "toggle")<CR>
今開いているファイルを NERDTree 上に表示する。
<M-R>
<M-n>
<Space>n
H
nnoremap <silent> <M-R> :NERDTreeFind<CR>
nnoremap <silent> <M-n> :NERDTreeFind<CR>
nnoremap <silent> <Space>n :NERDTreeFind<CR>
フォントサイズの変更
<M--> フォントを大きく
<M-=> フォントを小さく
nnoremap <silent> <M--> :<C-u>call SetGUIFont('-')<CR>
nnoremap <silent> <M-=> :<C-u>call SetGUIFont('+')<CR>
M-H(M-Shift-h)
等で、Windowをhlkj
それぞれの方向に最大化して寄せる。
nnoremap <silent> <M-H> :wincmd H<CR>
nnoremap <silent> <M-L> :wincmd L<CR>
nnoremap <silent> <M-K> :wincmd K<CR>
nnoremap <silent> <M-J> :wincmd J<CR>
<M-2> 横分割(split)
<M-3> 縦分割(vsplit)
nnoremap <silent> <M-2> :split<CR>
nnoremap <silent> <M-3> :vsplit<CR>
見える範囲を一時的に広くするために、選択したWindowの サイズを一時的に変更する。
_ 縦に最大化
| 横に最大化
F 縦横に最大化
vmap _ <Plug>(ResizeWinH)
vmap <bar> <Plug>(ResizeWinV)
vmap F <Plug>(ResizeWinHV)
nmap _ <Plug>(ResizeWinH)
nmap <bar> <Plug>(ResizeWinV)
nmap F <Plug>(ResizeWinHV)
M-a
に続くキーで選択範囲を整列
<M-a>文字 (Visual) '文字'で選択範囲を整列
vmap <M-a>= <Plug>AM_t=
vmap <M-a>< <Plug>AM_t<
vmap <M-a>; <Plug>AM_t;
vmap <M-a>: <Plug>AM_t:
vmap <M-a>, <Plug>AM_t,
vmap <M-a># <Plug>AM_t#
vmap <M-a>\| <Plug>AM_t\|
vmap <M-a>sp <Plug>AM_tsp
vmap <M-a>sq <Plug>AM_tsq
vmap <M-A>= <Plug>AM_T=
vmap <M-A>< <Plug>AM_T<
vmap <M-A>; <Plug>AM_T;
vmap <M-A>: <Plug>AM_T:
vmap <M-A>, <Plug>AM_T,
vmap <M-A># <Plug>AM_T#
vmap <M-A>\| <Plug>AM_T\|
vmap <M-A>t <Plug>AM_T\|
vnoremap <M-a>t :Align "\|"<CR>
vnoremap <M-a>h :Align "=>"<CR>
T
で tryit ファイルを開く。
Visual モードで T
を押すと、選択範囲を tryit ファイルに paste して開く。
T (Normal) Tryit ファイルを開く
T (Visual) 選択範囲を Tryit ファイルに張り付けて開く
let g:tryit_dir = "$HOME/.vim/tryit"
nnoremap <silent> T :TryIt<CR>
vnoremap <silent> T :TryItSelection<CR>
nnoremap <silent> <Space>t :TryItInteractive<CR>
(よくつかう) Phrase の管理。
<Space>pl
で PhraseList を開く。
M
で PhraseFile を開く。
Visual-M
で 選択範囲を新しくPhraseFileに登録する。
<Space>p Unite phrase
M (Normal)Phraseファイルを開く
M (Visual)選択範囲からPhraseを作成
nnoremap <silent> <Space>p :<C-u>Unite phrase -start-insert<CR>
nnoremap <silent> M :PhraseEdit<CR>
vnoremap <silent> M :PhraseCreate<CR>
command! -nargs=? Refe :call ref#ref("refe " . <q-args>)
command! -nargs=? Eijiro :call ref#ref("alc " . <q-args>)
command! -nargs=? Pydoc :call ref#ref("pydoc " . <q-args>)
command! -nargs=? Perldoc :call ref#ref("perldoc " . <q-args>)
command! -nargs=? Erlang :call ref#ref("erlang " . <q-args>)
C-p file mru
<Space><Space> buffer
<Space>o outline
<Space>ul line
<Space>p phrase
<Space>urm ref/man
<Space>urr ref/refe
<Space>urp ref/pydoc
let g:unite_enable_start_insert = 1
let g:unite_split_rule="botright"
let g:unite_enable_split_vertically = 0
nnoremap [unite] <Nop>
nmap <M-u> [unite]
nmap U [unite]
nmap <Space>u [unite]
nnoremap [unite]u :<C-u>Unite<Space>
nnoremap [unite]<M-u> :<C-u>Unite file_mru<CR>
" nnoremap <silent> [unite]f :<C-u>UniteWithCurrentDir -buffer-name=files buffer file_mru bookmark file<CR>
nnoremap <silent> [unite]f :<C-u>UniteWithCurrentDir file_rec -buffer-name=files<CR>
nnoremap <silent> [unite]d :<C-u>UniteWithBufferDir -buffer-name=files buffer file_mru bookmark file<CR>
nnoremap <silent> [unite]m :<C-u>Unite file_mru<CR>
nnoremap <silent> [unite]l :<C-u>Unite lines<CR>
nnoremap <silent> [unite]t :<C-u>UniteWithCursorWord tag -vertical<CR>
nnoremap <silent> <Space>g :<C-u>UniteWithCursorWord tag -vertical<CR>
nnoremap <silent> [unite]b :<C-u>Unite bookmark<CR>
nnoremap <silent> [unite]rm :<C-u>UniteWithCursorWord -start-insert ref/man<CR>
nnoremap <silent> [unite]rr :<C-u>UniteWithCursorWord -start-insert ref/refe<CR>
nnoremap <silent> [unite]rp :<C-u>UniteWithCursorWord -start-insert ref/pydoc<CR>
nnoremap <silent> [unite]p :<C-u>Unite phrase -start-insert<CR>
nnoremap <silent> [unite]o :<C-u>Unite outline -start-insert<CR>
nnoremap <silent> <Space>p :<C-u>Unite phrase -start-insert<CR>
nnoremap <silent> <Space>o :<C-u>Unite outline -start-insert<CR>
nnoremap <silent> <Space>b :<C-u>Unite bookmark<CR>
nnoremap <silent> <Space><Space> :<C-u>Unite -start-insert buffer<CR>
nnoremap <silent> <C-p> :<C-u>Unite file_mru -buffer-name=files<CR>