質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

3回答

13347閲覧

nvimのカラースキームが反映されません

kon_ta

総合スコア81

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2016/06/09 04:18

###前提・実現したいこと
現在、nvimのプラグイン管理をdein.vimで行っていて、tomlに記載したカラースキームをnvimに反映させたい

###発生している問題・エラーメッセージ

dein.tomlに記載したカラースキームがnvimに反映されない

###該当のソースコード
<init.vim>
1 set number
2 set title
3 set showmatch
4 syntax enable
5 set tabstop=4
6 set smartindent
7 "set background=dark
8 "colorscheme solarized
9 "=======================keymap================================
10 nnoremap <silent><C-e> :NERDTreeToggle<CR>
11
12
13 "=========================dein=========================
14 "dein settings {{{
15 if &compatible
16 set nocompatible
17 endif
18
19 " reset augroup
20 augroup MyAutoCmd
21 autocmd!
22 augroup END
23
24 let s:cache_home = empty($XDG_CACHE_HOME) ? expand('$HOME/.cache') : $XDG_CACHE_HOME
25 let s:dein_dir = s:cache_home . '/dein'
26 let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'
27
28 if !isdirectory(s:dein_repo_dir)
29 call system('git clone https://github.com/Shougo/dein.vim ' . shellescape(s:dein_repo_dir))
30 endif
31 execute 'set runtimepath^=' . s:dein_repo_dir
32
33 let g:dein#install_max_processes = 16
34 let g:dein#install_progress_type = 'title'
35 let g:dein#enable_notification = 1
36 let s:toml = '/.config/dein/dein.toml'
37 let s:lazy_toml = '
/.config/dein/dein_lazy.toml'
38
39 if dein#load_state(s:dein_dir)
40 call dein#begin(s:dein_dir, [s:toml, s:lazy_toml])
41 call dein#load_toml(s:toml, {'lazy': 0})
42 call dein#load_toml(s:lazy_toml, {'lazy': 1})
43 call dein#end()
44 call dein#save_state()
45 endif
46
47 if has('vim_starting') && dein#check_install()
48 call dein#install()
49 endif
50 " }}}

<dein.toml>

1 [[plugins]]
2 repo = 'Shougo/dein.vim'
3
4 [[plugins]] # toml syntax
5 repo = 'cespare/vim-toml'
6 on_ft = 'toml'
7
8
9 #[[plugins]]
10 #repo = 'altercation/vim-color-solarized'
11
12 # TMUX
13 repo = 'tmux-plugins/vim-tmux'
14 on_ft = 'tmux'
15
16
17 [[plugins]] # ファイルをツリー構造で表示可能
18 repo = 'scrooloose/nerdtree'
19
20 [[plugins]]
21 repo = 'Shougo/unite.vim'
22
~
dein.toml

###試したこと
他の方が公開しているように設定ファイルを記載しました。
init.vim,dein.tomlの階層はそれぞれ
~/.config/nvim/init.vim
~/.config/dein/dein.toml です

###補足情報(言語/FW/ツール等のバージョンなど)

nerdtreeなどの他のプラグインは使えているようです。
またiterm2を利用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

:colorscheme コマンドの実行を dein#end() の後にするようにしてください。
dein.vim はプラグインを dein#end() で読み込むので、それ以前に colorscheme を使うと認識できないのです。
これは dein.vim の FAQ にも書いてあります。

投稿2016/06/11 08:35

Shougo

総合スコア183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kon_ta

2016/06/11 09:11

回答ありがとうございます。 本来dein.tomlに記載したカラースキームのプラグインはどこに保存されるのでしょうか。 colorscheme ... をinit.vimの最後に配置しても、現状カラースキームがありませんと 表示されてしまいます。
Shougo

2016/06/15 23:47

これまでのコメントを見る限り、colorscheme が Lazy になっているように見えます。 Lazy 設定を解除してください。 その後、dein#recache_runtimepath() を実行してください。 プラグインがインストールされていることも確認してください。
kon_ta

2016/06/18 15:26

解答ありがとうございます。 おそらく初歩的な質問で申し訳無いのですが、Lazy設定とはどの部分で解除 となるのでしょうか。上のソースコードであると41行目を 41 call dein#load_toml(s:toml, {'lazy': 0}) 41 call dein#load_toml(s:toml) に変更ということなのでしょうか。
Shougo

2016/06/26 01:57

こちらではやりとりに時間がかかりすぎるので、dein.vim に issue を作ってもらえますか。 まずは、toml を使わないできるだけ単純な vimrc で試してみたほうがよいです。 他の dein.vim の Issues で書き方を確認してください。
guest

0

ベストアンサー

colorscheme の設定タイミングは僕も一時期結構悩んでいて、最終的には hook_add で VimEnter に autocmd を仕掛けて行うことで綺麗に動作するようになりました。

dein.vimによるプラグイン管理のマイベストプラクティス より引用

toml

1[[plugins]] # カラースキーマ 2repo = 'w0ng/vim-hybrid' 3hook_add = ''' 4 set background=dark 5 " colorscheme 設定は source 後に行う必要があるので確実に読まれている VimEnter のタイミングで行う。 6 " 但し Colorscheme イベントの発生が抑制されないよう nented を付ける。 7 au MyAutoCmd VimEnter * nested colorscheme hybrid 8'''

投稿2016/06/18 07:02

kawaz

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kon_ta

2016/06/18 15:22

