Skip to content

Instantly share code, notes, and snippets.

@masquaremo
Last active September 10, 2019 21:20
Show Gist options
  • Save masquaremo/37193a85ca15b16f0eb8b0416b6b431b to your computer and use it in GitHub Desktop.
Save masquaremo/37193a85ca15b16f0eb8b0416b6b431b to your computer and use it in GitHub Desktop.
自分用vimrc
"===================================================
" vimrc(vim8-Win64 GUIで動確)
"===================================================
scriptencoding utf-8 "このファイルのエンコード
"---------------------------------------------------
" ファイル系
set fileencodings=utf-8,cp932 " ファイルを開いたときに自動認識するエンコード
set fenc=utf-8 "文字コードをUFT-8に設定
set nobackup " バックアップファイルを作らない
set noswapfile " スワップファイルを作らない
set autoread " 編集中のファイルが変更されたら自動で読み直す
set hidden " バッファが編集中でもその他のファイルを開けるように
"---------------------------------------------------
" 操作系
set wildmode=list:longest " コマンドラインの補完
set virtualedit=onemore " 行末の1文字先までカーソルを移動できるように
set scrolloff=5 " スクロールする時の上下オフセット
set mouse=a " ターミナル環境でもマウスが使えるように
"---------------------------------------------------
" 操作系(バックスペース)
set backspace+=start " 既存の文字を削除できるように設定
set backspace+=eol " 行頭で[Backspace]を使用した場合上の行と連結
set backspace+=indent " オートインデントモードでインデントを削除できるように設定
"---------------------------------------------------
" 見た目系
syntax on "コードカラー化
set nowrap " 折り返ししない
set number " 行番号を表示
set cursorline " 現在の行を強調表示
"set cursorcolumn " 現在の行を強調表示(縦)
set showmatch " 括弧入力時の対応する括弧を表示
set showcmd " 入力中のコマンドをステータスに表示する
"カレントWindowだけカーソルライン強調表示
augroup change_window
autocmd!
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter * setlocal cursorline
augroup END
"---------------------------------------------------
" 見た目系(ステータスライン)
set laststatus=2 " ステータスラインを常に表示
set statusline=[%n] " バッファ番号
set statusline+=%h " ヘルプページなら[HELP]と表示
set statusline+=%w " プレビューウインドウなら[Prevew]と表示
set statusline+=%m " 変更フラグ
set statusline+=%r " 読み込み専用フラグ
set statusline+=%t " ファイル名
set statusline+=\ " 空白
set statusline+=%< " 切り詰める位置
set statusline+=- " ハイフン
set statusline+=\ " 空白
set statusline+=%{expand('%:p:h')} " カレントディレクトリ表示
set statusline+=\ " 空白
set statusline+=%= " これ以降は右寄せ表示
set statusline+=%l/%L,%v " カーソル行、総行数、カーソル桁位置
set statusline+=\ " 空白
set statusline+=[%{&fileencoding},%{&ff},%Y] " file encoding, ファイルタイプ
"set statusline=[%n]%h%w\ %t%m%r\ %<-\ %{expand('%:p:h')}\ %=%l/%L,%v\ [%{&fileencoding},%{&ff},%Y]
"---------------------------------------------------
" 見た目系(特殊文字の可視化)
set list listchars=tab:\>\-,trail:_ " タブを「>-」、行頭行末空白を「_」
augroup highlightZenkakuSpace "全角スペースに色をつける
autocmd!
autocmd VimEnter,ColorScheme * highlight ZenkakuSpace term=underline ctermbg=Gray guibg=DarkGray
autocmd VimEnter,WinEnter * match ZenkakuSpace / /
augroup END
"set visualbell " ビープ音を可視化
"---------------------------------------------------
" Tab/インデント系
set expandtab " Tab文字を半角スペースにする
set autoindent " 自動インデント
set tabstop=4 " 行頭以外のTab文字の表示幅(スペースいくつ分)
set shiftwidth=4 " 自動インデントでのTab文字の表示幅
set softtabstop=0 "キーボードから入るタブの数(0の時はtabstopの値)
"ファイルタイプ別にタブ幅などを変える
augroup file_type_indent
autocmd!
autocmd FileType c setlocal tabstop=4 softtabstop=4 shiftwidth=4 cindent cinoptions+=:0 expandtab
autocmd FileType cpp setlocal tabstop=4 softtabstop=4 shiftwidth=4 cindent cinoptions+=:0 expandtab
autocmd FileType ruby setlocal tabstop=2 softtabstop=2 shiftwidth=2 autoindent expandtab
autocmd FileType asm setlocal tabstop=8 softtabstop=8 shiftwidth=8 noautoindent noexpandtab
autocmd FileType text setlocal tabstop=4 softtabstop=4 shiftwidth=4 noautoindent noexpandtab
augroup END
"---------------------------------------------------
" 検索系
set ignorecase " 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set smartcase " 検索文字列に大文字が含まれている場合は区別して検索する
set incsearch " 検索文字列入力時に順次対象文字列にヒットさせる
set wrapscan " 検索時に最後まで行ったら最初に戻る
set hlsearch " 検索語をハイライト表示
"---------------------------------------------------
" 日本語系
" 挿入モードのデフォルトはIMEオフ
set iminsert=0
set imsearch=-1
"-----------------------------------------------------
" セッション系
"セッションに保存する情報
set sessionoptions+=resize,winpos
"set sessionoptions=blank,buffers,curdir,folds,help,options,winsize,resize,winpos
"-----------------------------------------------------
" キーリマップ
" 折り返し時に表示行単位での移動できるようにする
"nnoremap j gj
"nnoremap k gk
" バッファの移動
nmap <C-p> :bp<CR>
nmap <C-n> :bn<CR>
" 挿入モードでESCでIME OFF
inoremap <Esc> <Esc>:set iminsert=0<CR>
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>
" 行頭/行末移動 0,$のalias
nmap <C-h> 0
nmap <C-l> $
" 矢印キーを無効にする
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
inoremap <Up> <Nop>
inoremap <Down> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>
" 入力モードでのカーソル移動
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-h> <Left>
inoremap <C-l> <Right>
"-----------------------------------------------------
" プラットフォーム依存系
set clipboard+=unnamed " ヤンク/ペーストでClipboardも使う(*レジスタが使用される)
"-----------------------------------------------------
" 環境系
set belloff=all
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment