Vim/俺の設定

Vim/俺の設定

俺の設定(2013-11版)

いろいろ遠ざかっていたので整理のついでにいろいろ見直す。

環境はMacVim 7.4 kaoriya 版 を使用

基本のvimrc設定

" vi互換の動きにしない
set nocompatible
 
" 暗号化をblowfish暗号にする
set cryptmethod=blowfish
 
"左右のカーソル移動で行間移動可能にする。
set whichwrap=b,s,<,>,[,]
nnoremap h <Left>
nnoremap l <Right>
 
" ビジュアルモードでのヤンク後にカーソルを選択前の位置に戻さない
vnoremap y y`>
 
" 検索を循環させない
set nowrapscan
 
" バックアップファイルを作成しない
set nobackup
 
" スワップファイルを作成しない
set noswapfile
 
" 対応括弧の強調しない
set matchtime=0
 
" 行番号表示
set number
 
" 見た目で行移動
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
 
" 削除でレジスタに格納しない(ビジュアルモードでの選択後は格納する)
nnoremap x "_x
nnoremap dd "_dd
 
" 水平タブ系の設定==============================================
" デフォルト設定
" タブとか改行を表示する
set list
 
" タブとか改行を示す文字列 eol(改行)は背景色違いのスペースにする。
set listchars=tab:>-,extends:<,trail:-,eol:\  
 
"タブを空白で入力する
set expandtab
 
"標準タブは4
set tabstop=4
set softtabstop=4
 
"自動的に前行と同じインデント挿入する
set autoindent
 
" visualモードでインデントをいじったあとに解除しない
vnoremap > >gv
vnoremap < <gv
 
" 空行のインデントを勝手に消さない
nnoremap o oX<C-h>
nnoremap O OX<C-h>
inoremap <CR> <CR>X<C-h>
 
" 文字コード関連
" 文字コードの自動解釈の優先順位
set fileencodings=utf-8,cp932,euc-jp
" 改行コードの解釈優先順位
set fileformats=unix,dos
 
" 内部の解釈の文字コード 設定ファイルもこのコードで書け
set encoding=utf-8
" 内部の改行コード
set fileformat=unix
 
" ヤンクをクリップボードへ送り込む
set clipboard+=unnamed
" Ubuntu の Vim の場合はこっちじゃないとクリップボードに入らなかった
" set clipboard=unnamedplus
 
 
" 編集中でもバッファを切り替えれるようにしておく
set hidden
 
"ステータスのところにファイル情報表示
set statusline=%<[%n]%F%=\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}\ %l,%c\ %P 
 
"ルーラーを表示
set ruler
set title
 
" 矩形選択で行末を超えてブロックを選択できるようにする
set virtualedit+=block
 
"esc連打でハイライトをオフ
nnoremap <silent> <ESC><ESC> :noh<CR>
" ノーマルモード中でもエンターキーで改行挿入でノーマルモードに戻る
noremap <CR> i<CR><ESC>

基本はgVim

設定置き場。基本WindowsでgVimなんだけど、ほかのプラットフォーム版とか古いやつとか素のviとかでもできるかもしれん

設定を書く場所

全体挙動に関しては同じディレクトリの

_vimrc

ファイルに書く。

Windowの挙動とか、色が絡む設定に関しては

_gvimrc

ファイルに書く

ファイルタイプごとの挙動に関しては

runtime/ftplugin

ファイルタイプごとの配色に関しては

runtime/syntax

ファイルタイプごとのインデントに関しては

runtime/indent

に書く。というかruntimeのディレクトリに関しては書かれているというほうが正しいか・・・

ここらへんの設定はVim/pluginの設定を上書きするを参照

俺のvimrc

検証環境:MacVim-kaoriya版7.3 gVim kaoriya版 Windows 7.3

scriptencoding utf-8
 
" vi互換の動きにしない
set nocompatible
 
 
" 起動時に確実にIMEをoffにする
set iminsert=0
 
" 絶対に自動改行しない
set formatoptions=q
" 単語を途中で折らない
set linebreak
 
"左右のカーソル移動で行間移動可能にする。
set whichwrap=b,s,<,>,[,]
 
" バッファをキーで移動
map <F2> <ESC>:bp<CR>
map <F3> <ESC>:bn<CR>
 
" ビジュアルモードでのヤンク後にカーソルを選択前の位置に戻さない
vnoremap y y`>
" 1行ヤンク、しかし改行はヤンクしない
nnoremap yyy ^y$
 
 
" 検索を循環させない
set nowrapscan
 
" バックアップファイルを作成しない
set nobackup
 
" スワップファイルを作成しない
set noswapfile
 
" 対応括弧の瞬間強調時間
set matchtime=3
 
" 行番号表示
set number
 
" 見た目で行移動 カーソルキーによる移動も考慮する
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnorempa k gk
inoremap <Down> <C-o>gj
inoremap <Up> <C-o>gk
nnoremap <Down> gj
nnoremap <Up> gk
 
 
" 削除でレジスタに格納しない(ビジュアルモードでの選択後は格納する)
nnoremap x "_x
nnoremap dd "_dd
 
 
"水平タブ系の設定==============================================
"デフォルト設定。結局runtime/indentの設定のほうで、ファイルごとに切り替える
" タブとか改行を表示する
set list
 
" タブとか改行を示す文字列 eol(改行)は背景色違いのスペースにする。
set listchars=tab:>-,extends:<,trail:-,eol:\  
 
