なぜXcodeを捨てるのか
Linuxでも動く環境を作りたいからです(大嘘)
neovim使いたいだけです。
neovimを入れる
Install
以下Mac
Mac以外でもググればきっとわかります。
$ brew install neovim/neovim/neovim
$ brew install python3
$ pip3 install neovim
pythonの環境とかは適当に。3が必要です。
1行目でneovim本体を入れてます。
https://github.com/neovim/neovim
3行目は"Python client to Neovim"です。neovimでpython使うためのラッパ的なsomethingです。(多分)
https://github.com/neovim/python-client
Basic use
以下のコマンドで起動します。
$ nvim
Settings
設定ファイル
~/.config/nvim/init.vim
plugin
ダークパワーを得る
dein.vimを使いましょう。
install方法は公式リポジトリをみてください。
Dark powered Vim/Neovim plugin manager
https://github.com/Shougo/dein.vim
これでダークパワーを得ました。
さらにダークパワーを得る
deoplete.nvimを使いましょう。
Dark powered asynchronous completion framework for neovim
https://github.com/Shougo/deoplete.nvim
ダークパワーが高まってきました。
Swiftを書くためのpluginたち
適当に以下のpluginをいれます。
- plugin 管理
- Shougo/dein.vim
- 補完
- Shougo/deoplete.vim
- landaire/deoplete-swift
- 実行
- thinca/vim-quickrun
- Syntax check
- scrooloose/syntastic
- kballard/vim-swift
- Syntax highlight
- keith/swift.vim
" (略)
call dein#add('scrooloose/syntastic')
call dein#add('thinca/vim-quickrun')
call dein#add('Shougo/deoplete.nvim')
call dein#add('landaire/deoplete-swift')
call dein#add('kballard/vim-swift')
call dein#add('keith/swift.vim')
" (略)
" quickrun
" normalモードで \r で実行
let g:quickrun_config = {}
let g:quickrun_config['swift'] = {
\ 'command': 'xcrun',
\ 'cmdopt': 'swift',
\ 'exec': '%c %o %s',
\}
" deopleteの自動補完on
let g:deoplete#enable_at_startup = 1
" swiftの自動補完on
let g:deoplete#sources#swift#daemon_autostart = 1
(略)
SourceKittenを入れる
最後にSourceKittenを入れます。
https://github.com/jpsim/SourceKitten
deoplete-swiftはこいつの補完エンジンを使ってdeopleteに渡してるイメージです。
https://github.com/landaire/deoplete-swift
リポジトリを見ると
let g:deoplete#sources#swift#sourcekittendaemon = '' location of the sourcekittendaemon on your system. This is optional and will be found in your $PATH if not set
と書いてあるので、普通にPATH通ってるところにSourceKittenをインストールすれば大丈夫です。
完成
だいたいこんな感じです。
非同期補完しながら分割ウィンドウに実行結果出してます。
まとめ
- neovimでSwiftを書こう。
- Linuxでも多分いける。
今後の展望
- 'kballard/vim-swift'はiOSシミュレータとかも扱えるらしい?(未確認)のでもうちょっと試してみたい。