Como faço para que o netrw (no Vim) use o caminho absoluto?
-
09-12-2019 - |
Pergunta
Tenho o Vim73 no Windows e estou tentando mover arquivos através do navegador de arquivos.
Estava me dando um erro sobre "move" não ser executável (veja esta postagem).Depois de alguma depuração, descobri que o problema estava no meu vim73\autoload\netrw.vim
arquivo.Eu tenho o comando move funcionando, mas há outro problema - aparentemente o diretório em que estou navegando :Ex
não é meu diretório de trabalho atual, então o mv.exe
comando (de UnxUtils) não consegue encontrar a origem ou destino.
A linha do netrw que causa os problemas é esta:
let ret= system(g:netrw_localmovecmd." ".shellescape(fname)." ".shellescape(s:netrwmftgt))
Eu tentei embrulhar o shellescape()
funções em expand()
, mas isso não pareceu ajudar.
Alguma ideia de como posso obter o caminho absoluto da origem e dos destinos?
Solução 2
Bem, acontece que quando o cursor está no ..
na lista de arquivos considera que é um diretório.
Tudo que eu realmente precisava fazer era mover o cursor para a área do banner antes de tentar mt
- ou mt
do diretório pai.
Opa!
Outras dicas
Em vez de tentar o caminho absoluto, definir g:netrw_keepdir
para 0 funciona para você?Não é exatamente o que você deseja (o que eu suspeito é pegar o vim CWD e aplicá-lo ao netrw em vez do contrário), mas se você concordar em usar o netrw para gerenciar seu vim CWD, seus comandos podem funcionar como é.
Editar:Olhe para :help netrw-c
para a explicação detalhada.O c
comando em netrw pode ser suficiente.