Am avut probleme cu deschiderea codului de studio vizual.
Scenariul este că am un sistem de fișiere server montat în computerul meu local (UBUNTU WSL) folosind SSHFS.
În cazuri normale, pot deschide fișierul folosind codul Visual Studio folosind comanda codul <nume fișier>
.
Cu toate acestea, când mă aflu în directorul sistemului de fișiere al serverului și încerc să folosesc această comandă, primesc eroarea
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: Argument nevalid
În mod surprinzător, pot folosi gedit în același mod, fără nicio problemă, de ex. gedit <nume fișier>
.
Apoi, ceea ce este ciudat este că pot folosi codul pentru a deschide un fișier/director în sistemul de fișiere server atunci când sunt în orice folder din sistemul meu local de fișiere. Cu aceasta pot deschide cu ușurință fișierul server folosind cod </full/path/to/file>
.
Este aceasta o posibilă eroare în codul studioului vizual sau o problemă cu sistemul meu?
Editați | ×:
Am creat o nouă lucrare în jurul funcției/comenzii care este
numele comenzii: vcode
#!/bin/bash
fpath=$(realpath $1)
(cd $HOME; cod fpath)
Actualizați:
Am raportat-o în pagina Github WSL ca o problemă https://github.com/microsoft/WSL/issues/7890
Mai multe detalii specifice, după cum urmează
Pași repo
În terminalul WSL,
- Montați un sistem de fișiere server folosind sshfs (în cazul meu este un supercomputer universitar)
sshfs -C <nume_și_ip_server> <locație_montare>
mount_location desemnat este un director gol numit smith_server cu cale /home/k/smith_server/
- Accesați directorul
cd /home/k/smith_server
- Deschideți directorul în codul Visual Studio
cod .
Comportament asteptat
Comportamentul așteptat este că Visual Studio va deschide directorul/fișierul indiferent de directorul de lucru curent.
Comportamentul real
Comportamentul real este că atunci când directorul de lucru curent se află în sistemul de fișiere server montat, lansarea comenzii cod .
sau codul <nume fișier>
va avea ca rezultat cod de eroare.
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: Argument nevalid
Câteva exemple care funcționează,
- Când directorul de lucru nu face parte din sistemul de fișiere montat pe server,
cod .
sau cod <fișier>
Merge bine.
- Când directorul de lucru nu face parte din sistemul de fișiere server montat, folosind codul către o cale completă a unui fișier/director din sistemul de fișiere server, de ex.
codul /home/k/smith_server
poate deschide cu succes fișierul/directorul fără probleme.
- Când directorul de lucru se află în sistemul de fișiere server montat,
gedit <fișier>
Merge bine
- Când directorul de lucru se află în sistemul de fișiere server montat,
cod $HOME
primește și o eroare.
Concluzia mea este că există probleme la invocarea comenzii de cod în interiorul sistemului de fișiere server montat. În plus, acest lucru nu se întâmplă atunci când a fost folosit gedit. Cu toate acestea, când se află în afara sistemului de fișiere server montat, fișierul cod
comanda poate fi invocată și, de asemenea, poate accesa sistemul de fișiere montat folosind o cale completă. Poate că se întâmplă ceva la urmărirea fișierului Code.exe. Software-ul bazat pe Linux, cum ar fi gedit, nu este afectat, dar poate că software-ul bazat pe Windows, cum ar fi Code.exe, care tocmai sunt interfațate, este afectat?