Abra o comportamento de arquivos usando o Ranger no Windows Subsystem para Linux

1

Estou usando o subsistema Microsoft Windows ([Versão 10.0.15063]) para Linux e observo um comportamento inesperado ao abrir arquivos usando o gerenciador de arquivos Ranger no bash.

Por exemplo, eu tenho ~ / .config / rifle.conf definido para abrir extensões .txt no Texto Sublime 3:

ext txt = "/mnt/c/Program Files/Sublime Text 3/sublime_text.exe" "$@"

Quando eu pressiono enter para abrir um arquivo de texto existente que contém dados, o Sublime abre o arquivo, mas não há texto / dados reais no arquivo exibido no Sublime. Eu posso fechar o arquivo e abrir usando o Windows File Explorer e o texto está lá.

Curiosamente, o caminho que o Sublime vê é 'C \ mnt \ c \ caminho \ para \ meu \ arquivo.txt'.

Isso é algum problema com o Windows não ser capaz de ver / mnt? Eu adoraria poder usar o Ranger como meu gerenciador de arquivos na WSL, alguém já viu esse comportamento e possivelmente descobriu uma correção? Obrigado a todos!

    
por gpanda 05.11.2017 / 22:50

2 respostas

1

Como laktak explicou, o WSL não irá traduzir o caminho do arquivo do caminho Unix para o Windows pathing. Acabei de escrever um Gist sobre como eu lido com isso, reproduzido abaixo:

Verifique se você tem o WSL com a Atualização dos criadores de outono do Windows 10 instalada. O Ranger usa rifle como um manipulador de arquivos e você precisa do seu arquivo de configuração, rifle.conf . Se você não tiver (deve estar em ~/.config/ranger/rifle.conf ), execute o comando ranger --copy-config=rifle e edite o arquivo resultante.

Para executar aplicativos do Windows a partir do Ranger, usaremos cmd.exe /C start "" <file> , que funciona após a atualização do Fall Creators. Nós resolveremos o problema de pathing usando sed para traduzir o caminho.

Adicione o código abaixo ao seu rifle.conf e você poderá executar aplicativos do Windows para as extensões de arquivo escolhidas.

ext docx?|xlsx?|pptx?|pdf = echo "$@" | sed -e 's;/mnt/\(.\);:;' -e 's/.*/"&"/' -e 's:/:\:g' | xargs cmd.exe /C start ""

start deve ser capaz de executar aplicativos associados a extensões de arquivo implicitamente, mas se por algum motivo ele não funcionar, você também pode informar explicitamente a start qual executável executar. Basta remover o "" e adicionar um dos excel , winword , powerpnt , AcroRd32.exe , etc. Observe que, nesse caso, você precisará de uma linha em rifle.conf para cada aplicativo. Como exemplo:

ext docx? = echo "$@" | sed -e 's;/mnt/\(.\);:;' -e 's/.*/"&"/' -e 's:/:\:g' | xargs cmd.exe /C start winword
ext xlsx? = echo "$@" | sed -e 's;/mnt/\(.\);:;' -e 's/.*/"&"/' -e 's:/:\:g' | xargs cmd.exe /C start excel

Leitura adicional

por 29.05.2018 / 04:49
0

O WSL não manipula a conversão de caminho absoluto AFAIK

Você pode

  • traduza o caminho você mesmo (por exemplo, usando uma função bash para substituir /mnt/c/ por c:\ )
  • ou use caminhos relativos
por 06.11.2017 / 22:30