Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Neovim導入 -思考の速さの編集を求めて-

$
0
0

経緯

Neovimの設定方法、エラーとの戦いを主に記しています。
そして、ただ今奮闘中であります。

  • 書籍「実践Vim 思考のスピードで編集しよう!」のタイトルに惹かれ、
  • まずはゴリゴリでモダンな環境を整えるところから始める

とりあえずURL貼っとく
実践Vim 思考のスピードで編集しよう! (amazon)

これまでやったことをまとめる。
すべてうまくいっているわけではない。

導入環境

2018/4/6 現在

  • OS macOS Sierra 10.12.6
  • neovim 0.2.2

ソースコードはここに https://github.com/KenziTajima/neovim

インストール

Neovim自体は初めて名前を聞いた時から興味本位でインストールはしていた。
だがしかし、どうやってインストールしたかよく覚えていないのでbrewでインストールしておく。
以下を参考にした。
neovimをインストールしてみました (Qiita)

dein.vimを導入

まずはこのプラグインから。
これは闇の力を宿したプラグインを管理するプラグイン。
インストールにはGitHubのREADMEを参考に以下の手順をこなす
URL: Shougo/dein.vim

以下のコマンドをターミナルで実行する。

$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
$ sh ./installer.sh {specify the installation directory}

 注意: 2行目の "{}" もパス名に含める。(自分は一回引っかかった。)

installer.sh実行時に出てきた文字列を設定ファイル(init.vim)に追記する。

tomlファイルでプラグインを管理するためにinit.vimでファイルを指定する。

" dein.toml, dein_layz.tomlファイルのディレクトリをセットlets:toml_dir= expand('~/.config/nvim')" 起動時に読み込むプラグイン群call dein#load_toml(s:toml_dir.'/dein.toml',{'lazy':0})" 遅延読み込みしたいプラグイン群call dein#load_toml(s:toml_dir.'/dein_lazy.toml',{'lazy':1})

  参考 dein.vimでプラグイン管理のはじめ方 (Qiita)

見た目を変える

導入したプラグイン

theme設定 (init.vimに記述)

colorscheme onedark
letg:airline_theme='oceanicnext'

airlineとpowerlineの違いって何だろう。(誰か教えてください)
以下設定

" パワーラインでかっこよく"let g:airline_powerline_fonts = 1" カラーテーマ指定してかっこよく"let g:airline_theme = 'badwolf'" タブバーをかっこよくletg:airline#extensions#tabline#enabled =1" 選択行列の表示をカスタム(デフォルトだと長くて横幅を圧迫するので最小限に)letg:airline_section_z= airline#section#create(['windowswap','%3p%% ','linenr',':%3v'])" virtulenvを認識しているか確認用に、現在activateされているvirtualenvを表示(vim-virtualenvの拡張)letg:airline#extensions#virtualenv#enabled =1" gitのHEADから変更した行の+-を非表示(vim-gitgutterの拡張)letg:airline#extensions#hunks#enabled =0" Lintツールによるエラー、警告を表示(ALEの拡張)letg:airline#extensions#ale#enabled =1letg:airline#extensions#ale#error_symbol ='E:'letg:airline#extensions#ale#warning_symbol ='W:'

参考元は忘れました。<(_ _)>

QuickRunを導入

tomlに記述してインストール。

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

python周りでエラーが出たから対処する。
参考 Neovim の CheckHealth において Python 連携まわりで警告が出るときの対処
(Qiita)

それでもエラー

Failed to load python host. ...

と出たので

let g:python_host_prog=$PYENV_ROOT.'/versions/neovim-2/bin/python'

let g:python_host_prog=$PYENV_ROOT.'/versions/neovim-2/bin/python2.7'

に変更した。

<C-c>で強制終了させる。

参考 vim-quickrun シンプルかつまともに使える設定 (Qiita)

調べたら以下のようにinit.vimに記述したら好きなタイミングで終了できるらしい

nnoremap <expr><silent><C-c> quickrun#is_running() ? quickrun#sweep_sessions():"\<C-c>"

