atom userがneovimへ...

# atom user が neovim に移行してみました。

## なぜ？？ Vimerに？！

　最近までatom userの僕がなぜneovimを使おうと思ったのか...</br>
　今までatomでの開発に事足りていたが最近、ラズパイや仮想サーバーを借りて開発するるようになったため、terminalでコードを書くことが増えてきました。

## vimでよくない？？
　そー言う方も少なくないと思います。なのでneovimのいいところ、メリットを上げていきたいと思います。

- 強力なデフォルト

- truecolor や bracketed paste のようなモダンなターミナル機能

- 組み込みターミナルエミュレータ(`:terminal` で呼び出せる)

- 早い...です

(`neovim`のいいところメリットは コメントにあるように`Vim`でも対応済みのようです)


使うっきゃないですね👍<br>
それでは早速インストールから始めます

## Install

#### mac
---

```sh
brew install neovim/neovim/neovim
```
#### ubuntu
---
```sh
sudo apt-get install software-properties-common
```

```sh
sudo apt-get install python-software-properties
```

```sh
sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
```


## Setting

neovimの設定ファイルの場所はデフォルトは `$HOME/.config/nvim/init.vim`です。ここに設定を書き込んでいきます。

## Contents

 今、僕が設定している、最低限設定

#### Set
---
```sh:~/.config/nvim/init.vim
set t_Co=256  "screen が 256色"
set termguicolors  "True Colorを使用"
set number "桁表示"
set backspace=indent,eol,start
set mouse=a   "マウス有効"
set laststatus=2 "ステータスラインの表示"
set list "スペースの可視化"
set listchars=tab:»\ ,trail:-,extends:»,precedes:«,nbsp:% "space 対応"
set clipboard=unnamed "clipbordと対応"
set ruler "カーソルが何行目の何列目に置かれているかを表示"
set autoindent "改行時に前の行のインデントを継続する"
set tabstop=2 "画面上でタブ文字が占める幅"
set softtabstop=2 "連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅"
set shiftwidth=2 "自動インデントでずれる幅"
set expandtab "タブ入力を複数の空白入力に置き換える"
set cursorline "横のカーソルライン表示"
set cursorcolumn "縦のカーソルライン表示"
set smartindent "改行時に入力された行の末尾に合わせて次の行のインデントを増減する"
```

### change command
---
```sh:~/.config/nvim/init.vim
inoremap <silent> jj <ESC> "escape insert mode
```

### vim-go
---
```sh:~/.config/nvim/init.vim
vim-go
let g:go_template_autocreate = 0
let g:go_fmt_command = "goimports"
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_term_enabled = 1
let g:go_highlight_build_constraints = 1

let g:deoplete#sources#go#align_class = 1
let g:deoplete#sources#go#sort_class = ['package', 'func', 'type', 'var', 'const']
let g:deoplete#sources#go#package_dot = 1
```

### quick-run
---
```sh:~/.config/nvim/init.vim
quick-run
let g:quickrun_config = {'*': {'hook/time/enable': '1'},}
```

### dein settings
---
```sh:~/.config/nvim/init.vim
" dein settings {{{"
" dein自体の自動インストール"
let s:cache_home = empty($XDG_CACHE_HOME) ? expand('~/.cache') : $XDG_CACHE_HOME
let s:dein_dir = s:cache_home . '/dein'
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'
if !isdirectory(s:dein_repo_dir)
  call system('git clone https://github.com/Shougo/dein.vim ' . shellescape(s:dein_repo_dir))
endif
let &runtimepath = s:dein_repo_dir .",". &runtimepath
" プラグイン読み込み＆キャッシュ作成"
let s:toml_file = fnamemodify(expand('<sfile>'), ':h').'/dein.toml'
if dein#load_state(s:dein_dir)
  call dein#begin(s:dein_dir)
  call dein#load_toml(s:toml_file)
  call dein#end()
  call dein#save_state()
endif
"不足プラグインの自動インストール"
if has('vim_starting') && dein#check_install()
  call dein#install()
endif
"}}}"
```


### nvim term
---
```sh:~/.config/nvim/init.vim
syntax enable
colorscheme atom-dark
```

### plugins
---
　僕の場合はファイルを分けて、書きます。ファイルは`$HOME/.config/nvim/dein.toml`です。

```sh:~/.config/nvim/dein.toml

[[plugins]]
repo = 'Shougo/deoplete.nvim'

[[plugins]]
repo = 'itchyny/lightline.vim'

[[plugins]] #toml syntax
repo = 'cespare/vim-toml'
on_ft = 'toml'

[[plugins]]
repo = 'gosukiwi/vim-atom-dark'

[[plugins]]
repo = 'fatih/vim-go'

[[plugins]]
repo = 'zchee/deoplete-go'

[[plugins]]
repo = 'plasticboy/vim-markdown'

[[plugins]]
repo = 'thinca/vim-quickrun'

```
こんな感じの見た目です。
<img width="578" alt="Screen Shot 2017-07-24 at 12.16.44 AM.png" src="https://qiita-image-store.s3.amazonaws.com/0/192279/26f8bbfb-31da-3bcb-df86-a9cef2963506.png">


### Reference
---
- [NeoVim](https://github.com/neovim/neovim) NEOVIM
- [Installing-Neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim)　インストールの参考に...
- [dein.vim](https://github.com/Shougo/dein.vim) 絶対入れたい
- [neovim method](http://kaworu.jpn.org/vim/neovim) neovimの記事です
- [vim-go](https://github.com/fatih/vim-go) goで開発してる人は入れとこーーー
- [lightline-vim](https://github.com/itchyny/lightline.vim) lightlineが入れれます
- [deoplete-nvim](https://github.com/Shougo/deoplete.nvim) 次世代の補完プラグイン
- [vim-atom-dark](https://github.com/gosukiwi/vim-atom-dark) atom userだったので...愛着が...
- [vim-markdown](https://github.com/plasticboy/vim-markdown) markdownをよく書く人へ...
- [quickrun](https://github.com/thinca/vim-quickrun) vim内で実行可能です