vimrc初心者向け(本人が初心者のため)
もろもろのサイトから集めた情報で作ってみたvimrc(Windows用)。
必要最低限にしておいて、あとは、適宜、修正する。
おすすめ!というわけではないが、これくらい設定しておけば、とりあえず、困らないと思われる。
あ、rivはreST編集用なので、不要なら外す。
scriptencoding cp932 " このファイルのエンコード set nocompatible " vi互換しない "------------------------------------------------------------------------------- " ファイルタイプ設定(off) "------------------------------------------------------------------------------- filetype off " ファイルタイプの自動検出off filetype plugin off " ファイルタイプ別プラグインのロードoff filetype indent off " ファイルタイプ別インデントのロードoff "------------------------------------------------------------------------------- " 内部エンコーディング設定 "------------------------------------------------------------------------------- set encoding=cp932 " 内部エンコーディング "------------------------------------------------------------------------------- " エンコーディング、ファイルフォーマット設定 "------------------------------------------------------------------------------- set fileencoding=cp932 " 基本文字コード set fileencodings=iso-2022-jp,cp932,sjis,euc-jp,utf-8 " 文字コード自動判別(優先順) set fileformat=dos " 基本ファイルフォーマット set fileformats=dos,unix,mac " ファイルフォーマット自動判別(優先順) "------------------------------------------------------------------------------- " システム設定 "------------------------------------------------------------------------------- set nobackup " backupファイルを作らない set writebackup " ファイルの上書きの前にbackupファイルを作る " nobackupの場合は、上書きに成功したら削除される set backupdir=~/vimfiles/backup " backupファイルディレクトリ set swapfile " swapファイルを作る set directory=~/vimfiles/swap " swapファイルディレクトリ set confirm " 保存されていないファイルがあるとき、終了前に保存確認 set hidden " 保存されていないファイルがあるときでも、保存しないで他のファイルを表示 set autoread " 外部でファイルに変更がされた場合は読みなおす set browsedir=buffer " ファイル保存時の場所を、開いているファイルが有る場所に設定 set noerrorbells " エラー音抑止(gvimはgvimrcで指定) set novisualbell " ビジュアルベル抑止(gvimはgvimrcで指定) set visualbell t_vb= " ビープ音抑止(gvimはgvimrcで指定) set history=100 " コマンド、検索履歴数 set infercase " 補完の際の大文字小文字の区別しない set wildmenu " ファイル名補完有効 set wildmode=list:longest,full " 補完モード "補完モード " "" 最初のマッチのみを補完する。 " "full" 次のマッチを完全に補完する。最後のマッチの次には元の文字列が使われ、その次は再び最初のマッチが補完される " "longest" 共通する最長の文字列までが補完される。それ以上長い文字列を補完できないときは、次の候補に移る " "longest:full" "longest" と似ているが、'wildmenu' が有効ならばそれを開始する " "list" 複数のマッチがあるときは、全てのマッチを羅列する。 " "list:full" 複数のマッチがあるときは、全てのマッチを羅列し、最初のマッチを補完する " "list:longest" 複数のマッチがあるときは、全てのマッチを羅列し、共通する最長の文字列までが補完される set shellslash " Windowsで"/"を有効 set virtualedit+=block " 矩形選択でカーソル位置の制限を解除 "------------------------------------------------------------------------------- " 表示設定 "------------------------------------------------------------------------------- set number " 行番号の表示 set ruler " 右下に行・列の番号を表示 set title " タイトル表示 set list " 不可視文字を表示 set listchars=eol:$,tab:>-,trail:-,extends:>,precedes:<,nbsp:% " 不可視文字の置き換え設定 set display=uhex " 表示できない文字を16進数で表示 set matchpairs& matchpairs+=<:> " 対応括弧に<と>のペアを追加 set showmatch " 括弧の対応表示 set matchtime=1 " 括弧の対応表示時間[1/10秒] set laststatus=2 " 常にステータスラインを表示 "ステータスライン表示モード " "0" 一番下のウィンドウはステータスラインを表示しない " "1" ウィンドウが1つの時はステータスラインを表示しない 2つ以上ある場合は、ステータスラインを表示する " "2" 常にステータスラインを表示する set cmdheight=2 " コマンドラインの高さ (gvimはgvimrcで指定) set showcmd " 入力中のコマンドをステータスラインに表示 syntax on " シンタックスハイライト set cursorline " カーソル行をハイライト set cursorcolumn " カーソル位置のカラムのハイライト "colorscheme desert " カラースキーマ(gvimはgvimrcで指定) set scrolloff=5 " 上下5行の視界を確保 set sidescrolloff=16 " 左右スクロール時の視界を確保 set sidescroll=1 " 左右スクロールは一文字づつ行う set backspace=indent,eol,start " バックスペースでインデントや改行を削除可能 set whichwrap=b,s,h,l,<,>,[,] " 左右移動で行跨ぎ可能 set nowrap " 折り返さない set textwidth=0 " テキストの最大幅を無効にする set ambiwidth=double " 全角記号(○、□等)の位置ズレ対応 "------------------------------------------------------------------------------- " 検索/置換設定 "------------------------------------------------------------------------------- set ignorecase " 大/小文字無視 set smartcase " ただし大文字を含む検索の場合は大/小文字有効 set incsearch " インクリメンタルサーチ有効 set hlsearch " 検索結果ハイライト表示 set wrapscan " 検索をファイルの先頭へループする set gdefault " 置換の時 g オプションをデフォルトで有効 "------------------------------------------------------------------------------- " 編集 "------------------------------------------------------------------------------- set clipboard=unnamed,autoselect " OSクリップボード使用、選択時自動コピー set tabstop=2 " タブ幅 set softtabstop=2 " タブ幅(編集時) set shiftwidth=2 " インデント幅 set smarttab " 行頭の<Tab>は"shiftwidth"、それ以外は"tabstop" set shiftround " インデントをshiftwidthの倍数に丸める set expandtab " タブの代わりにスペース set autoindent " 前行に合わせてインデント set smartindent " 前行の末尾に合わせてインデントを増減 "------------------------------------------------------------------------------- " ランタイムパス設定 "------------------------------------------------------------------------------- if has('vim_starting') set runtimepath+=~/vimfiles/bundle/neobundle.vim/ endif "------------------------------------------------------------------------------- " neobundle "------------------------------------------------------------------------------- call neobundle#rc(expand('~/vimfiles/bundle/')) NeoBundle 'Shougo/neobundle.vim' NeoBundle 'Shougo/vimproc' "NeoBundle 'Shougo/vimproc', { " \ 'build' : { " \ 'windows' : 'make -f make_mingw32.mak', " \ 'cygwin' : 'make -f make_cygwin.mak', " \ 'mac' : 'make -f make_mac.mak', " \ 'unix' : 'make -f make_unix.mak', " \ }, " \ } NeoBundle 'Shougo/unite.vim' NeoBundle 'nanotech/jellybeans.vim' NeoBundle 'Rykka/riv.vim' NeoBundleCheck "------------------------------------------------------------------------------- " ファイルタイプ設定(on) "------------------------------------------------------------------------------- filetype on " ファイルタイプの自動検出on filetype plugin on " ファイルタイプ別プラグインのロードon filetype indent on " ファイルタイプ別インデントのロードon "------------------------------------------------------------------------------- " riv "------------------------------------------------------------------------------- let g:riv_fold_level = 1 let g:riv_web_browser = '"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"' let g:riv_temp_path = 0 let g:riv_html_code_hl_style = "friendly" "------------------------------------------------------------------------------- " mapping e.t.c. "------------------------------------------------------------------------------- "--------------------------------------- " Space prefix nnoremap [space] <Nop> nmap <Space> [space] xmap <Space> [space] "--------------------------------------- " vimrc編集/反映 nnoremap [space]v :<C-u>tabedit $MYVIMRC<CR> nnoremap [space]g :<C-u>tabedit $MYGVIMRC<CR> nnoremap [space]s :<C-u>source $MYVIMRC<CR> \ :source $MYGVIMRC<CR> "--------------------------------------- " インサートから抜けたら、IME解除 inoremap <silent> <ESC> <ESC>:set iminsert=0<CR> "--------------------------------------- " 全角スペース表示 function! ZenkakuSpace() highlight ZenkakuSpace cterm=reverse ctermfg=darkgreen gui=reverse guifg=darkgreen endfunction if has('syntax') augroup ZenkakuSpace autocmd! autocmd ColorScheme * call ZenkakuSpace() autocmd VimEnter,WinEnter,BufRead * match ZenkakuSpace / / augroup END endif "--------------------------------------- " タブページ用 " 以下のサイトからの転用 " http://qiita.com/wadako111/items/755e753677dd72d8036d " --- " tp で前のタブ、tn で次のタブ " t1, t2,,,t9 で左からn番目のタブにジャンプ " tc で新しいタブ, txでタブを閉じる " --- " ----- 転用ここから ----- " Anywhere SID. function! s:SID_PREFIX() return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID_PREFIX$') endfunction " Set tabline. function! s:my_tabline() "{{{ let s = '' for i in range(1, tabpagenr('$')) let bufnrs = tabpagebuflist(i) let bufnr = bufnrs[tabpagewinnr(i) - 1] " first window, first appears let no = i " display 0-origin tabpagenr. let mod = getbufvar(bufnr, '&modified') ? '!' : ' ' let title = fnamemodify(bufname(bufnr), ':t') let title = '[' . title . ']' let s .= '%'.i.'T' let s .= '%#' . (i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#' let s .= no . ':' . title let s .= mod let s .= '%#TabLineFill# ' endfor let s .= '%#TabLineFill#%T%=%#TabLine#' return s endfunction "}}} let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()' set showtabline=2 " 常にタブラインを表示 " The prefix key. nnoremap [Tag] <Nop> nmap t [Tag] " Tab jump for n in range(1, 9) execute 'nnoremap <silent> [Tag]'.n ':<C-u>tabnext'.n.'<CR>' endfor " t1 で1番左のタブ、t2 で1番左から2番目のタブにジャンプ map <silent> [Tag]c :tablast <bar> tabnew<CR> " tc 新しいタブを一番右に作る map <silent> [Tag]x :tabclose<CR> " tx タブを閉じる map <silent> [Tag]n :tabnext<CR> " tn 次のタブ map <silent> [Tag]p :tabprevious<CR> " tp 前のタブ " ----- 転用ここまで -----