Por que os scripts na minha pasta de autoload não estão sendo executados no Vim?

1

Estou tentando usar o Pathogen para gerenciar minhas extensões do Vim. A pasta do meu pacote é assim:

.../bundle/
├── vim-pathogen
│   └── autoload
│       └── pathogen.vim
└── vim-smoothscroll
    └── autoload
        └── smooth_scroll.vim

E meu arquivo vimrc inclui isso:

let s:root = fnamemodify(resolve(expand(":p")), ":h")

" Initiate pathogen.
exec "source " . s:root . "/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim"
exec pathogen#infect()

Meu arquivo vimrc é um link simbólico localizado em ~ , mas apontando para uma pasta dentro da minha pasta do Dropbox.

Isso parece funcionar quando eu inicio o Vim. O patógeno adicionou vim-smoothscroll ao meu caminho do caminho:

:set runtimepath?
runtimepath=~/Dropbox/Personal/config_sync/vim/vimfiles,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-p
athogen,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-smoothscroll,~/.vim,~/vim/share/vim/vimfiles,~/vim/
share/vim/vim74,~/vim/share/vim/vimfiles/after,~/.vim/after

O problema é que o script smooth_scroll.vim não foi carregado:

  1: ~/.vimrc
  2: ~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim
  3: ~/vim/share/vim/vim74/syntax/syntax.vim
  4: ~/vim/share/vim/vim74/syntax/synload.vim
  5: ~/vim/share/vim/vim74/syntax/syncolor.vim
  6: ~/vim/share/vim/vim74/filetype.vim
  7: ~/vim/share/vim/vim74/menu.vim
  8: ~/vim/share/vim/vim74/autoload/paste.vim
  9: ~/Dropbox/Personal/config_sync/vim/vimfiles/colors/codeschool.vim
 10: ~/Dropbox/Personal/config_sync/vim/_vimrc_gui
 11: ~/Dropbox/Personal/config_sync/vim/_vimrc_keybinds
 12: ~/vim/share/vim/vim74/plugin/getscriptPlugin.vim
 13: ~/vim/share/vim/vim74/plugin/gzip.vim
 14: ~/vim/share/vim/vim74/plugin/matchparen.vim
 15: ~/vim/share/vim/vim74/plugin/netrwPlugin.vim
 16: ~/vim/share/vim/vim74/plugin/rrhelper.vim
 17: ~/vim/share/vim/vim74/plugin/spellfile.vim
 18: ~/vim/share/vim/vim74/plugin/tarPlugin.vim
 19: ~/vim/share/vim/vim74/plugin/tohtml.vim
 20: ~/vim/share/vim/vim74/plugin/vimballPlugin.vim
 21: ~/vim/share/vim/vim74/plugin/zipPlugin.vim
 22: ~/vim/share/vim/vim74/syntax/ruby.vim
 23: ~/vim/share/vim/vim74/syntax/vim.vim
 24: ~/vim/share/vim/vim74/syntax/python.vim

Por que isso? Carregar o script manualmente funciona bem.

    
por Hubro 03.11.2013 / 06:35

1 resposta

6

Você está fazendo coisas loucas com sua configuração. Você achou o caminho padrão muito fácil e sólido?

  • Arquivos de tempo de execução do Vim, tudo em /share/vim/vim74 , deve estar em /usr/share/vim/vim74 . Você instalou o Vim no seu $HOME devido a problemas de privilégio?

  • Todas as suas coisas pessoais (esquemas de cores, plugins, scripts de sintaxe ...) devem entrar em ~/.vim . Esse diretório pode ser um link simbólico para o diretório vimfiles em seu Dropbox, que removeria a "necessidade" de todos os seus hacks. Supondo que você esteja no Linux, faça:

    ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
    
  • pathogen.vim não é supostamente source d. Está no diretório autoload precisamente porque o mecanismo autoload impede que ele seja source d para economizar tempo na inicialização.

    Além disso, pathogen.vim deve estar em ~/.vim/autoload/ .

    Com uma configuração "normal", ou um link simbólico que faz com que pareça "normal" para o Vim, não há necessidade de passar por todos esses arcos.

  • smooth_scroll.vim não deve estar em um diretório autoload , ele vem em um diretório plugin , por que você alterou isso? É por isso que o plugin não funciona.

  • Você sabia que o 7.4 agora parece tanto para ~/.vimrc quanto para ~/.vim/vimrc ? Isso torna muito mais fácil gerenciar sua configuração mantendo tudo em um único diretório.

Etapa 1: altere a estrutura desse diretório vimfiles em sua caixa de depósito para ficar assim:

/home/username/Dropbox/Personal/config_sync/vim/vimfiles/
  +-autoload/
  |   +-pathogen.vim
  +-bundle/
      +-vim-smoothscroll/
        +-plugin/
          +-smooth_scroll.vim

Etapa 2: mova seu vimrc dentro do diretório vimfiles da sua caixa de depósito.

etapa 3: remova todas as coisas relacionadas a caminhos inúteis nesse arquivo. A parte relacionada ao patógeno deve ter esta aparência:

execute pathogen#infect()
execute pathogen#helptags()

passo 4: remova o seu ~/.vimrc :

$ cd
$ unlink .vimrc

etapa 5: crie um link simbólico para o seu diretório sincronizado com a caixa de depósito:

$ ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
    
por 03.11.2013 / 08:51

Tags