LoginSignup
0
1

More than 5 years have passed since last update.

deinに乗り換えよう(第四段階)

Posted at

前提条件

  • MacOS ElCapitan 10.11.6
  • vim8.0
  • homebrew
  • ctags
  • iTerm2

今回の作業

ここまでで入れたプラグインの設定

手順

ctagsを設定

deinじゃないけどw
設定しておかないと、vimrcに設定したものが正しいか判断できないので
ctagsはhomebrewでいれておく

設定ファイルを作成

$ vi .ctags
--append=yes
--recurse=yes
--html-kinds=af
--php-kinds=cfd
--sh-kinds=f

appendsはファイルが存在するとき追加するか?recurseはctags -Rと同じ効果。
設定できる言語はctagsのマニュアルに書いてある

tag作成

タグファイルのディレクトリをまとめたいので、ディレクトリを作っておく
今回はPHPファイルが入ってるディレクトリを対象に作ります

$ mkdir .tags
$ cd (タグを作りたいプロジェクトのディレクトリ。)
$ ctags -f ~/.tags/php.tags `pwd`

またはファイルをvimで開いたままでtagを追加(vim-tagsがここで役に立つ)

:TagsGenerate

したら、.tags/php.tagsに書き出される。
いたってシンプル。

vimrcの設定

インストール済みのプラグイン関連の設定 + プラグイン関係なく必要な設定を。

  • neosnippet
  • neocomplete
  • NERDTree
  • syntastic
  • tagbar
  • vim-tags

" *******************************************************
" neosnippet
" *******************************************************
" Plugin key-mappings.
imap <C-k>     <Plug>(neosnippet_expand_or_jump)
smap <C-k>     <Plug>(neosnippet_expand_or_jump)
xmap <C-k>     <Plug>(neosnippet_expand_target)

" SuperTab like snippets behavior.
"imap <expr><TAB>
" \ pumvisible() ? "\<C-n>" :
" \ neosnippet#expandable_or_jumpable() ?
" \    "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"

" For conceal markers.
if has('conceal')
    set conceallevel=2 concealcursor=niv
endif

" *******************************************************
" neocomplete
" *******************************************************
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplete#sources#syntax#min_keyword_length = 3

" Define dictionary.
let g:neocomplete#sources#dictionary#dictionaries = {
    \ 'default' : '',
    \ 'vimshell' : $HOME.'/.vimshell_hist',
    \ 'scheme' : $HOME.'/.gosh_completions'
        \ }

" Define keyword.
if !exists('g:neocomplete#keyword_patterns')
    let g:neocomplete#keyword_patterns = {}
endif
let g:neocomplete#keyword_patterns['default'] = '\h\w*'

" Plugin key-mappings.
inoremap <expr><C-g>     neocomplete#undo_completion()
inoremap <expr><C-l>     neocomplete#complete_common_string()

" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()
    return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"
endfunction
" <TAB>: completion.
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"

" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags


" *******************************************************
" NERDTree
" *******************************************************
" ブックマーク初期表示
let g:NERDTreeShowBookmarks=1
"
let g:NERDTreeChDirMode=2
" windowサイズ設定
let g:NERDTreeWinSize=20
" 表示したくないファイル、ディレクトリ
let g:NERDTreeIgnore=['\.DS_Store$', '\.swp$', '\~$', '\.so']
" vim起動時に常に表示
autocmd vimenter * NERDTree
" NERDTreeだけが残る場合はvim終了
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

" *******************************************************
" syntastic
" *******************************************************
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

let g:syntastic_javascript_checkers=['eslint']
let g:syntastic_scss_checkers = ['scss_lint']
let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']

" *******************************************************
" tagbar
" *******************************************************
" windowサイズ
let g:tagbar_width=20
" 起動時に常に表示
autocmd vimenter *.php TagbarOpen

" *******************************************************
" vim-tags
" *******************************************************
let g:vim_tags_project_tags_command = "/usr/local/Cellar/ctags/5.8_1/bin/ctags -f .tags -R . 2>/dev/null"
let g:vim_tags_auto_generate = 1

" *******************************************************
" ctags
" *******************************************************
" phpファイル用tags
au BufNewFile,BufRead *.php set tags+=$HOME/.tags/php.tag

コメント入れてないところは、ほぼ本家のコピペ

NERDTreeを入れて

set mouse=a

の設定をしていると、iTerm2でこれまでcommand+Cでコピーできていたはずができない・・・
iTermの「Applications in terminal may access clipboard」をオフにするとNERDTreeのウィンドウまでコピーするw

set clipboard=unnamed,autoselect

の設定でvimmerお馴染みのヤンクしたテキストがクリップボードにコピー
autoselectがビジュアルモードで選択したテキストがクリップボードにコピーされる

ちょっと長くなってきたので、次へ続く

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1