Skip to content

Instantly share code, notes, and snippets.

@utisam
Created February 13, 2016 20:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save utisam/77b586693b36289ee7fe to your computer and use it in GitHub Desktop.
Save utisam/77b586693b36289ee7fe to your computer and use it in GitHub Desktop.
scriptencoding utf-8
""""""""""""""""
" キーバインド "
""""""""""""""""
" 挿入モードで使うと殴りたくなるキー対策
nnoremap OA gi<Up>
nnoremap OB gi<Down>
nnoremap OC gi<Right>
nnoremap OD gi<Left>
nnoremap OH gi<Home>
nnoremap OF gi<End>
" dd/D と yy/Y で一貫性を持たせる
nnoremap Y y$
" increment/decrement the next number
nnoremap + <C-a>
nnoremap - <C-x>
" insert modeを抜けたらIMEをOFF
inoremap <silent> <ESC> <ESC>:set iminsert=0<CR>
" *: ビジュアルモードで選択した文字列を検索
vnoremap * "zy:let @/ = @z<CR>n
""""""""
" 表示 "
""""""""
"カラースキーマを設定
colorscheme slate
" シンタックスハイライト
if &t_Co > 1
syntax enable
endif
" □とか○の文字があってもカーソル位置がずれないようにする
set ambiwidth=double
" 新しい行のインデントを現在行と同じにする
set autoindent
" バックスペースで削除可能にする
set backspace=start,eol,indent
" カーソルラインを表示する
set cursorline
" 文字コードの設定
set encoding=utf-8
set fileencodings=utf-8,iso-2022-jp,sjis,euc-jp
" 検索時にハイライト
set hlsearch
" インクリメンタル検索を有効化
set incsearch
" 空白文字を表示
set list
set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
" ファイルのコメントによる独自設定を有効に
set modeline
" マウス有効
set mouse=a
" 行番号を表示
set number
" 補完のポップアップメニューの高さの最大値
set pumheight=10
" カーソルが何行目の何列目に置かれているかを表示する
set ruler
" スクロールする時に下が見えるようにする
set scrolloff=5
" コマンドを画面最下部に表示する
set showcmd
" 対応するカッコを 0.1 秒だけ表示
set showmatch
set matchtime=1
" 新しい行を作ったときに高度な自動インデントを行う
set smartindent
"ウインドウタイトルを設定する
set title
" アンドゥ情報を保存
try
set undofile
set undodir=~/.vim/undo
catch
endtry
" 行を超えるカーソル移動
set whichwrap=b,s,[,],<,>,~
" 補完時の一覧表示機能有効化
set wildmenu wildmode=list:full
" ステータスラインを表示
set laststatus=2 " ステータスラインを常に表示
set statusline=%F%m%r%h%w\%=[%Y\|%{&ff}\|%{&fileencoding}]\ %L\ lines\ (%04l,%04v) " ステータスラインの内容
" タブ幅の設定
set expandtab " タブをスペースに置き換える
set tabstop=4
set shiftwidth=4
set softtabstop=4
"---- GVIM ----
" OSのクリップボードを使用する
set clipboard+=unnamed
" フォント
if has("mac")
set guifont=Ricty\ Discord:h16
elseif has("unix")
set guifont=Ricty\ Discord\ 16
set guifontwide=Ricty\ Discord\ 16
endif
" ハイライトは下線のみ
highlight clear CursorLine
highlight CursorLine cterm=underline gui=underline
" タブの表示を設定
function! s:tabpage_label(n)
" t:title と言う変数があったらそれを使う
let title = gettabvar(a:n, 'title')
if title !=# ''
return title
endif
" タブページ内のバッファのリスト
let bufnrs = tabpagebuflist(a:n)
" カレントタブページかどうかでハイライトを切り替える
let hi = a:n is tabpagenr() ? '%#TabLineSel#' : '%#TabLine#'
" バッファが複数あったらバッファ数を表示
let no = len(bufnrs)
if no is 1
let no = ''
endif
" タブページ内に変更ありのバッファがあったら '+' を付ける
let mod = len(filter(copy(bufnrs), 'getbufvar(v:val, "&modified")')) ? '+' : ''
let sp = (no . mod) ==# '' ? '' : ' ' " 隙間空ける
" カレントバッファ
let curbufnr = bufnrs[tabpagewinnr(a:n) - 1] " tabpagewinnr() は 1 origin
let fname = pathshorten(bufname(curbufnr))
let label = "[" . a:n . "]" . no . mod . sp . fname
return '%' . a:n . 'T' . hi . label . '%T%#TabLineFill#'
endfunction
function! MakeTabLine()
let titles = map(range(1, tabpagenr('$')), 's:tabpage_label(v:val)')
let sep = ' ' " タブ間の区切り
let tabpages = join(titles, sep) . sep . '%#TabLineFill#%T'
return tabpages
endfunction
set tabline=%!MakeTabLine()
" neobundle
if isdirectory(expand('~/.vim/bundle'))
if has('vim_starting')
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
call neobundle#begin(expand('~/.vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
" Add or remove your Bundles here:
" unite
NeoBundle 'Shougo/unite.vim'
" vim-clang
NeoBundle 'justmao945/vim-clang'
let g:clang_c_options = '-std=c11'
let g:clang_cpp_options = '-std=c++1z -stdlib=libc++ --pedantic-errors'
" jedi-vim
NeoBundle 'davidhalter/jedi-vim'
" rust.vim
NeoBundle 'rust-lang/rust.vim'
call neobundle#end()
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
endif
autocmd FileType python setlocal completeopt-=preview
autocmd CompleteDone * pclose
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment