よしかわーるど

プログラミングで世界を変える

vimをカスタマイズする

どうも、よしかわです。

最近、OSをクリーンインストールしたりしているので、環境を綺麗に構築したくなりました。

今回は、vimについて触れていきます。

対象読者

  • vim を使っていきたい人
  • ターミナルで作業していく人

はじめに

年が変わり、自分の開発環境を整えるためにテキストエディタについて触れます。

Neovim ではなく、vim を使用していきますので、ご了承下さい。

vim-plug を導入

僕みたいなスタイリッシュな人間には vim-plug がおすすめです。

以下参照です。

junegunn/vim-plug

vim は素でも使いやすいのですが、IDE などと比べるとどうしても目劣りしますね。

プラグインで自由自在にカスタマイズしていきましょう。

vim-plug の導入は以下のコマンドを実行します。

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows は以下のコマンドを PowerShell で実行。

md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
  $uri,
  $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
    "~\vimfiles\autoload\plug.vim"
  )
)

vimrcを書いていく

.vimrcを書いていきましょう。

プラグインをcall plug#begin()call plug#end()の間に書いていきます。

以下を参考にしてください。

call plug#begin('~/.vim/plugged')
Plug 'tomasr/molokai'
" Vim Async Process
Plug 'Shougo/vimproc.vim', { 'do': 'make' }
" file open
Plug 'Shougo/unite.vim'
Plug 'Shougo/neomru.vim'
" file tree
Plug 'scrooloose/nerdtree'
" Git
Plug 'tpope/vim-fugitive'
" Golang
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
" JavaScript
Plug 'pangloss/vim-javascript', {'for': 'javascript'}
" JavaScript Syntax
Plug 'jelera/vim-javascript-syntax', {'for': 'javascript'}
" Node.js
Plug 'moll/vim-node', {'for': 'javascript'}
" JSON
Plug 'leshill/vim-json', {'for': 'json'}
" PHP
Plug 'StanAngeloff/php.vim', {'for': 'php'}
Plug 'beanworks/vim-phpfmt', {'for': 'php'}
Plug 'flyinshadow/php_localvarcheck.vim', {'for': 'php'}
" Ruby
Plug 'vim-ruby/vim-ruby', {'for': 'ruby'}
Plug 'kana/vim-textobj-user', {'for': 'ruby'}
Plug 'rhysd/vim-textobj-ruby', {'for': 'ruby'}
Plug 'tpope/vim-rails', {'for': 'ruby'} 
Plug 'tpope/vim-bundler', {'for': 'ruby'} 
" HTML5 plugin
Plug 'othree/html5.vim'
" Markdown
Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
" Docker
Plug 'ekalinin/Dockerfile.vim'
" GitHub plugin
Plug 'junegunn/vim-github-dashboard'
Plug 'mattn/gist-vim'
" snippet
Plug 'Townk/vim-autoclose'
Plug 'Shougo/neosnippet.vim'
Plug 'Shougo/neosnippet-snippets'
Plug 'tpope/vim-endwise'
Plug 'Townk/vim-autoclose'
" Auto Complete
Plug 'shougo/neocomplete.vim'
" Syntax Check
Plug 'scrooloose/syntastic'
" Format
Plug 'junegunn/vim-easy-align'
Plug 'puppetlabs/puppet-syntax-vim'
" Run SourceCode
Plug 'thinca/vim-quickrun'
call plug#end()

syntax enable
colorscheme molokai
set number
set t_Co=256
set encoding=utf-8
scriptencoding utf-8
set autoindent
set smartindent
set ttyfast
set vb t_vb=
set novisualbell
set ruler
set title
set showcmd

let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1

nnoremap <silent><C-e> :NERDTreeToggle<CR>

" golang setting
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)

colorschemeはmolokaiにしてありますが、自分の好みに合わなければ変えてください。

NERDTreeでツリー型のファイル表示をしています。

:NERDTreeというコマンドでカレントディレクトリをツリー表示できます。

僕のvimrcでは、C-e(Ctrl + e)でツリー表示できます。

nerdtree

他にも様々な機能がありますが、今回はここくらいにしておきます。

ここまで読んでいただき、ありがとうございました。

関連の記事

ターミナルをカスタマイズする

tmuxをカスタマイズする

参考文献

ミニマリストの僕には vim-plug が性に合っている

脱初心者を目指すVimmerにオススメしたいVimプラグインや.vimrcの設定