Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Shougo
    @Shougo
    :-)
    Zhaosheng Pan
    @brglng
    I found the caching is really a good feature. When I was using vim-plug, I have to clone several copies for YouCompleteMe and rename them to different names, and pick a specific name on specific OS. I wrote a long function doing all those. With caching, I just need to keep only one copy of the original YouCompleteMe repo at ~/.vim/dein/repo and cache it to ~/.cache/dein, which is a OS-specific path. I don't need to care about the directory names anymore, and the long function is no longer necessary.
    Zhaosheng Pan
    @brglng
    It seems Dein does not cache hooks, so the plugins add in .vimrc with hook_post_update dict entry are only correctly installed for the first time. After the vim restarted, dein#load_state() returns 0 and the hooks are not loaded for the plugins, so no hooks will be called for dein#update(). Does that mean I have to call dein#set_hook() after the dein#begin() and dein#end() block?
    Shougo
    @Shougo
    The cache hook is only cached if it is String.
    You should not use Funcref for hooks.
    Zhaosheng Pan
    @brglng
    OK. Thanks.
    Zhaosheng Pan
    @brglng
    It seem calling dein#set_hook() after dein#end() does not work, whether or not the hook is a String or a Funcref. But using a String hook in the dictionary of dein#add() works.
    Shougo
    @Shougo
    It is cache feature.
    Because the cache is generated when dein#end()
    You should upload the sample vimrc.
    We have not ESP skills
    Zhaosheng Pan
    @brglng
    OK. I have solved hook problem by using String for hook_post_update. But there seems another problem that dein#clear_state() does not delete the state file when g:dein#cache_directory is set. Here is my minimal configuration:
    let g:dein#install_process_timeout = 3600
    let g:dein#cache_directory = $HOME . '/.cache/dein'
    set runtimepath+=$HOME/.vim/dein/repos/github.com/Shougo/dein.vim
    if dein#load_state($HOME . '/.cache/dein')
      call dein#begin($HOME . '/.vim/dein')
      call dein#add($HOME . '/.vim/dein/repos/github.com/Shougo/dein.vim')
      ...
      call dein#end()
      call dein#save_state()
    endif
    Shougo
    @Shougo
    OK.
    I will check it.
    Please create new issue for the problem
    Zhaosheng Pan
    @brglng
    OK.
    Zhaosheng Pan
    @brglng

    OK. I have solved hook problem by using String for hook_post_update. But there seems another problem that dein#clear_state() does not delete the state file when g:dein#cache_directory is set. Here is my minimal configuration:

    let g:dein#install_process_timeout = 3600
    let g:dein#cache_directory = $HOME . '/.cache/dein'
    set runtimepath+=$HOME/.vim/dein/repos/github.com/Shougo/dein.vim
    if dein#load_state($HOME . '/.cache/dein')
      call dein#begin($HOME . '/.vim/dein')
      call dein#add($HOME . '/.vim/dein/repos/github.com/Shougo/dein.vim')
      ...
      call dein#end()
      call dein#save_state()
    endif

    Hi Shougo, if I have set g:dein#cache_directory to a machine specific path such as ~/.cache/dein and use a symlink to a directory in my Dropbox for ~/.vim, does that mean if I have updated the plugins on one machine, it won't be updated on another machine (because the cache is not updated and only the repos are synced and updated)? My configuration is still like above. Thanks.

    Shougo
    @Shougo
    If ~/.cache/dein is Dropbox directory, it will be updated.
    But it seems ~/.vim/dein only Dropbox directory.
    You must execute dein#recache_runtimepath().
    because the cache is not updated and only the repos are synced and updated
    Yes.
    dein#recache_runtimepath() is cache update.
    dein#update() is repos and cache update.
    Zhaosheng Pan
    @brglng
    OK. I think it is not possible for me to use a Dropbox directory for ~/.cache/dein because the cache_*.vim and state_*.vim files records absolute paths for the the runtimepaths, but the paths are different on my several machines (differens OS). Maybe I have to execute dein#recache_runtimepath() on my every machines after I update the plugins.
    Shougo
    @Shougo
    Yes
    Zhaosheng Pan
    @brglng
    Is it possible to record the repo revisions in dein's cache, so that I can write a function to compare the revisions in the cache and in the repo, and call dein#recach_runtimepath() automatically if there is difference?
    Shougo
    @Shougo
    @brglng It is saved on ~/.cache/dein/rollbacks.
    Zhaosheng Pan
    @brglng
    OK. Thanks.
    Tobias Witt
    @ohcibi
    @Shougo can the runtime path caching be disabled for developing plugins? or is there any faster way than call dein#recache_runtimepath() after every change in a plugins file?
    Shougo
    @Shougo
    @ohcibi merged:0
    And dein#local() plugins are not cached.
    Tobias Witt
    @ohcibi
    @Shougo for the specific plugin?
    Shougo
    @Shougo
    Yes
    Tobias Witt
    @ohcibi
    @Shougo dein#local() instead of dein#add()?
    Shougo
    @Shougo
    Yes
    Tobias Witt
    @ohcibi
    k thanks
    Leo Lahti
    @TileHalo
    Hi! Is there any way to run commands like :UpdateRemotePlugins after everything has updated/installed?
    portwolf
    @portwolf
    Hi, I am having troubles running dein.vim
    anyone here?
    Shougo
    @Shougo
    Hi! Is there any way to run commands like :UpdateRemotePlugins after everything has updated/installed?
    It is executed automatically. But you can call it manually: dein#remote_plugins().
    @portwolf
    Hi, I am having troubles running dein.vim
    anyone here?
    We have not ESP skills.
    You should create new issue for it.
    Leo Lahti
    @TileHalo
    Ok, thanks alot! I haven't noticed dein executing it automatically, but I'm probably too unpatient.
    Shougo
    @Shougo
    :-)
    Zhaosheng Pan
    @brglng

    Hi Shougo, I am trying to read the rollback file, however I found the rollback file is not a valid dictionary, either in VimL's dictionary or in JSON, e.g., the file ~/.cache/dein/.cache/.vimrc/rollbacks/vim/20170703105900 on my machine looks like this

    {"denite.nvim":"81357ae400f3213cfb4948b7d2444df0285baeee","vim-ps1":"dcdca6abb4db10fb6e7597d2e21a4a99952134ab","vim-easymotion":"d55e7bf515eab93e0b49f6f762bf5b0bf808264d",undotree:"ad08a88df70c1865b8c9ef6eeac5cdb051d2a18a","papercolor-theme":"3ca1fba362e90ab0fc4e7f0168e0126a7e5f0a7a","vim-airline":"b78c2ec475022cd9de7b7c7c080482cdc5e1b8fb","vim-unimpaired":"e1e0cc3859323f354b8d905ca177e172c7d69f0e","vim-gitgutter":"dcac1f74ee5c26125363dca164463bde6657c838","plantuml-syntax":"522fb10685b88c2422962e674cf07bbebacd8acf",tabular:"00e1e7fcdbc6d753e0bc8043e0d2546fa81bf367","targets.vim":"050335f848d57cb1c59bffe6f32f901307b7e504","vim-nerdtree-tabs":"01ae3cdc7018fa33f140cce3e7cdf210c04ffbab",fencview:"3269798ba91b3f264d0be85ed712cdff3dc9ea56","vim-dirdiff":"db1fe77dcefa7a5b1089c8a84d1b401a4bd780bc","vim-tomorrow-theme":"46994f3a4d4574ce0d48c26a3bc1e528b8092c93","vim-surround":"e49d6c2459e0f5569ff2d533b4df995dd7f98313","vim-airline-themes":"7865fd8ba435edd01ff7b59de06a9be73e01950d","vim-sleuth":"fc5cf44466d50fada784530de933af80c6448db5","vim-monokai":"ece3e6f0dd6970412e09b01f8e2d7de1129970c4","vim-fugitive":"be2ff98db543990d7e59a90189733d7a779788fd",ale:"51f256e897891617eb8539c31f0c48e037600de7",ultisnips:"423f264e753cec260b4f14455126e6db7ba429af","vim-endwise":"d5655263af8b3611a2bcb907a9963831a88d154b","jellybeans.vim":"2ca7d8a27072a8f449887179c3fee81cb00f8c18","dein.vim":"fe55e0b2d70c40b2ad425181b2510982c4c3eeee","base16-vim":"a86dfe417dcf852a8985b6115e4a19cde00ce7cb",nerdtree:"2e43ad074bb3b7fafc77b9eea5098047d6fe6e90","seoul256.vim":"2309b5c8724970c4ad16a7510fbf70100e95ac11","vim-commentary":"be79030b3e8c0ee3c5f45b4333919e4830531e80","vim-python-pep8-indent":"8b215aac0192f74b5aeb6ae5a2e1766db2ebecb8","vim-snippets":"4e45931fa693946cc6d384edbfb838dda2fb96e5",tagbar:"f5792732de16b8a2cc202f920e363eb413d7241d","neomru.vim":"c7bf447627679a3f06f0f3caf893b0497d0aa90b","Conque-GDB":"855adfca8d4b120e54a9a76f25a4f987ccd21abb","dein-command.vim":"319b2c5f7d6d431a2fe46fdad214440423bb4eaa",delimitMate:"728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c",YouCompleteMe:"25a2e3120ce2b33630dda698c1d2b9a87ce01616"}

    You can find there is no double quotes around "undotree", "tabular" and "ultisnips". This only happens for vim not nvim. The nvim's rollback files are good. I am not sure if this is expected behavior or bug, so asking here. Thank you!

    Shougo
    @Shougo
    Oh, js_decode(), js_encode() is broken.
    What is your Vim version?