Posted at

Mac向けのGUI neovim

More than 1 year has passed since last update.


概要

MacOSX向けにneovimのGUI環境を構築する

terminalのvimもいいけどアプリの切り替えをタブでシャカシャカやってる自分にとっては

GUIで別アプリとして立ち上がっているほうが扱いやすい

OSXのGUI vimはKaoriYaさんっていう印象だったけどneovimはやってないので探してみると

Githubで公開している人がいたので使ってみる

ただ使えればいいよって言う場合はbrewで入れればいい!

$ brew tap neovim/neovim

$ brew tap rogual/neovim-dot-app
$ brew install neovim-dot-app
$ brew linkapps neovim-dot-app


手順


  • githubからソースをクローンする

https://github.com/rogual/neovim-dot-app

$ git clone https://github.com/rogual/neovim-dot-app


  • makeする

$ cd neovim-dot-app/

$ make
VIM=/usr/local/Cellar/neovim/0.2.0/share/nvim NVIM=/usr/local/bin/nvim scons -Q
/bin/sh: scons: command not found
make: *** [all] Error 127


  • 通らない(^p^)



  • sconsコマンドをインストール


    • 調べると次世代のmake的な?知らなかった



$ brew install scons


  • その後、再度makeすると無事に通った


  • make installでインストール


$ sudo make install


  • make install後は普通にlaunch padにneovimという名称で追加されている


カスタマイズ


  • デフォルトでは ~/.config/nvim/init.vimが読み込まれるので普通にnvimの設定がしてあればおっけー

" 行番号表示

set number

" シンタックス有効
syntax enable

" タブ、空行、改行、全角スペースの可視化
set list
set listchars=tab:>.,trail:,extends:>,precedes:<,nbsp:%
function! ZenkakuSpace()
highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta gui=reverse guifg=DarkMagenta
endfunction

" インデント設定
set autoindent
set tabstop=4
set shiftwidth=2
set expandtab

" infoファイル設定
set viminfo=

" undoファイル設定
set noundofile

" 入力補完
inoremap jj <ESC>
inoremap <C-j> <ESC>

" Escの2回押しでハイライト消去
nmap <ESC><ESC> ;nohlsearch<CR><ESC>

" dein.vim設定
let g:cache_home = $XDG_CACHE_HOME
let g:config_home = $XDG_CONFIG_HOME

" dein {{{
let s:dein_cache_dir = g:cache_home . '/dein'

" reset augroup
augroup MyAutoCmd
autocmd!
augroup END

if &runtimepath !~# '/dein.vim'
let s:dein_repo_dir = s:dein_cache_dir . '/repos/repos/github/'

" Auto Download
if !isdirectory(s:dein_repo_dir)
call system('git clone https://github.com/Shougo/dein.vim ' . shellescape(s:dein_repo_dir))
endif

" dein.vim をプラグインとして読み込む
execute 'set runtimepath^=' . s:dein_repo_dir
endif

" dein.vim settings
let g:dein#install_max_processes = 16
let g:dein#install_progress_type = 'title'
let g:dein#install_message_type = 'none'
let g:dein#enable_notification = 1

if dein#load_state(s:dein_cache_dir)
call dein#begin(s:dein_cache_dir)

let s:toml_dir = g:config_home . '/nvim/dein'

call dein#load_toml(s:toml_dir . '/plugins.toml', {'lazy': 0})
call dein#load_toml(s:toml_dir . '/lazy.toml', {'lazy': 1})
if has('nvim')
call dein#load_toml(s:toml_dir . '/neovim.toml', {'lazy': 1})
endif

call dein#end()
call dein#save_state()
endif

if has('vim_starting') && dein#check_install()
call dein#install()
endif
" }}}

" file type setting
au BufRead,BufNewFile,BufReadPre *.coffee set filetype=coffee
au BufRead,BufNewFile,BufReadPre *.launch set filetype=xml
au BufRead,BufNewFile,BufReadPre *.test set filetype=xml
au BufRead,BufNewFile,BufReadPre *.xacro set filetype=xml
au BufRead,BufNewFile,BufReadPre *.world set filetype=xml
au BufRead,BufNewFile,BufReadPre *.urdf set filetype=xml

filetype plugin indent on