解答ありがとうございます。 示していただいたように追加し、hybridの部分をsolarizedに変更して行ったところ、 [dein] Error occurred while executing hook: vim-colors-solarized [dein] Vim(autocmd):E216: No such group or event: MyAutoCmd VimEnter * nested colorscheme solarized というエラーが表示されました。 これはどういったエラーとなるのでしょうか?
kawaz

2016/07/21 03:56 編集

あぁ、それは自分用のオートコマンドグループの初期化をしていないからですね。 dein の初期化をする前に init.vim の頭のほうで以下のようにしています。 ``` " reset augroup augroup MyAutoCmd autocmd! augroup END ```
guest

0

必要な部分がコメントアウトされているように見えます。

vim

17 "set background=dark 28 "colorscheme solarized

toml

19 #[[plugins]] 210 #repo = 'altercation/vim-color-solarized'

コメントを外して試してみてください。

投稿2016/06/09 05:15

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kon_ta

2016/06/09 06:32

返信ありがとうございます。 コメントアウトしている状態で上げてしまいましたが、コメントを外した場合でも カラースキームが反映されません。 コメントを外した場合には:colorschemeで確認するとsolarizedと表示はされます。
thinca

2016/06/09 06:40

repo = 'altercation/vim-color-solarized' これですが、altercation/vim-colors-solarized が正しいようです。colors の s が足りません。
kon_ta

2016/06/09 07:07

返信ありがとうございます。 ご指摘の箇所を修正いたしましたが適用されませんでした。 私の考え違いかもしれませんが、tomlでプラグインを管理している場合でも、カラースキームは~/.config/nvim/colorなどの場所に...vimの形で置いておく必要があるのでしょうか。 先ほどまで置いていて、colorのフォルダを一度削除してみましたらカラースキームが存在しないとエラー表示されます。 deinを用いた場合、カラースキームは他のプラグイン同様~/.cache以下に保管されていると 思うのですが間違っていますでしょうか。
thinca

2016/06/09 10:14

間違っていません。dein を使っている場合は(今回の設定の場合は) ~/.cache/dein/.dein 以下に colors ディレクトリがあり、そこに colorscheme が入っていると思います。 どのようにうまく行かないのか確認してみてください。エラーになるのか、エラーは出ないが色が一切変わらないのか。また他の colorscheme だとどうなるのかも確認してみてください。
kon_ta

2016/06/09 10:52

ご指摘の~/.cache/dein/.dein以下にcolorディレクトリが見つかりませんでした。 ~/.cache/dein/reposgithub.com/tomasr/molokai/colors/molokai.vim といったところにカラースキームがあったのですがここにあるものは違うのでしょうか。 (soralizedのカラースキームはここにはありませんでした) 他のカラースキームとしてmolokaiを適用してみましたが変化はありませんでした。 また先ほど記載いたしましたが、~/.config/nvim/colorの場所に置いていたカラースキームを削除しましたが、これは本来であればdeinを用いていると~/.cache以下にあるものを用いるはずなので必要ないという考えでよろしいでしょうか。 この場所のカラースキームを消した場合、init.vimに記載したcolorscheme soralizedが 「カラースキームがありません」となりエラーになってしまいます。 そもそもdein.tomlでカラースキームを記載していても、init.vimの方でもカラースキームを記載する必要があるのでしょうか。 多くの質問を一度にしてしまい申し訳ありません。 ご教授お願い致します。
thinca

2016/06/10 03:18

今更になって申し訳ないですが、Neovim 固有の問題だった場合はお力になれないかもしれません。その前提で回答しますのでご了承ください。 > ご指摘の~/.cache/dein/.dein以下にcolorディレクトリが見つかりませんでした。 call dein#recache_runtimepath() を実行してみても作成されないでしょうか? > また先ほど記載いたしましたが、~/.config/nvim/colorの場所に置いていたカラースキームを削除しましたが、これは本来であればdeinを用いていると~/.cache以下にあるものを用いるはずなので必要ないという考えでよろしいでしょうか。 そのはずです。 :set runtimepath? で表示されるパスに ~/.cache/dein/.dein は含まれているでしょうか? 問題ない範囲で↑のコマンドの結果を教えてもらえると何かわかるかもしれません。 > そもそもdein.tomlでカラースキームを記載していても、init.vimの方でもカラースキームを記載する必要があるのでしょうか。 これは必要です。toml の方はプラグインのインストールの指示、init.vim の方はプラグインを使う指示になります。
kon_ta

2016/06/10 10:57

解答ありがとうございます。 >call dein#recache_runtimepath() を実行してみても作成されないでしょうか? コマンドを実行しても作成されませんでした。~/.cache/dein/.dein以下には CHANGELOG README.markdown bin ftplugin nerdtree_plugin CHANGELOG.md README.md compiler ftplugin.vim plugin LICENCE after doc indent syntax LICENSE autoload ftdetect lib test があります。 >:set runtimepath? で表示されるパスに ~/.cache/dein/.dein は含まれているでしょうか? 問題ない範囲で↑のコマンドの結果を教えてもらえると何かわかるかもしれません。 runtimepath=~/.cache/dein/.dein,~/.cache/dein/repos/github.com/Shougo/dein.vim ,~/.config/nvim,/etc/xdg/nvim,~/.local/share/nvim/site,/usr/local/share/nvim/sit e,/usr/share/nvim/site,/usr/local/Cellar/neovim/0.1.4/share/nvim/runtime,/usr/sh are/nvim/site/after,/usr/local/share/nvim/site/after,~/.local/share/nvim/site/af ter,/etc/xdg/nvim/after,~/.config/nvim/after,~/.cache/dein/.dein/after 以上が結果となります。当該パスは含まれているみたいです。 よろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問