自分の.vimrcを載せてみる。
runtime! debian.vim
"この.vimrcはHHKB BT 101キーボードを想定しています。
"WSL1でdebianを使用しています。
"VIMはversion8.1を使用しています。
"コードを色分け
syntax on
"背景色
set background=dark
"文字コードをUTF-8にする
set encoding=utf-8
scriptencoding utf-8
set fileencoding=utf-8
"set fileencodings=utf-8,euc-jp
"set fileformats=unix,dos,mac
"vi互換モードにしない
set nocompatible
"編集中のファイルが変更されたら自動再読み込み
"set autoread
"バッファが編集中でもその他のファイルを開けるようにする
set hidden
"vimバーからファイルを選択できるようにする
"set wildmenu
"画面下残りn行でスクロールする
set scrolloff=7
"ESCを押してから効果が出るまでのミリ秒数
set timeoutlen=500
"スワップファイルを作らない
set noswapfile
"ファイルを上書きする前にバックアップを作らない
set nowritebackup
"ファイルを自動的にバックアップしない
set nobackup
"Tab文字は半角スペースで入力される
set expandtab
"行頭でのTab文字の表示幅
set shiftwidth=4
"行頭以外でのTab文字の表示幅
set tabstop=4
"Tabで挿入される文字幅
set softtabstop=0
"Tab、スペース、改行を可視化する
set list
"不可視文字を可視化する
set listchars=tab:>-,trail:.
"インデントをshiftwidthの倍数で行う
set shiftround
"オートインデントする
set autoindent
"改行時に入力された行の末尾に合わせて次の行のインデントをする
set smartindent
".cにマッチするC言語ファイルで相応のインデントをする
"set cindent
"ペーストモードにする
"(インデントされたファイルをペーストするとき以外はオフでよい)
"(複数行ペーストしたいときはオンにしないと挙動がおかしい気がする)
"set paste
"検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
"検索文字列が小文字の時は大文字小文字区別せず検索する
set ignorecase
"検索文字列が大文字があればそれは区別して検索する
set smartcase
"検索された語をハイライト表示する
set hlsearch
"検索時に最後まで行ったら最初に戻る
set wrapscan
"コマンドラインを補完する
set wildmode=list:longest
"入力履歴を保存する件数
set history=100
"やり直し回数
set undolevels=100
"タイトルを表示
set title
"行頭に行番号を表示
set number
"画面右下に行番号と何文字かを表示する
set ruler
"入力中のコマンドをステータスバーに表示する
set showcmd
"現在のモードを表示
set showmode
"括弧入力時の対応する括弧を表示
set showmatch
"対応する括弧がハイライトされるまでの時間
set matchtime=1
"対応する括弧の例を登録
set matchpairs& matchpairs+=<:>,「:」,(:),【:】,『:』
"現在の行を強調表示
set cursorline
"現在の行を強調表示(縦)
"set cursorcolumn
"一行の文字を全て表示する
set display=lastline
"エラーメッセージの表示時にビープを鳴らさない
set noerrorbells
"ビジュアルベル無効
set novisualbell
"ビープ音すべてを無効
set visualbell t_vb=
"ファイルを閉じた後にもundoの履歴が残せて後で使えるようにする
"(mkdir -p ~/.vim/undo でundoフォルダを作っておくこと)
"(undolevelsでundo回数を設定しておくこと)
if has('persistent_undo')
set undodir=~/.vim/undo
set undofile
endif
"全角文字同士が重ならないようにする
set ambiwidth=double
"全角スペースだけ色を付けて表示する
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
function! ZenkakuSpace()
highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta gui=reverse guifg=DarkMagenta
endfunction
if has('syntax')
augroup ZenkakuSpace
autocmd!
autocmd VimEnter,WinEnter * match ZenkakuSpace / /
augroup END
call ZenkakuSpace()
endif
"前回最後に選択した行からスタート
if has("autocmd")
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
endif
"<F1>でヘルプを起動しない
nmap <F1> <Nop>
imap <F1> <Nop>
"方向キー無効化
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
inoremap <Up> <Nop>
inoremap <Down> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>
"インサートモードでもctrl+hjklでカーソル移動
inoremap <C-j> <down>
inoremap <C-k> <up>
inoremap <C-h> <left>
inoremap <C-l> <right>
"`\=とタイプすれば今日の日付と時刻が挿入される
inoremap `\= <CR><C-R>=strftime('%Y-%m-%d %a %H:%M:%S')<CR><CR><CR>
"jjでESCを押したことと同義にする
inoremap <silent> jj <ESC>
inoremap <silent> jj <ESC>
"ESCの二度押しでハイライトマーカーを消す
nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR>
"カーソル位置から行末までヤンク
nnoremap Y y$
":と:を入れ替える
nnoremap ; :
nnoremap : ;
vnoremap ; :
vnoremap : ;