vimの設定ファイル

毎日時々刻々とVimの設定ファイル.vimrcが変化しています。が一旦落ち着いたみたいなので、一度晒しておきます。

"vimrcのコメントはクォーテーションマークです

"vimrc以前の環境整備
"1.~/.config/fcitx/configを編集して、Escで変換を抜ける
"2.gnome-tweak-toolでCapsLockとEscを取り替える

"matchit plugin % で対応する単語にジャンプ(Class/endなど)
packadd! matchit
"その他のplugin。ここに入れるだけ -> ~/.vim/pack/foo/start/
"jasentence.vim/plugin/jasentence.vim 日本語の句読点対応
"surround/plugin/surround.vim 囲みを便利にする

"矢印キーを無効化 -- 訓練のため
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
inoremap <Up> <Nop>
inoremap <Down> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>

"ハイライト検索
set hlsearch
"検索単語のハイライトを消す
nnoremap <silent> <C-l> :<C-u>nohlsearch<CR><C-l>
"検索をインクリメンタルにする
set incsearch

"filetype用のpluginとindentを自動読み込み
filetype plugin indent on

"tabやeolを表示する
let mapleader=","
nmap <leader>l :set list!<CR>

"入力モード中に素早くjjjと入力した場合はEscとみなす
inoremap jjj <Esc>
inoremap kkk <Esc>
inoremap っっj <Esc>:call system('fcitx-remote -c')<CR>
inoremap っっk <Esc>:call system('fcitx-remote -c')<CR>

"ビジュアルモードでvを二回で単語末まで選択
vnoremap v el

"ノーマルモードでいとあでiとaで挿入モードにする
nnoremap い i
nnoremap あ a

"ノーマルモードで上下に改行を入れてノーマルモードに戻る
nnoremap O O<Esc>
nnoremap o o<Esc>

"挿入モードでもキーから手を離さずにカーソル移動。
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-t> <Home>
inoremap <C-a> <End>
inoremap <C-p> <C-Home>
inoremap <C-g> <C-End>
inoremap <C-x> <Delete>

"日付と時刻の自動化
inoremap ,date <C-R>=strftime('*%Y/%m/%d %H:%M %A')<CR><CR><CR><CR><CR><CR>*<CR><Esc>ggj
inoremap ,datee <C-R>=strftime('%Y/%m/%d %H:%M %A')<CR>
inoremap ,time <C-R>=strftime('%H:%M')<CR>

":r!とかで使うshellコマンドで.bashrcを有効にする
set shellcmdflag=-ic

"コマンドモードでhistoryを遡る
cnoremap <C-k> <Up>
cnoremap <C-j> <Down>
set history=200
"vimのyank(コピー)をクリップボードのコピーと共通化
set clipboard=unnamedplus
"vim上でマウスが使えるようにする。
set mouse=a
set noswapfile
set nobackup
set nocompatible
set number
"ts, st, swを一致させる
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
"retab

"検索時に大文字小文字を気にしない
set ignorecase
set smartcase
"vimのウィンドウを行き来する際に変更チェックをかけない
set hidden
"vimのウィンドウの行き来
nnoremap <silent> [b :bprevious<CR>
nnoremap <silent> ]b :bnext<CR>
nnoremap <silent> [B :bfirst<CR>
nnoremap <silent> ]B :blast<CR>

colorscheme delek

filetype on
augroup filetypedetect
  au! BufRead,BufNewFile *.sage,*.spyx,*.pyx setfiletype python
augroup END

set cursorline
"挿入モードになったら色を変える
autocmd InsertEnter * highlight  CursorLine ctermbg=9 ctermfg=255

"ノーマルモードに戻ったら色を戻す
autocmd InsertLeave * highlight  CursorLine ctermbg=None ctermfg=None

"タイプミスを自動で修正
if filereadable(expand('~/autocorrect.dat'))
  source ~/autocorrect.dat
endif