.vimrcを見なおしたのでメモ

2013/09/03 | Linux, Mac

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 162 follow us in feedly

まえがき

ちなみにMacで使っています。順番がカオスなのが・・・

.vimrc

"""""""""""""""""""""""""""
" 最終更新 2013.9.3
"""""""""""""""""""""""""""

"エンコーディング関係
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8

" ヘルプの日本語化
set helplang=ja

" 改行時のインデントを有効にする
set autoindent
set smartindent

" ソフトタブの無効化
set noexpandtab
" 全角記号のズレ防止
set ambiwidth=double
" 行番号表示
set number
" ルーラーの表示
set ruler
" シンタックスハイライト
syntax on
" ヒストリの保存数
set history=100
" ステータス行を2行表示
set laststatus=2
" Insertモード、ReplaceモードまたはVisualモードで最終行にメッセージを表示する
set showmode

" タブ幅を設定
set tabstop=4
set shiftwidth=4

" Clipboardの共有
set clipboard=unnamed,autoselect
" Ruby
au BufNewFile,BufRead *.rb    set nowrap tabstop=2 shiftwidth=2 expandtab

" ノーマルモードでのキーマップ
nnoremap <C-j> <PageDown>
nnoremap <C-k> <PageUp>

nnoremap OA gi<Up>
nnoremap OB gi<Down>
nnoremap OC gi<Right>
nnoremap OD gi<Left>
nnoremap OF gi<End>
nnoremap OH gi<Home>


" 挿入モードでのキーマップ
inoremap <silent> jj <ESC>
inoremap <C-j> <PageDown>
inoremap <C-k> <PageUp>
inoremap <C-h> <Left>
inoremap <C-l> <Right>
inoremap <C-f> <PageDown>
inoremap <C-b> <PageUp>
inoremap <Nul> <Enter>


"ファイルを開いたら前回のカーソル位置へ移動
augroup vimrcEx
 autocmd!
 autocmd BufReadPost *
 \ if line("'\"") > 1 && line("'\"") <= line('$') |
 \   exe "normal! g`\"" |
 \ endif
augroup END

" 引用符, 括弧の設定
""inoremap { {}<Left>
""inoremap [ []<Left>
""inoremap ( ()<Left>
""inoremap " ""<Left>
""inoremap ' ''<Left>
""inoremap <> <><Left>

" タブ・全角スペースの可視化
set lcs=tab:>.,trail:_,extends:\
set list
highlight SpecialKey cterm=NONE ctermfg=7 guifg=7
highlight JpSpace cterm=underline ctermfg=7 guifg=7
au BufRead,BufNew * match JpSpace / /

" タブページの設定
set showtabline=2 " 常にタブラインを表示


" ノーマルモードに戻った時に日本語入力をオフにする
set imdisable

""""""""""""""""""""
" 検索関係
""""""""""""""""""""
" 検索コマンドを打ち込んでいる間にも、打ち込んだところまでのパターンがマッチするテキストを、すぐに表示する
set incsearch



" 挿入モード時にステータスバーの色変更
if !exists('g:hi_insert')
  let g:hi_insert = 'highlight StatusLine guifg=White guibg=DarkCyan gui=none ctermfg=White ctermbg=DarkCyan cterm=none'
endif
 
if has('unix') && !has('gui_running')
  inoremap <silent> <ESC> <ESC>
  inoremap <silent> <C-[> <ESC>
endif
 
if has('syntax')
  augroup InsertHook
    autocmd!
    autocmd InsertEnter * call s:StatusLine('Enter')
    autocmd InsertLeave * call s:StatusLine('Leave')
  augroup END
endif
 
let s:slhlcmd = ''
function! s:StatusLine(mode)
  if a:mode == 'Enter'
    silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine')
    silent exec g:hi_insert
  else
    highlight clear StatusLine
    silent exec s:slhlcmd
  endif
endfunction
 
function! s:GetHighlight(hi)
  redir => hl
  exec 'highlight '.a:hi
  redir END
  let hl = substitute(hl, '[\r\n]', '', 'g')
  let hl = substitute(hl, 'xxx', '', '')
  return hl
endfunction

" neobundle
set nocompatible
filetype off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle'))
endif

" install plugins 
NeoBundle 'tpope/vim-endwise.git' " 自動でendとか挿入する
NeoBundle 'scrooloose/nerdtree'   " ファイルツリーの表示
NeoBundle 'Shougo/neocomplcache'  " 入力補完プラグイン
NeoBundle 'Shougo/vimshell'       " vimでのシェル実行
" 非同期処理実行ライブラリ(vimshellで使う)
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 'tpope/vim-rails'       " railsプラグイン
NeoBundle 'git://github.com/scrooloose/syntastic.git'     "シンタックスチェック
NeoBundle 'tpope/vim-surround'    " 文字を囲える
NeoBundle 'git://github.com/miripiruni/csscomb-for-vim.git' "CSSプロパティの順序整形プラグイン-CSScomb-


" プラグインの有効化
filetype plugin on
filetype indent on


" zencodingの設定。zencodingはNeobundlerではいれていないので注意
let g:user_zen_expandabbr_key='<C-e>'


" NendTreeの設定
" 引数なしで実行したとき、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-t> :<c-u>:call ExecuteNERDTree()<cr>


"" neocomplcache
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" Use smartcase.
let g:neocomplcache_enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'

2013/09/03 | Linux, Mac

関連記事

vimcalc-1vimcalc-1.png

Vimで電卓機能を追加するプラグイン『VimCalc』

まえがき 今回はちょっとしたVimのプラグインの紹介メモ。 たまにはV...

記事を読む

no image

Vimのウィンドウ関係のコマンドのメモ

まえがき こんかいはVimのウィンドウに関するメモ。縦にウィンドウを分...

記事を読む

no image

.bashrc .vimrc の晒しあげ

ご連絡 新しい記事を書きました。またbashからzshに変更もしまし...

記事を読む

Vimで日本語<=>英語の翻訳ができるプラグイン『excitetranslate-vim』を使ってみるよ

まえがき 今回はVimで日本語英語の翻訳が簡単にできるプラグイン『ex...

記事を読む

vrapper-eclipse-1vrapper-eclipse-1.png

EclipseでVimのキーバインドがつかえるVrapperで世界変わったわ

まえがき Eclipseのショートカットやらキーバインドってなかなか慣...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

  • Sorry. No data so far.

PAGE TOP ↑