studies

いろいろ勉強用備忘録的な感じ

いろいろ環境設定(主にvim)

ソースコードが読めない(絶望)。

あまりにダメダメだから、環境を色々試してみることにした。

やったこと↓

とりあえず、今は

Ctrl-Aでtmuxのコントロール(Actionのつもり)。
Ctrl-Tでファイルツリー表示(Treeのつもり)。
Ctrl-Gでカーソル位置の関数定義/参照にジャンプ(Goのつもり)。
Ctrl-JでQuickFixの選択を下に(vimに合わせて)。
Ctrl-KでQuickFixの選択を上に(vimに合わせて)。
Ctrl-Lでファイル内関数一覧表示(Listのつもり)。
Ctrl-Oでジャンプ元に戻る(デフォルト通り)。
Ctrl-Iで進む(デフォルト通り)。

という感じにキーバインドしてみた。

vimプラグイン大杉ワロタ。
設定項目も多すぎ。
しんどい。

でもなんかかっこよくなったぞ(見た目だけ)。
f:id:developingskills1110:20170423235836p:plain

とりあえず、ネットでパクりまくったvimrcをメモ。

"""""""""""
"dein
""""""""""""
if &compatible
    set nocompatible
endif
set runtimepath+=~/.vim/dein.vim
call dein#begin(expand('~/.vim/'))
call dein#add('scrooloose/nerdtree')
call dein#add('Shougo/vimproc.vim')
call dein#add('Shougo/neocomplete.vim')
call dein#add('justmao945/vim-clang')
call dein#add('Shougo/neoinclude.vim')
call dein#end()


""""""""""""
"nerdtree
""""""""""""
noremap <C-t> :NERDTreeToggle<CR>
let g:NERDTreeShowBookmarks = 1
let g:NERDTreeShowHidden = 1
let g:NERDTreeDirArrows = 1
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif


""""""""""""
"neocomplete
""""""""""""
let g:neocomplete#enable_at_startup = 1
"let g:neocomplete#enable_auto_select = 1
if !exists('g:neocomplete#force_omni_input_patterns')
        let g:neocomplete#force_omni_input_patterns = {}
endif
let g:neocomplete#force_overwrite_completefunc = 1
let g:neocomplete#force_omni_input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
let g:neocomplete#force_omni_input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'

" disable auto completion for vim-clanG
let g:clang_auto = 0
let g:clang_complete_auto = 0
let g:clang_auto_select = 0
let g:clang_use_library = 1

" default 'longest' can not work with neocomplete
let g:clang_c_completeopt   = 'menuone'
let g:clang_cpp_completeopt = 'menuone'

if executable('clang-3.8')
    let g:clang_exec = 'clang-3.8'
elseif executable('clang-3.7')
    let g:clang_exec = 'clang-3.7'
elseif executable('clang-3.6')
    let g:clang_exec = 'clang-3.6'
elseif executable('clang-3.5')
    let g:clang_exec = 'clang-3.5'
elseif executable('clang-3.4')
    let g:clang_exec = 'clang-3.4'
else
    let g:clang_exec = 'clang'
endif

if executable('clang-format-3.8')
    let g:clang_format_exec = 'clang-format-3.8'
elseif executable('clang-format-3.7')
    let g:clang_format_exec = 'clang-format-3.7'
elseif executable('clang-format-3.6')
    let g:clang_format_exec = 'clang-format-3.6'
elseif executable('clang-format-3.5')
    let g:clang_format_exec = 'clang-format-3.5'
elseif executable('clang-format-3.4')
    let g:clang_format_exec = 'clang-format-3.4'
else
    let g:clang_exec = 'clang-format'
endif

let g:clang_c_options = '-std=c11'
let g:clang_cpp_options = '-std=c++11 -stdlib=libc++'

inoremap <expr><CR>  pumvisible() ? "\<C-y>" : "\<CR>"   
inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<TAB>"   
inoremap <expr><S-TAB>  pumvisible() ? "\<Up>" : "\<S-TAB>"
inoremap <expr><C-j>  pumvisible() ? "\<Down>" : "<C-j>"
inoremap <expr><C-k>  pumvisible() ? "\<Up>" : "<C-k>"
inoremap <expr><Space> pumvisible() ? "\<C-y><Space>" : "\<Space>"
inoremap <expr>( pumvisible() ? "\<C-y>(" : "("
inoremap <expr>) pumvisible() ? "\<C-y>)" : ")"
inoremap <expr>[ pumvisible() ? "\<C-y>[" : "["
inoremap <expr>] pumvisible() ? "\<C-y>]" : "]"
inoremap <expr>< pumvisible() ? "\<C-y><" : "<"
inoremap <expr>> pumvisible() ? "\<C-y>>" : ">"
inoremap <expr>* pumvisible() ? "\<C-y>*" : "*"
inoremap <expr>& pumvisible() ? "\<C-y>&" : "&"
inoremap <expr>" pumvisible() ? "\<C-y>\"" : "\""
inoremap <expr>' pumvisible() ? "\<C-y>'" : "'"
inoremap <expr>: pumvisible() ? "\<C-y>:" : ":"
inoremap <expr>; pumvisible() ? "\<C-y>;" : ";"
inoremap <expr>` pumvisible() ? "\<C-y>`" : "`"

"""""""""""
"gtags
"""""""""""
function! GtagsCursor_()
  execute "GtagsCursor"
  if (len(getqflist()) <= 1)
    cclose
  endif
endfunction

nnoremap <C-g> :call GtagsCursor_()<CR>
noremap <C-l> :Gtags -f %<CR>
noremap <C-j> :cn<CR>
noremap <C-k> :cp<CR>
nnoremap <C-q> :cclose<CR>

""""""""""""
"taglist
""""""""""""
let Tlist_Use_Right_Window = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_File_Fold_Auto_Close = 1
nnoremap <C-l> :Tlist<CR>

""""""""""""
"general
""""""""""""
set tabstop=4
set shiftwidth=4
set expandtab

set number
set nowrap

set cindent
set cinoptions+=g0
set showmatch

syntax on

set ignorecase
set hlsearch
nnoremap / /\v<C-r><C-w>
vnoremap / "zy/\v<C-r>z
nnoremap <ESC><ESC> :nohlsearch<CR>

nnoremap <TAB> :bn<CR>
nnoremap <S-TAB> :bp<CR>
nnoremap <S-h> <C-w>h
nnoremap <S-l> <C-w>l
nnoremap <Bar> :vsp<CR>

nnoremap <Space>h ^
nnoremap <Space>l $

set statusline=[%n]\ %f
set laststatus=2

set list
set listchars=tab:^-,eol:$

set clipboard=unnamed,autoselect

set colorcolumn=80

set nowrap

colorscheme darkblue