"タブを空白で入力する
set expandtab
 
"標準タブは4
set tabstop=4
set softtabstop=4
 
" 自動的にインデントする
set autoindent
" 実はスマートはウザかったりする。
set nosmartindent
 
" visulaモードで選択してからのインデント調整で調整後に選択範囲を開放しない
vnoremap > >gv
vnoremap < <gv
 
"空行のインデントを勝手に消さない
nnoremap o oX<C-h>
nnoremap O OX<C-h>
inoremap <CR> <CR>X<C-h>
 
 
" 文字コード関連
" 文字コードの自動解釈の優先順位
set fileencodings=utf-8,cp932,euc-jp
" 改行コードの解釈優先順位
set fileformats=unix,dos
 
" 内部の解釈の文字コード 設定ファイルもこのコードで書け
set encoding=utf-8
" 内部の改行コード
set fileformat=unix
 
 
 
" ==================================================================
 
 
" クリップボード関係=========================================
" ヤンクをクリップボードへ送り込む
set clipboard+=unnamed
 
" バッファ関連=====================================================
"編集中でもバッファを切り替えれるようにしておく
set hidden
"バッファ一覧ショートカット→バッファ番号で移動
nmap gb :ls<CR>:buf 
 
 
" ステータスエリア関係
"ステータスのところにファイル情報表示
set statusline=%<[%n]%F%=\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}\ %l,%c\ %P 
 
"ルーラーを表示
set ruler
set title
 
" 矩形選択で行末を超えてブロックを選択できるようにする
set virtualedit+=block
 
 
"escでハイライトをオフ
nnoremap <silent> <ESC><ESC> :noh<CR>
" ノーマルモード中でもエンターキーで改行挿入でノーマルモードに戻る
noremap <CR> i<CR><ESC>
 
" 挿入モードでctrl+T二回うちで現在時刻挿入
imap <silent> <C-T><C-T> <C-R>=strftime("%H:%M:%S")<CR>
 
 
" ■■■■■■■■■■■■■■■■■プラギンの設定■■■■■■■■■■■■■■■■■
" pathogenの設定==================================
filetype off
filetype plugin off
filetype plugin indent off
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
filetype on
 
 
" uniteの設定 ======================================
let g:unite_enable_split_vertically = 1 "縦分割で開く
let g:unite_winwidth = 40 "横幅40で開く
" バッファ一覧
nnoremap <silent> ,ub :<C-u>Unite buffer<CR>
 
 
" ネオコン -------------------------------
" 起動時に有効化
let g:neocomplcache_enable_at_startup = 1
" 1番目の候補を自動選択
let g:neocomplcache_enable_auto_select = 1
" 改行で補完確定
inoremap <expr><CR>  pumvisible() ? neocomplcache#close_popup() : "<CR>"
" ESCで補完キャンセルだがinsertモード継続
inoremap <expr><ESC>  pumvisible() ? neocomplcache#cancel_popup() : "<ESC>"

俺のgvimrc

" フォントをRictyに指定 Windows式
set guifont=Ricty:h14:cSHIFTJIS
" フォントをRictyに指定 Unix
" set guifont=Ricty\ 12
" Mac式
" set guifont=Ricty:h14
 
"色系の指定=======================================
"とりあえずscheme指定でザックリ指定
colorscheme evening
 
" マルチバイト文字系のlistcharsで表示される設定はgvimrcに書かないと反映されない
set listchars=precedes:«,extends:»,eol:↲,tab:▸\ 
 
"改行をあまり目立たないように
hi NonText guifg=#444444
hi SpecialKey guifg=#444444
 
" 開いたら全画面 windows版のみ
autocmd GUIEnter * simalt ~x
 
" 開いたら全画面 それっぽくMac版
" au GUIEnter * winpos 0 0
" set lines=160 columns=180

インデントとか

vimfiles/after/indent/python.vim

4タブに変更

python.vim
setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4

vimfiles/after/indent/html.vim (.vim/after/indent/html.vim)

4タブに変更

html.vim
setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4

4タブに変更

xml.vim
setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4

vimfiles/after/syntax/html.vim

aタグの中をリンクっぽくアンダースコア表示にするのを止める。aタグを中身を折った場合行頭のスペースに対してもアンダースコアが表示されるためウザイ

html.vim
syntax clear htmlLink

vimfiles/after/syntax/sql.vim

SQL はインデントの流派によって大きく設定が違うので、改行時に自動整形しないようにする。

sql.vim
setlocal indentexpr=
setlocal autoindent

全角スペースを視覚化

2012年現在使用フォントがRictyになったのでこの設定は不要になった。※Rictyはフォント自体が全角スペースが見える記号になっている。

if has('syntax')
  syntax enable
  function! ActivateInvisibleIndicator()
    highlight ZenkakuSpace cterm=underline ctermfg=darkgrey gui=underline guifg=#FF0000
    match ZenkakuSpace / /
  endfunction
  augroup InvisibleIndicator
    autocmd!
    autocmd BufEnter * call ActivateInvisibleIndicator()
  augroup END
endif

参考サイト

バージョン

  • 2012-04-22 escでハイライト消しの記述がvimのコンソール環境でおかしい動作をするので修正
  • 2009-03-02 新規

タグ

editor/vim/my_setting.txt · 最終更新: 2017-09-27 10:48 by ore