しかし以下のように表示されるのみ

Type  :quit<Enter>toexit Nvim

ショートカットキーを変更するとただ反応しなくなった。
何故なのだろう。誰か教えてください。

vimprocを用いた非同期処理

参考は同上 vim-quickrun シンプルかつまともに使える設定 (Qiita)

まずはvimprocをインストール
(dein.toml)に以下のように記述する。

[[plugins]]repo='Shougo/vimproc.vim'build='make'

次にQuickRunの設定
以下のように(init.vim)に記述する。

letg:quickrun_config= get(g:,'quickrun_config',{})letg:quickrun_config._ ={      \'runner':'vimproc',      \'runner/vimproc/updatetime':60,      \'outputter':'error',      \'outputter/error/success':'buffer',      \'outputter/error/error':'quickfix',      \'outputter/buffer/split':':rightbelow 8sp',      \'outputter/buffer/close_on_empty':1,      \}

結果
以下のようなエラーが出る。

[vimproc] vimproc's DLL: "/Users/local/.cache/dein/repos/github.com/Shougo/vimproc.vim/lib/vimproc_mac.so" is not found.  Please read :help vimproc and make it.
Error detected while processing function quickrun#command[10]..quickrun#run[10]..303[10]..395:
line    1:
E117: Unknown function: vimproc#pgroup_open
E15: Invalid expression: vimproc#pgroup_open(join(a:commands, ' && '))

vimprocが正しくインストールされていないようなので以下のコマンドを実行する。

call dein#update()

しかし、vimprocはインストールされていない様子。
何故だろう。誰か教えてください。

まだ使っていないプラグイン

  • deoplate
  • denite
  • neosnippet
  • vim-fugitive
  • vim-gitgutter

その他

vimrcに記述した設定を移植した

" setting"文字コードをUFT-8に設定set fenc=utf-8" バックアップファイルを作らないset nobackup
" スワップファイルを作らないsetnoswapfile" 編集中のファイルが変更されたら自動で読み直すset autoread
" バッファが編集中でもその他のファイルを開けるようにset hidden
" 入力中のコマンドをステータスに表示するset showcmd
" シンタックスハイライト
syntax enable
" Y を、行末までのヤンクにする
nnoremap Y y$
" displayオプションset display=lastline
" 補完メニューの高さset pumheight=10" 括弧を入力した時に、対応する括弧に一瞬カーソル飛ぶset showmatch
set matchtime=1" インクリメント、デクリメントへのマッピング
nnoremap +<C-a>
nnoremap -<C-x>" 不可視文字を表示set clipboard+=unnamed
set clipboard=unnamed
" 括弧補完
inoremap {{}<LEFT>
inoremap (()<LEFT>
inoremap <<><LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
inoremap [[]<LEFT>" 見た目系" タイトルを表示set title
" 行番号を表示setnumber" 現在の行を強調表示set cursorline
" 現在の行を強調表示(縦)"set cursorcolumn" 行末の1文字先までカーソルを移動できるようにset virtualedit=onemore
" インデントはスマートインデントset smartindent
" ビープ音を可視化set visualbell
" 括弧入力時の対応する括弧を表示set showmatch
" ステータスラインを常に表示set laststatus=2" コマンドラインの補完set wildmode=list:longest
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj
nnoremap k gk


" Tab系" 不可視文字を可視化(タブが「▸-」と表示される)set list listchars=tab:\▸\-" Tab文字を半角スペースにするset expandtab
" 行頭以外のTab文字の表示幅(スペースいくつ分)set tabstop=4" 行頭でのTab文字の表示幅set shiftwidth=4" 検索系" 検索文字列が小文字の場合は大文字小文字を区別なく検索するset ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索するset smartcase
" 検索文字列入力時に順次対象文字列にヒットさせるset incsearch
" 検索時に最後まで行ったら最初に戻るset wrapscan
" 検索語をハイライト表示set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc>:nohlsearch<CR><Esc>

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>