Skip to content

Instantly share code, notes, and snippets.

@saicologic
Created October 19, 2010 05:47

Revisions

  1. saicologic created this gist Oct 19, 2010.
    167 changes: 167 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,167 @@
    "set paste
    set encoding=utf-8
    set fileencodings=ucs-bom,utf-8,iso-2022-jp,euc-jp,cp932,latin1

    "" 自動改行を OFF にする
    set tw=0

    syntax on

    "Zenkaku space highlig
    "syntax match InvisibleJISX0208Space " " display containedin=ALL
    "highlight InvisibleJISX0208Space term=underline ctermbg=Blue guibg=Blue

    filetype on
    filetype indent on
    filetype plugin on

    " auto
    "inoremap { {}<LEFT>
    "inoremap [ []<LEFT>
    "inoremap ( ()<LEFT>
    "inoremap " ""<LEFT>
    "inoremap ' ''<LEFT>
    "vnoremap { "zdx{<C-R>z}<ESC>
    "vnoremap [ "zdi[<C-R>z]<ESC>
    "vnoremap ( "zdi(<C-R>z)<ESC>
    "vnoremap " "zdi"<C-R>z"<ESC>
    "vnoremap ' "zdi'<C-R>z'<ESC>

    "emacs keybind
    inoremap <C-A> <HOME>
    inoremap <C-E> <END>
    cnoremap <C-A> <HOME>
    cnoremap <C-E> <END>
    vnoremap <C-A> <HOME>
    vnoremap <C-E> <END>
    noremap <C-A> <HOME>
    noremap <C-E> <END>


    "taglist
    let Tlist_Ctags_Cmd = "/usr/bin/ctags" "ctagsのパス
    let Tlist_Show_One_File = 1 "現在編集中のソースのタグしか表示しない
    let Tlist_Exit_OnlyWindow = 1 "taglistのウィンドーが最後のウィンドーならばVimを閉じる
    let Tlist_Use_Right_Window = 1 "右側でtaglistのウィンドーを表示
    map <silent> <leader>tl :TlistToggle<cr>

    "smartchr
    "inoremap <expr> = smartchr#one_of(' = ', ' == ', ' === ', '=')

    " マウスモード有効
    "set mouse=a
    " screen対応
    "set ttymouse=xterm2

    "C-W,sで横分割
    nmap <C-W>s :sp<CR>
    "C-W,vで縦分割
    nmap <C-W>v :vsp<CR>
    "C-W,oでファイルを指定して横分割、オープン
    nmap <C-W>o :sp
    "C-W,eでファイルブラウザを横分割起動
    nmap <C-W>e :vsp<CR>:wincmd w<CR>:e! ./<CR>
    "C-W,Eでファイルブラウザを縦分割起動
    nmap <C-W>E :sp<CR>:wincmd w<CR>:e! ./<CR>
    "C-W,C-Aで現在のウインドウのみの表示
    nmap <C-W><C-A> :all<CR>

    "vim explore
    noremap <C-W><C-F> :Vexplore<CR>
    let g:netrw_keepdir=0
    let g:netrw_liststyle=3


    " <status line>
    set laststatus=2 " 常にステータスラインを表示
    set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).'\|'.&ff.']'}\ \ %l/%L\ (%P)%m%=%{strftime(\"%Y/%m/%d\ %H:%M\")}

    " <display>
    set showmatch " 括弧の対応をハイライト
    set number " 行番号表示

    " <search>
    set wrapscan " 最後まで検索したら先頭へ戻る
    set ignorecase " 大文字小文字無視
    set smartcase " 大文字ではじめたら大文字小文字無視しない
    set noincsearch " インクリメンタルサーチOFF
    set hlsearch " 検索文字をハイライト

    "検索ハイライトをESC2回で消す
    nmap <Esc><Esc> :nohlsearch<CR><Esc>

    " <basic>
    let mapleader = "," " キーマップリーダー
    set nobackup " バックアップ取らない
    set noswapfile
    set hidden " 編集中でも他のファイルを開けるようにする
    set formatoptions=lmoq " テキスト整形オプション,マルチバイト系を追加
    set vb t_vb= " ビープをならさない
    set backspace=indent,eol,start " バックスペースでなんでも消せるように
    set autoread " 他で書き換えられたら自動で読み直す
    set whichwrap=b,s,h,l,<,>,[,] " カーソルを行頭、行末で止まらないようにする
    set scrolloff=5 " スクロール時の余白確保
    set tabstop=2
    set shiftwidth=2
    set expandtab
    set nocompatible

    "wild menu
    " コマンドライン補完するときに強化されたものを使う(参照 :help wildmenu)
    set wildmenu
    " コマンドライン補間をシェルっぽく
    ""set wildmode=list:longest

    "タブ幅をリセット
    "au BufNewFile,BufRead * set tabstop=4 shiftwidth=4
    "".rhtmlと.rbと.ymlでタブ幅を変更
    au BufNewFile,BufRead *.rhtml set tabstop=2 shiftwidth=2
    au BufNewFile,BufRead *.rb set tabstop=2 shiftwidth=2
    au BufNewFile,BufRead *.yml set tabstop=2 shiftwidth=2
    "Rails関連ファイルで文字コードをUFT-8に設定
    au User Rails* set fenc=utf-8

    "omni
    "omnifunc
    setlocal omnifunc=syntaxcomplete#Complete
    highlight Pmenu ctermbg=4
    highlight PmenuSel ctermbg=1
    highlight PMenuSbar ctermbg=4
    let g:rubycomplete_buffer_loading = 1
    let g:rubycomplete_classes_in_global = 1
    let g:rubycomplete_rails = 1
    "inoremap <Nul> <C-x><C-o>

    "NERDCommenter
    "<Leader>xでコメントをトグル(NERD_commenter.vim)
    map <Leader>x ,c<space>
    "未対応ファイルタイプのエラーメッセージを表示しない
    let NERDShutUp=1


    se hlsearch "検索ワードをハイライト
    se bs=indent,eol,start "ctrl-h の挙動を修正

    autocmd Filetype * let g:AutoComplPop_CompleteOption='.,w,b,u,t,i'
    autocmd FileType ruby :set dictionary=$HOME/.vim/dict/ruby.dict

    "<TAB>で補完
    " {{{ Autocompletion using the TAB key
    " This function determines, wether we are on the start of the line text (then tab indents) or
    " if we want to try autocompletion
    function! InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
    return "\<TAB>"
    else
    if pumvisible()
    return "\<C-N>"
    else
    return "\<C-N>\<C-P>"
    end
    endif
    endfunction
    " Remap the tab key to select action with InsertTabWrapper
    inoremap <tab> <c-r>=InsertTabWrapper()<cr>
    " }}} Autocompletion using the TAB key
    "inoremap <expr> <CR> pumvisible() ? \<C-Y>\<CR>" : "\<CR>"