2013年12月20日金曜日

似非Vimmerのための.vimrc&おまけ(Neocompleteの設定をいじってみた)

おそようございます.M1のyuuです.
1週間ぶり,3回目の登場です.

今日は「(h,j,k,l)? 知らない子ですね.」とか「ヤンク?ビジュアルモード?知らない子ですね.」って人のため設定をちょこちょこっと解説していきたいと思います.
※あくまで,似非Vimmerのための設定です.


では,最初にインサートモード中に「(↑,↓,→,←)を押すと(A,B,C,D)って入力されちゃって移動できない,(h,j,k,l)? 知らない子ですね.」の設定から.

" 矢印キーを押してもABCDが出ないで快適
inoremap ^[OA <up>
inoremap ^[OB <down>
inoremap ^[OC <right>
inoremap ^[OD <left>
" ほかのマッピングとの兼ね合いで,上記設定だけではダメだった場合はこちらも一緒にどうぞ
"nnoremap OA g<up>
"nnoremap OB g<down>
"nnoremap OC g<right>
"nnoremap OD g<left>
「^[OA」とか「^[OB」は「Ctrl-V」のあとに矢印を入力です.
ググるといろいろでてくるけど,どれがベストアンサーなのでしょうか?自分はこの設定でやっていますが...

次に「Ctrl-C,Ctrl-Vができないよ.ヤンク?ビジュアルモード?知らない子ですね.」の設定です.

" 選択部分をクリップボードにコピー
vnoremap <c-c> "*y
" Ctrl+Vで貼り付け
nnoremap<c-v> "*pa<Esc>
" 挿入モード時、クリップボードから貼り付け
inoremap <c-v> <Esc>"*pa
" 選択部分をクリップボードの値に置き換え
vnoremap <c-v> d"*P
" コマンドライン時、クリップボードから貼り付け
cnoremap <c-v> <c-r>*
" 選択部分をクリップボードに切り取り
vnoremap <c-x> "*d<Esc>
" ビジュアルモード中にbacspace,deleteで範囲削除
vnoremap <bs> d
vnoremap <delete> d
" 範囲選択
nnoremap <s-up> v<up>
nnoremap <s-down> v<down>
nnoremap <s-left> v<left>
nnoremap <s-right> v<right>
nnoremap <c-a> ggVG
inoremap <s-up> <Esc>v<up>
inoremap <s-down> <Esc>v<down>
inoremap <s-left> <Esc>v<left>
inoremap <s-right> <Esc>v<right>
inoremap <c-s-up> <Esc>v<c-up>
inoremap <c-s-down> <Esc>v<c-down>
inoremap <c-s-left> <Esc>v<c-left>
inoremap <c-s-right> <Esc>v<c-right>
inoremap <c-a> <Esc>ggVG
vnoremap <s-up> <up>
vnoremap <s-down> <down>
vnoremap <s-left> <left>
vnoremap <s-right> <right>
vnoremap <c-a> ggG
さらにundo,redoもマッピングしましょう.

" UNDO
nnoremap <c-z> u
inoremap <c-z> <Esc>ui
" REDO
nnoremap <c-y> <c-r>
inoremap <c-y> <Esc><c-r>i
これで,一般的なテキストエディタと同じような感覚で扱えるようになったはずです.

おまけ(Neocompleteの設定をいじってみた)

kaihara君も紹介してくれた,自動で補完候補を出してくれるVimプラグインのNeocompleteですが,インサートモード中に(↑,↓,→,←)で移動しているとちょっと煩い.というかキーが吸われる...
ということでこちらの設定を入れてみました.自動じゃなくて手動にしよう!

" 起動時に有効化
let g:neocomplete#enable_at_startup = 1
" 自動で補完候補を出さない
let g:neocomplete#disable_auto_complete = 1
" メニューの一番目を自動選択
let g:neocomplete#enable_auto_select = 1
"<Ctrl+Space> :手動補完候補表示
inoremap <expr><nul> pumvisible() ? "\<down>" : neocomplete#start_manual_complete()
" 補完をキャンセルしてカーソル移動(ここらへんはご自由に!)
inoremap <expr><left> neocomplete#cancel_popup() . "\<left>"
inoremap <expr><right> neocomplete#cancel_popup() . "\<right>"
「pumvisible()」はNeocompleteの補完メニューが出ているかどうかを判定してくれます.

(↑,↓,→,←)のマッピングはいい感じに好みで設定しましょう.

以上です.3回目やりきったぞー!

0 件のコメント:

コメントを投稿