Skip to content

Instantly share code, notes, and snippets.

@alphaKAI
Last active August 29, 2015 14:27
Show Gist options
  • Select an option

  • Save alphaKAI/7d44ff1a5aa59d7cf1ec to your computer and use it in GitHub Desktop.

Select an option

Save alphaKAI/7d44ff1a5aa59d7cf1ec to your computer and use it in GitHub Desktop.
My .vimrc , Requirements : NeoBundle
set transparency=15
set background=dark
let g:vimshell_editor_command = '/usr/local/Cellar/macvim/7.4-77/bin/gvim'
"NeoBundle
NeoBundleLazy 'Shougo/neosnippet', {
\ 'autoload' : {
\ 'filetypes' : 'snippet',
\ 'insert' : 1,
\ 'unite_sources' : ['snippet', 'neosnippet/user', 'neosnippet/runtime'],
\ }}
NeoBundleLazy 'alpaca-tc/vim-endwise.git', {
\ 'autoload' : {
\ 'insert' : 1,
\ }}
NeoBundleLazy 'edsono/vim-matchit', { 'autoload' : {
\ 'filetypes': 'ruby',
\ 'mappings' : ['nx', '%'] }}
NeoBundle 'mattn/emmet-vim'
NeoBundle 'kien/ctrlp.vim.git'
NeoBundle 'Shougo/neobundle.vim.git'
NeoBundle 'scrooloose/nerdtree.git'
NeoBundle 'scrooloose/syntastic.git'
NeoBundle has('lua') ? 'Shougo/neocomplete' : 'Shougo/neocomplcache'
NeoBundleLazy 'Shougo/vimshell', {
\ 'depends' : ['Shougo/unite.vim', 'Shougo/vimproc'],
\ 'autoload' : {
\ 'commands' : [
\ 'VimShell','VimShellExecute', 'VimShellInterractive', 'VimShellTermianl',
\ 'VimShellPop', 'VimShellTab', 'VimShellCreate'
\ ],
\ 'mappings' : ['<Plug>(vimshell_switch)'],
\ },
\ }
NeoBundle 'vim-scripts/YankRing.vim'
NeoBundle 'thinca/vim-quickrun'
NeoBundle 'Shougo/vimfiler'
NeoBundle 'ujihisa/unite-colorscheme'
NeoBundle 'tyru/open-browser.vim'
NeoBundle 'Shougo/unite-outline'
NeoBundle 'basyura/bitly.vim'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'mbbill/undotree'
NeoBundle 'troydm/easybuffer.vim'
NeoBundle 'itchyny/lightline.vim'
NeoBundle 'JavaScript-syntax'
NeoBundle 'pangloss/vim-javascript'
NeoBundle 'vim-ruby/vim-ruby'
NeoBundle 'othree/html5.vim'
NeoBundle 'hail2u/vim-css3-syntax'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'osyo-manga/vim-watchdogs'
NeoBundle 't9md/vim-foldtext'
NeoBundle 't9md/vim-textmanip'
NeoBundle 'honza/vim-snippets'
" Visualize indent
NeoBundle 'nathanaelkane/vim-indent-guides'
NeoBundle "morhetz/gruvbox"
NeoBundle "tyru/open-browser.vim"
NeoBundle "losingkeys/vim-niji"
scriptencoding utf-8
" Initialize {{{
if has('vim_starting')
filetype plugin off
filetype indent off
execute 'set runtimepath+=' . expand('~/.vim/bundle/neobundle.vim')
endif
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch "Shougo/neobundle.vim"
call neobundle#end()
if filereadable(expand('~/.vim_neobundle'))
" Define Plugins => ~/.vim_neobundle
source ~/.vim_neobundle
endif
" Activate mouse
if has('mouse')
set mouse=a
endif
" Auto change directory
"au BufEnter * execute ":lcd " . expand("%:p:h")
"}}}
" Check New Bundle
NeoBundleCheck
" Editor Settings {{{
" Enable backspace
set backspace=indent,eol,start
" Encoding
set fileformat=unix
set encoding=utf-8
set fileencoding=utf-8
" ClipBoard
set clipboard+=unnamedplus,unnamed
set nrformats-=octal
set ambiwidth=double
set wildmenu
" Search
set ignorecase
set smartcase
set wrapscan
set incsearch
set hlsearch
" goto last time edited line
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif
" lines
set number
" Syntax
set showmatch matchtime=1
" TabKey
set ts=2
set tabstop=2
set shiftwidth=2
set smarttab
set expandtab
" Indent
set autoindent
set cindent
" Paste mode toggle
set pastetoggle=<C-E>
" No Auto Comment
filetype plugin indent on
autocmd FileType * setlocal formatoptions-=ro
" View
set cmdheight=2
set laststatus=2
set title
set showcmd
set display=lastline
" Filetypes
autocmd BufRead,BufNewFile *.md set filetype=markdown
"nobeep
set visualbell t_vb=
set noerrorbells
set foldmethod=marker
" Vim Tab
" Anywhere SID.
function! s:SID_PREFIX()
return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID_PREFIX$')
endfunction
" Set tabline.
function! s:my_tabline() "{{{
let s = ''
for i in range(1, tabpagenr('$'))
let bufnrs = tabpagebuflist(i)
let bufnr = bufnrs[tabpagewinnr(i) - 1] " first window, first appears
let no = i " display 0-origin tabpagenr.
let mod = getbufvar(bufnr, '&modified') ? '!' : ' '
let title = fnamemodify(bufname(bufnr), ':t')
let title = '[' . title . ']'
let s .= '%'.i.'T'
let s .= '%#' . (i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#'
let s .= no . ':' . title
let s .= mod
let s .= '%#TabLineFill# '
endfor
let s .= '%#TabLineFill#%T%=%#TabLine#'
return s
endfunction "}}}
let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()'
set showtabline=2 " 常にタブラインを表示
" The prefix key.
nnoremap [Tag] <Nop>
nmap t [Tag]
" Tab jump
for n in range(1, 9)
execute 'nnoremap <silent> [Tag]'.n ':<C-u>tabnext'.n.'<CR>'
endfor
" t1 で1番左のタブ、t2 で1番左から2番目のタブにジャンプ
" tc 新しいタブを一番右に作る
map <silent> [Tag]c :tablast <bar> tabnew<CR>
" tx タブを閉じる
map <silent> [Tag]x :tabclose<CR>
" tn 次のタブ
map <silent> [Tag]n :tabnext<CR>
" tp 前のタブ
map <silent> [Tag]p :tabprevious<CR>
"}}}
" key mapping {{{
" Unset Searched high light : Ctrl + L
nnoremap <C-h><C-l> :nohl<CR>
"<C-L>
nnoremap <C-L> :VimFiler -split -simple -winwidth=35 -no-quit<CR>
" Search world from selected area : *
vnoremap * "zy:let @/ = @z<CR>n
" redo : Ctrl + r
nnoremap <C-r> :redo<CR>
" undo : Ctrl + u
nnoremap <C-u> :undo<CR>
" NERDTree toggle : Ctrl + N + T
nnoremap <C-n><C-t> :NERDTree<CR>
"auto cd
au BufEnter *.* execute ":lcd " . expand("%:p:h")
nnoremap <C-t><C-u> :UndotreeToggle<CR>
let g:undotree_SetFocusWhenToggle = 1
let g:undotree_WindowLocation = 'topleft'
let g:undotree_SplitWidth = 35
let g:undotree_diffAutoOpen = 1
let g:undotree_diffpanelHeight = 25
let g:undotree_RelativeTimestamp = 1
let g:undotree_TreeNodeShape = '*'
let g:undotree_HighlightChangedText = 1
let g:undotree_HighlightSyntax = "UnderLined"
"Open TagList Toggle : Ctrl + k
nnoremap <C-t><C-l> :Tlist<CR>
" Neosnippet {{{
" Plugin key-mappings.
" SuperTab like snippets behavior.
imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: "\<TAB>"
"}}}
" Neocomplete {{{
" Plugin key-mappings.
inoremap <expr><C-g> neocomplete#undo_completion()
inoremap <expr><C-l> neocomplete#complete_common_string()
"}}}
"Scheme
aug Scheme
au!
au Filetype scheme setl cindent& lispwords=define
aug END
"}}}
" Color Setting {{{
syntax enable
set background=light
" solarized
let g:solarized_degrade = 0
let g:solarized_bold = 1
let g:solarized_underline = 1
let g:solarized_italic = 1
let g:solarized_termtrans = 0
let g:solarized_contrast = 'normal'
let g:solarized_visibility = 'normal'
let g:solarized_termcolors = 256
colorscheme gruvbox
"colorscheme twilight
" pervious
"highlight Normal ctermbg=none
set cursorline
augroup cch
autocmd! cch
autocmd WinLeave * set nocursorline
autocmd WinEnter,BufRead * set cursorline
augroup END
:hi clear CursorLine
:hi CursorLine gui=underline
highlight CursorLine ctermbg=lightgray
" statusline
set statusline=%t "tail of the filename
set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
set statusline+=%{&ff}] "file format
set statusline+=%h "help file flag
set statusline+=%m "modified flag
set statusline+=%r "read only flag
set statusline+=%y "filetype
set statusline+=%= "left/right separator
set statusline+=%c, "cursor column
set statusline+=%l/%L "cursor line/total lines
set statusline+=\ %P "percent through file
" status colorscheme
augroup InsertHook
autocmd!
autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340
autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90
augroup END
"}}}
" Plugin settings {{{
compiler ruby
let ruby_space_errors=1
" Emmet
let g:user_emmet_settings = {
\ 'lang' : 'ja'
\ }
" Jump to the brackets to the corresponding : %
source $VIMRUNTIME/macros/matchit.vim
if neobundle#is_installed('neocomplete')
" Neocomplete {{{
let g:neocomplete#enable_at_startup = 1
let g:neocomplete#max_list = 20
let g:neocomplete#sources#syntax#min_keyword_length = 3
let g:neocomplete#enable_smart_case = 1
" Define keyword.
if !exists('g:neocomplete#keyword_patterns')
let g:neocomplete#keyword_patterns = {}
endif
let g:neocomplete#keyword_patterns['default'] = '\h\w*'
" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown,eruby setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc
if !exists('g:neocomplete#sources#omni#input_patterns')
let g:neocomplete#sources#omni#input_patterns = {}
endif
let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
let g:neocomplete#sources#rsense#home_directory = '/opt/resense-0.3/'
"}}}
elseif neobundle#is_installed('neocomplcache')
" Neocomplcache {{{
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_max_list = 20
let g:neocomplcache_manual_completion_start_length = 3
let g:neocomplcache_enable_ignore_case = 1
let g:neocomplcache_enable_smart_case = 1
" demiliter for function compl
if !exists('g:neocomplcache_keyword_patterns')
let g:neocomplcache_keyword_patterns = {}
endif
let g:neocomplcache_keyword_patterns._ = '\h\w*'
let g:neocomplcache#sources#rsense#home_directory = '/opt/rsense-0.3'
"}}}
endif
" neosnippet {{{
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets, ~/.vim/snippets'
"}}}
" previm
let g:previm_open_cmd = 'open -a Safari'
let g:indent_guides_enable_on_vim_startup = 1
" lightline.vim
let g:lightline = {
\ 'component': {
\ 'readonly': '%{&readonly?"\u2b64":""}',
\ },
\ 'separator': { 'left': "\u2b80", 'right': "\u2b82" },
\ 'subseparator': { 'left': "\u2b81", 'right': "\u2b83" },
\ }
" dutyl {{{
" ライブラリへのパスを設定
let g:dutyl_stdImportPaths=['/usr/local/include/d2', '/usr/local/include/d/gtkd-2']
" 各種実行ファイルへのパスを登録、パスが通っているなら必要ないです。
call dutyl#register#tool('dcd-client', '/Users/'.$USER.'/.vim/bundle/DCD/bin/dcd-client')
call dutyl#register#tool('dcd-server', '/Users/'.$USER.'/.vim/bundle/DCD/bin/dcd-server')
call dutyl#register#tool('dscanner', '/Users/'.$USER.'/.vim/bundle/Dscanner/bin/dscanner')
" }}}
" neocompleteと併用する場合の設定
if !exists("g:neocomplete#force_omni_input_patterns")
let g:neocomplete#force_omni_input_patterns = {}
else
let g:neocomplete#force_omni_input_patterns.d = '[^.[:digit:] *\t]\%(\.\|->\)\|::'
endif
let g:netrw_nogx = 1 " disable netrw's gx mapping.
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)
let g:openbrowser_open_filepath_in_vim = 0
let g:openbrowser_open_rules = {'open' : 'open -a Safari {shellescape(uri)}&'}
nnoremap[ :silent OpenBrowser %
command! OpenBrowserCurrent execute "OpenBrowser" expand("%:p")
"}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment