グレインの備忘録

プログラミング関係とかをつらつらと。

Vim(NeoVim)を導入したらとりあえずしとく設定

インデント関連

set autoindent "自動インデント
set tabstop=4 "タブ幅
set shiftwidth=4 "自動インデント幅
set noexpandtab "タブをスペースに展開しない
set softtabstop=0 "タブ幅(入力時)

その他表示関連

set number "行番号表示
syntax on "シンタックスハイライト

便利そうなキーバインド(必要に応じて)

"Ctrl+Gでエスケープ
inoremap <C-g> <Esc>
nnoremap <C-g> <Esc>
vnoremap <C-g> <Esc>
"挿入モードでもCtrl+hjklでカーソル移動
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
"Ctrl+pで貼り付け
inoremap <C-p> <Esc>"*pa
nnoremap <C-p> "*p
"TerminalモードでEsc,Ctrl+Gでエスケープ(NeoVimのみ)
tnoremap <ESC> <C-\><C-n>
tnoremap <C-g> <C-\><C-n>
"TerminalモードでCtrl+Wでウィンドウ切り替え(NeoVimのみ)
tnoremap <C-w> <C-\><C-n><C-w>

括弧とクォーテーションの補完(一応)

"(){}''""補完(C++のみ)
augroup cpp_indent_auto_setting
    autocmd!
    autocmd FileType cpp setlocal cindent | setlocal cinoptions+=l1,g0
    autocmd FileType cpp inoremap <buffer>{ {}<Left>
    autocmd FileType cpp inoremap <buffer>{<Enter> {}<Left><CR><ESC><S-o>
    autocmd FileType cpp inoremap <buffer>( ()<ESC>i
    autocmd FileType cpp inoremap <buffer>() ()
    autocmd FileType cpp inoremap <buffer>(<Enter> ()<Left><CR><ESC><S-o>
    autocmd FileType cpp inoremap <buffer>' ''<Left>
    autocmd FileType cpp inoremap <buffer>'' ''
    autocmd FileType cpp inoremap <buffer>" ""<Left>
    autocmd FileType cpp inoremap <buffer>"" ""
augroup END