ユウの小屋

PCの更新内容やSLPでの活動、開発したもの等をupしていきます

Vimにneosnippetを導入

ローカルのVimにneosnippetを導入しました。

手順は以下の通り。

① .vimrcに下記の内容を記述

② :NeoBundleInstall

" スニペット補完
NeoBundle 'Shougo/neosnippet'
NeoBundle 'Shougo/neosnippet-snippets'

" 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> 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>"

" For snippet_complete marker.
if has('conceal')
set conceallevel=2 concealcursor=i
endif

 

これで、導入は完了。

試しに test.c で main + C-k を入力すると、以下のように入力された。

int main(int argc, char const* argv[])
{

return 0;
}

 

これは個人的な書き方と違っているので、snippetファイルをいじることに。

~/.vim/bundle/neosnippet-snippets/neosnippetsのc.snipを開き、下記のように修正しました。

// before
# hard-tab is necessary; C indent doesn't support this.
snippet main
int main(int argc, char const* argv[])
{
${0:TARGET}
return 0;
}

----------------------------------------------------------------------------------
// after
# hard-tab is necessary; C indent doesn't support this.
snippet main
int main(int argc, char const* argv[]) {
${0:TARGET}
return 0;
}

あと、main(void)の文が無かったので、それも追加。

# hard-tab is necessary; C indent doesn't support this.
snippet mainv
int main(void) {
${0:TARGET}
return 0;
}

設定は以上で終わり。

あとは早く慣れて、スムーズにコーディングできるようにしたいです。