У меня возникли проблемы с открытием кода Visual Studio.
Сценарий заключается в том, что у меня есть файловая система сервера, смонтированная на моем локальном компьютере (UBUNTU WSL) с использованием SSHFS.
В обычных случаях я могу открыть файл с помощью кода Visual Studio с помощью команды код <имя файла>
.
Однако, когда я нахожусь в каталоге файловой системы сервера и пытаюсь использовать эту команду, я получаю сообщение об ошибке
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: неверный аргумент
Удивительно, но я могу использовать gedit таким же образом без каких-либо проблем, например. gedit <имя файла>
.
Тогда странно то, что я могу использовать код для открытия файла/каталога в файловой системе сервера, когда я являюсь любой папкой в своей локальной файловой системе. С этим я могу легко открыть файл сервера, используя код </полный/путь/к/файлу>
.
Это возможная ошибка в коде Visual Studio или проблема с моей системой?
Редактировать:
Я создал новую работу вокруг функции/команды, которая
имя команды: vcode
#!/бин/баш
fpath=$(реальный путь $1)
(cd $HOME; код fpath)
Обновлять:
Я сообщил об этом на странице WSL github как о проблеме. https://github.com/microsoft/WSL/issues/7890
Более конкретные детали следующим образом
Шаги репо
В WSL-терминале
- Смонтировать файловую систему сервера с помощью sshfs (в моем случае это университетский суперкомпьютер)
sshfs -C <server_name_and_ip> <mount_location>
обозначенное mount_location — это пустой каталог с именем smith_server с путем /home/k/smith_server/
- Перейти в каталог
cd /home/k/smith_server
- Открыть каталог в коде визуальной студии
код .
Ожидаемое поведение
Ожидаемое поведение заключается в том, что Visual Studio откроет каталог/файл независимо от текущего рабочего каталога.
Фактическое поведение
Фактическое поведение заключается в том, что когда текущий рабочий каталог находится внутри файловой системы смонтированного сервера, запуск команды код .
или же код <имя файла>
приведет к код ошибки.
/mnt/c/Users/kurti/AppData/Local/Programs/Microsoft VS Code/Code.exe: неверный аргумент
Некоторые примеры, которые работают,
- Если рабочий каталог не является частью смонтированной файловой системы сервера,
код .
или же код <файл>
работает отлично.
- Когда рабочий каталог не является частью смонтированной файловой системы сервера, используя код для полного пути к файлу/каталогу в файловой системе сервера, например.
код /home/k/smith_server
может успешно открыть файл/каталог без проблем.
- Когда рабочий каталог находится внутри смонтированной файловой системы сервера,
gedit <файл>
работает отлично
- Когда рабочий каталог находится внутри смонтированной файловой системы сервера,
код $HOME
тоже выдает ошибку.
Вывод с моей стороны заключается в том, что при вызове команды кода внутри смонтированной файловой системы сервера возникают проблемы. Кроме того, этого не происходит при использовании gedit. Однако вне смонтированной файловой системы сервера код
Команда может быть вызвана, а также получить доступ к смонтированной файловой системе, используя полный путь. Возможно, что-то происходит при отслеживании файла Code.exe. Программное обеспечение на базе Linux, такое как gedit, не затронуто, но, возможно, затронуто программное обеспечение на базе Windows, такое как Code.exe, которое только что подключалось?