Skip to content

Instantly share code, notes, and snippets.

Created July 9, 2013 15:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/5958507 to your computer and use it in GitHub Desktop.
Save anonymous/5958507 to your computer and use it in GitHub Desktop.
set nocompatible " Use Vim defaults instead of 100% vi compatibility
set backspace=indent,eol,start " more powerful backspacing
"set textwidth=78 " Don't wrap words by default
set nobackup " Don't keep a backup file
set viminfo=!,'50,<1000,s100,\"50 " read/write a .viminfo file, don't store more than
set history=100 " keep 50 lines of command line history
set ruler " show the cursor position all the time
set noswapfile
filetype plugin indent on
" 補完時に無視されるファイル名のsuffix
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
syntax on
"set t_Co=256
set t_Sf=e[3%dm
set t_Sb=e[4%dm
"number
set number
"おりかえし
set nowrap
" エディタのいろの設定
colorscheme molokai
hi Folded ctermfg=green ctermbg=NONE
hi FoldColumn ctermfg=green ctermbg=NONE
if &term =~ "xterm-256color"
" colorscheme desert256
" colorscheme inkpot
"colorscheme wombat256
endif
" 補完候補の色づけ for vim7
hi Pmenu ctermfg=Black
hi Pmenu ctermbg=Gray
hi PmenuSel ctermfg=Black
hi PmenuSel ctermbg=Cyan
hi PmenuSbar ctermfg=White
hi PmenuSbar ctermbg=DarkGray
" タブ幅の設定
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set shiftround
set modelines=0
"インデントの設定
set autoindent
set smartindent
set cindent
"検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
"検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
"検索時に最後まで行ったら最初に戻る
set wrapscan
"検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
"入力中のコマンドをステータスに表示する
set showcmd
"括弧入力時の対応する括弧を表示
set showmatch
"検索結果文字列のハイライトを有効にする
set hlsearch
"ステータスラインを常に表示
set laststatus=2
"ステータスラインに文字コードと改行文字を表示する
"set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y(%{GitBranch()})\ %F%=%l,%c%V%8P
" コマンドライン補完するときに強化されたものを使う(参照 :help wildmenu)
set wildmenu
" コマンドライン補間をシェルっぽく
set wildmode=list:longest
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 外部のエディタで編集中のファイルが変更されたら自動で読み直す
set autoread
" Whitespaceを表示
set listchars=tab:>-,trail:_
set list
" 文字コードの自動認識
" from ずんWiki http://www.kawaz.jp/pukiwiki/?vim#content_1_7
set encoding=utf-8
set fileencoding=utf-8
if &encoding !=# 'utf-8' " utf-8をデフォルトに
set encoding=japan
set fileencoding=japan
endif
if has('iconv')
let s:enc_euc = 'euc-jp'
let s:enc_jis = 'iso-2022-jp'
" iconvがeucJP-msに対応しているかをチェック
if iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'eucjp-ms') ==# "¥xad¥xc5¥xad¥xcb"
let s:enc_euc = 'eucjp-ms'
let s:enc_jis = 'iso-2022-jp-3'
" iconvがJISX0213に対応しているかをチェック
elseif iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'euc-jisx0213') ==# "¥xad¥xc5¥xad¥xcb"
let s:enc_euc = 'euc-jisx0213'
let s:enc_jis = 'iso-2022-jp-3'
endif
" fileencodingsを構築
if &encoding ==# 'utf-8'
let s:fileencodings_default = &fileencodings
let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
let &fileencodings = &fileencodings .','. s:fileencodings_default
unlet s:fileencodings_default
else
let &fileencodings = &fileencodings .','. s:enc_jis
set fileencodings+=utf-8,ucs-2le,ucs-2
if &encoding =~# '^¥(euc-jp¥|euc-jisx0213¥|eucjp-ms¥)$'
set fileencodings+=cp932
set fileencodings-=euc-jp
set fileencodings-=euc-jisx0213
set fileencodings-=eucjp-ms
let &encoding = s:enc_euc
let &fileencoding = s:enc_euc
else
let &fileencodings = &fileencodings .','. s:enc_euc
endif
endif
let &fileencodings = 'utf-8' . ',' . &fileencodings " XXX: adhocな対応
" 定数を処分
unlet s:enc_euc
unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
function! AU_ReCheck_FENC()
if &fileencoding =~# 'iso-2022-jp' && search("[^¥x01-¥x7e]", 'n') == 0
let &fileencoding=&encoding
endif
endfunction
autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
set ambiwidth=double
endif
" set tags
set tags=/Users/yohei/.vim/tags/perl/cpan.tags,./**/tags
" 辞書ファイルからの単語補間
set complete+=k
""" プラグインの設定
""" キーバインドの設定
" mapleader
let mapleader = ","
" tags key map (C-z を C-tに,C-tはGNU/screenとかぶる)
map <C-z> <C-t>
" C-]でtjと同等の効果
nmap <C-]> g<C-]>
" Ctrl-@がうざいのでCtrl-[にする
" map <C-@> <C-[>
" Ctrl-lでもCtrl-[です
map <C-l> <C-[>
" ,w は :up
nnoremap <unique> <Leader>w :<C-u>update<CR>
" wrapトグル
"nnoremap <Leader>l :<C-u>setlocal wrap!<CR>
" yeでそのカーソル位置にある単語をレジスタに追加
"nmap ye :let @"=expand("<cword>")<CR>
" Macのクリップボードをペースト
"nmap <Leader>v <Plug>(fakeclip-p)
"vmap <Leader>v <Plug>(fakeclip-p)
"nmap <Leader>vp <Plug>(fakeclip-p)
"vmap <Leader>vp <Plug>(fakeclip-p)
"nmap <Leader>vy <Plug>(fakeclip-y)
"vmap <Leader>vy <Plug>(fakeclip-y)
"表示行単位で行移動する
nmap j gj
nmap k gk
vmap j gj
vmap k gk
" help
nnoremap <Leader>h :help
" Buffer系
nnoremap <Leader>n :bn<CR>
nnoremap <Leader>p :bp<CR>
nnoremap <Leader>c :bd<CR>
"nnoremap <Leader>l :ls<CR>
nnoremap <Leader>o :only<CR>
nnoremap <Leader>1 :e #1<CR>
nnoremap <Leader>2 :e #2<CR>
nnoremap <Leader>3 :e #3<CR>
nnoremap <Leader>4 :e #4<CR>
nnoremap <Leader>5 :e #5<CR>
nnoremap <Leader>6 :e #6<CR>
nnoremap <Leader>7 :e #7<CR>
nnoremap <Leader>8 :e #8<CR>
nnoremap <Leader>9 :e #9<CR>
" Tab系
nnoremap <Leader><Leader>e :tabedit<CR>
nnoremap <Leader><Leader>n :tabnext<CR>
nnoremap <Leader><Leader>p :tabprevious<CR>
nnoremap <Leader><Leader>c :tabclose<CR>
nnoremap <Leader><Leader>o :tabopen<CR>
" Window系
noremap <LEFT> <C-w>h10<C-w><<C-w>p
noremap <RIGHT> <C-w>h10<C-w>><C-w>p
noremap <UP> <C-w>k10<C-w>-<C-w>j
noremap <DOWN> <C-w>k10<C-w>+<C-w>j
" 縦分割で画面が狭くなりすぎないようにする
" via http://vim-users.jp/2009/07/hack42/
nnoremap <C-w>w <C-w>w:call <SID>good_width()<Cr>
nnoremap <C-w><C-w> <C-w>w:call <SID>good_width()<Cr>
nnoremap <C-w>h <C-w>h:call <SID>good_width()<Cr>
nnoremap <C-w>l <C-w>l:call <SID>good_width()<Cr>
nnoremap <C-w>H <C-w>H:call <SID>good_width()<Cr>
nnoremap <C-w>L <C-w>L:call <SID>good_width()<Cr>
function! s:good_width()
if winwidth(0) < 80
vertical resize 80
endif
endfunction
" folding系
nnoremap <unique> <silent> <Leader>zm :setl foldmethod=manual<CR>zR
nnoremap <unique> <silent> <Leader>zn :setl foldmethod=indent<CR>zM
nnoremap <unique> <silent> <Leader>zs :setl foldmethod=syntax<CR>zM
nnoremap <unique> <silent> <Leader>zk :setl foldmethod=marker<CR>zM
" fuf
"let g:fuf_modesDisable = ['mrucmd']
"let g:fuf_file_exclude = '\v\~$|\.(o|exe|bak|swp|gif|jpg|png)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
"let g:fuf_mrufile_exclude = '\v\~$|\.bak$|\.swp|\.howm$|\.(gif|jpg|png)$'
"let g:fuf_mrufile_maxItem = 10000
"let g:fuf_enumeratingLimit = 20
"let g:fuf_keyPreview = '<C-]>'
"let g:fuf_previewHeight = 0
"nnoremap <unique> <silent> <Leader>b :FufBuffer<CR>
"nnoremap <unique> <silent> <Leader>F :FufFile <C-r>=expand('%:~:.')[:-1-len(expand('%:~:.:t'))]<CR><CR>
"nnoremap <unique> <silent> <Leader>f :FufFile **/<CR>
"nnoremap <unique> <silent> <Leader>r :FufMruFile<CR>
"nnoremap <unique> <silent> <Leader>q :FufQuickfix<CR>
"nnoremap <unique> <silent> <Leader>t :FufTag<CR>
"nnoremap <unique> <silent> <Leader>l :FufLine<CR>
"nnoremap <silent> <C-]> :FufTag! <C-r>=expand('<cword>')<CR><CR>
" encoding
nnoremap <Leader>mu :<C-u>setl encoding=utf-8<CR>
nnoremap <Leader>me :<C-u>setl encoding=euc-jp<CR>
nnoremap <Leader>ms :<C-u>setl encoding=cp932<CR>
" grep系
nnoremap <unique> <Leader>a :exec ':Ack ' . expand('<cword>')<CR>
nnoremap <unique> <Leader>A :Ack
"nnoremap <unique> <Leader>g :exec ':vimgrep /' . getreg('/') . '/j %\|cwin'<CR>
nnoremap <unique> <Leader>g :exec ':GitGrep ' . expand('<cword>')<CR>
nnoremap <unique> <Leader>G :GitGrep
" make
noremap <unique> <Leader>m :<C-u>make!<CR>
"<Leader>e でそのコマンドを実行
nnoremap <Leader>e :<C-u>execute '!' &ft ' %'<CR>
"nmap <Leader>e :execute 'set makeprg=' . expand(&ft) . '\ ' . expand('%')<CR>:make<CR>
"nmap <Leader>e :echo 'set makeprg=' . expand(&ft) . '\ ' . expand('%')<CR>
" PerlのPackage名をつくる
nnoremap epp a<C-R>=join(split(substitute(expand("%:p"), '.*lib/\\|.pm$', "", "g"), "/"), "::")<CR>
" use 文を自動で挿入
nnoremap <silent> <buffer> em :<C-u>PerlUseInsertionCWord<CR>
" yankmap
noremap <silent> sy :call YanktmpYank()<CR>
noremap <silent> sp :call YanktmpPaste_p()<CR>
noremap <silent> sP :call YanktmpPaste_P()<CR>
""" hook
" quickfixがある時はひらく
autocmd QuickfixCmdPost make,grep,grepadd,vimgrep cwin
" 前回終了したカーソル行に移動
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif
""" filetypeごとの設定
if has("autocmd")
" Enabled file type detection
" Use the default filetype settings. If you also want to load indent files
" to automatically do language-dependent indenting add 'indent' as well.
filetype plugin on
"そのファイルタイプにあわせたインデントを利用する
filetype indent on
" perl
autocmd FileType perl :setlocal iskeyword+=:
autocmd FileType perl :setlocal isfname-=-
"autocmd FileTYpe perl noremap K :<C-u>Perldoc<CR>
" html
autocmd FileType xhtml :setlocal softtabstop=2
autocmd FileType xhtml :setlocal shiftwidth=2
autocmd FileType xhtml :setlocal indentexpr=
autocmd FileType html :setlocal shiftwidth=2 tabstop=2 softtabstop=2
"autocmd FileType html :setlocal indentexpr=
"autocmd FileType html :setlocal filetype=tt2html "色消えるので消した
"autocmd Filetype html :setlocal omnifunc=htmlcomplete#CompleteTags
" TT
"autocmd BufRead,BufNewFile *.tt :setlocal filetype=tt2html
"autocmd BufRead,BufNewFile *.tt2 :setlocal filetype=tt2html
" javascript
autocmd FileType javascript :setlocal omnifunc=javascriptcomplete#CompleteJS
" ruby
"autocmd FileType ruby :setlocal softtabstop=2
"autocmd FileType ruby :setlocal shiftwidth=2
" autocmd FileType ruby let g:rubycomplete_buffer_loading=1
" autocmd FileType ruby let g:rubycomplete_classes_in_global=1
" autocmd FileType ruby let g:rubycomplete_rails=1
" cvs,svnの時は文字コードをそれぞれ設定
autocmd FileType cvs :setlocal fileencoding=euc-jp
autocmd FileType svn :setlocal fileencoding=utf-8
autocmd FileType cup :setlocal ft=s
" go
"autocmd BufRead,BufNewFile *.go :setlocal filetype=go
" scala
"autocmd BufRead,BufNewFile *.scala :setlocal filetype=scala
"autocmd FileType scala :setlocal softtabstop=2
"autocmd FileType scala :setlocal shiftwidth=2
" tex
"autocmd FileType tex :AutoComplPopDisable
"autocmd FileType plaintex :AutoComplPopDisable
autocmd BufNewFile,BufRead *.html.tx set filetype=html
autocmd BufNewFile,BufRead *.ejs set filetype=html
autocmd BufNewFile,BufRead *.ep set filetype=html
autocmd BufNewFile,BufRead *.tt set filetype=html
endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment