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

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

ただいまの
回答率

88.64%

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

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 9,279

kon_ta

score 81

前提・実現したいこと

現在、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を利用しています。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+2

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/11 18:11

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

    キャンセル

  • 2016/06/16 08:47

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

    キャンセル

  • 2016/06/19 00:26

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

    キャンセル

  • 2016/06/26 10:57

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

    キャンセル

checkベストアンサー

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/19 00: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

    というエラーが表示されました。
    これはどういったエラーとなるのでしょうか?

    キャンセル

  • 2016/07/21 12:56 編集

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

    ```
    " reset augroup
    augroup MyAutoCmd
    autocmd!
    augroup END
    ```

    キャンセル

0

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

7 "set background=dark
8 "colorscheme solarized
9 #[[plugins]]
10 #repo = 'altercation/vim-color-solarized'

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/09 19: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の方でもカラースキームを記載する必要があるのでしょうか。
    多くの質問を一度にしてしまい申し訳ありません。
    ご教授お願い致します。




    キャンセル

  • 2016/06/10 12: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 の方はプラグインを使う指示になります。

    キャンセル

  • 2016/06/10 19: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

    以上が結果となります。当該パスは含まれているみたいです。

    よろしくお願い致します。

    キャンセル

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

  • ただいまの回答率 88.64%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る