ここ2、3日必死でググっていろいろ悩んだり試行錯誤した結果出来上がった.vimrcを晒してみる。晒すというより、自分用のメモのようなもの。
こうすると楽だよ!とか初心者だからこれを入れてみて!というのがあったら教えてください。
参照したサイトはたくさんありすぎて訳分からなくなってますが、メインは
使用目的とかも書いておく。そうじゃないと見る人意味分からないよね。
- 利用OS:CentOS6.3(会社では開発機、家ではVirtualBox)
- 利用用途:ruby学習およびRails開発
- gitも使えるようになる予定
"====================
" START NeoBundle設定
" NeoBundleInstall プラグイン新規追加時のインストール
" NeoBundleInstall! プラグインの更新
" NeoBundleClean プラグインの削除
"====================
set nocompatible "Vi互換をオフにしてVimの機能を有効化する
filetype off
filetype plugin indent off
if has('vim_starting')
set runtimepath+=~/.vim/bundle/neobundle.vim
call neobundle#rc(expand('~/.vim/bundle/'))
endif
" githubにあるプラグインのインストール
NeoBundle 'Shougo/neobundle.vim' "NeoBundle
NeoBundle 'scrooloose/nerdtree' " NerdTree
NeoBundle 'Shougo/vimproc' " 非同期実行ライブラリ。makeしている間もvimが動くようになる
NeoBundle 'Shougo/vimshell' " vim上からshell起動できる :VimShell
" NeoBundle 'Shougo/unite.vim' " ファイラー兼ランチャー NerdTreeあるから要らない
NeoBundle 'Shougo/neocomplcache' " 挿入モードで入力中、様々な補完候補を元に自動的にポップアップ表示してくれる。
NeoBundle 'Shougo/neosnippet' " スニペットプラグイン今はまだ便利さが分からない
NeoBundle 'thinca/vim-quickrun' " 編集中のコードに対して、ショートカットで実行結果をsplitウィンドウに表示してくれる ノーマルモードで \ + r を押す
"NeoBundle 'Lokaltog/vim-easymotion' "カーソル移動せずに任意の場所へキー入力で移動する
NeoBundle 'vim-ruby/vim-ruby' "rubyのオムニ補完 <C-o>で補完候補を表示、<C-n>で次の候補、<C-p>で前の候補、<C-y>で決定。
NeoBundle 'tpope/vim-rails' "超便利らしいんだが……
NeoBundle 'tpope/vim-fugitive' "vimからgitを動かすツール :G<command> みたいな使い方
NeoBundle 'scrooloose/syntastic' "自動文法チェックrubyも対応している
filetype plugin indent on "最後にplugin onにしておく。必須!
"====================
" END NeoBundle設定
"====================
"====================
" START NerdTree 設定
"====================
" 引数なしで実行したとき、NERDTreeを実行する
let file_name = expand("%:p")
if has('vim_starting') && file_name == ""
autocmd VimEnter * call ExecuteNERDTree()
endif
" カーソルが外れているときは自動的にnerdtreeを隠す
function! ExecuteNERDTree()
"b:nerdstatus = 1 : NERDTree 表示中
"b:nerdstatus = 2 : NERDTree 非表示中
if !exists('g:nerdstatus')
execute 'NERDTree ./'
let g:windowWidth = winwidth(winnr())
let g:nerdtreebuf = bufnr('')
let g:nerdstatus = 1
elseif g:nerdstatus == 1
execute 'wincmd t'
execute 'vertical resize' 0
execute 'wincmd p'
let g:nerdstatus = 2
elseif g:nerdstatus == 2
execute 'wincmd t'
execute 'vertical resize' g:windowWidth
let g:nerdstatus = 1
endif
endfunction
noremap <c-e> :<c-u>:call ExecuteNERDTree()<cr>
"====================
" END NerdTree 設定
"====================
"====================
" START vim-ruby 設定
"====================
let g:rubycomplete_buffer_loading =1
let g:rubycomplete_classes_in_global =1
let g:rubycomplete_rails =1
imap <C-o> <C-x><C-o> "キーマップをC-oに
"====================
" END vim-ruby 設定
"====================
"====================
" START syntastic 設定
"====================
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=2
"====================
" END syntastic 設定
"====================
"====================
"Helpを日本語に
"====================
helptags ~/.vim/doc
set helplang=ja,en
"====================
" マウスを有効に? In many terminal emulators the mouse works just fine, thus enable it.
"====================
if has('mouse')
set mouse=a
endif
"====================
" BEGIN ファイル操作
"====================
set encoding =UTF-8 "標準文字コードをUTF-8に指定する
set hidden "ファイル変更中でも他のファイルを開けるようにする
set autoread "ファイル内容が変更されると自動読み込みする
"====================
" END ファイル操作
"====================
"====================
" BEGIN インデント
"====================
set cindent "C言語のインデントに従って高度な自動インデントを行う
set expandtab "Tabの代わりにSpaceを挿入する。Tabを打つ時は'Ctr-V Tab'。
set smarttab "行頭の余白内でTabを打ち込むと、'shiftwidth'の数だけインデントする
set shiftwidth =4
set tabstop =4 "タブの文字数を設定する
set softtabstop =4 "ファイル内のTabが対応する空白の数
"====================
" END インデント
"====================
"====================
" BEGIN バックアップ
"====================
set backupdir =$HOME/.vim/backup "バックアップ先を指定する
set directory =$HOME/.vim/backup "スワップファイル先を指定する
set browsedir =buffer "ファイル保存ダイアログの初期位置をバッファファイル先に指定する
set history =1000 "履歴数
"====================
" END バックアップ
"====================
"====================
" BEGIN 検索
"====================
set incsearch "インクリメンタルサーチを行う
set hlsearch "検索結果をハイライトする
set ignorecase "検索時に文字の大小を区別しない
set smartcase "検索時に大文字を含んでいたら大小を区別する
set wrapscan "検索をファイルの先頭へループする
"====================
" END 検索
"====================
"====================
" BEGIN 入力操作
"====================
set backspace =indent,eol,start
set whichwrap =b,s,h,l,<,>,[,] "カーソルを行頭、行末で止まらないようにする
"====================
"END 入力操作
"====================
"====================
" BEGIN 画面表示
"====================
colorscheme desert "Vimの色設定
syntax on "シンタックスカラーリングを設定する
set laststatus =2 "ステータスラインを常に表示する
set number "行番号を表示する
set title "編集中のファイル名を表示する
set showcmd "入力中のコマンドを表示する
set ruler "ルーラーを表示する
set showmatch "閉じ括弧の入力時に対応する括弧を表示する
set matchtime =3 "showmatchの表示時間
set list "タブ、行末等の不可視文字を表示する
set listchars=eol:$,tab:>\ ,extends:< "listで表示される文字のフォーマットを指定する
"====================
" END 画面表示
"====================