git открывает файл с пустым буфером в VS Code с использованием WSL

#git #visual-studio-code #windows-subsystem-for-linux

#git #visual-studio-code #windows-subsystem-for-linux

Вопрос:

У меня установлена Ubuntu для WSL, и я работаю с ней, чтобы заниматься программированием. Код Visual Studio установлен в системе Windows.

Проблема в том, что всякий раз, когда git нужно открыть файл в своем основном редакторе (Visual Studio Code в моем случае), он открывает файл в моем редакторе, но у него пустой буфер.

Я установил VS Code в качестве основного редактора, используя эту команду :

 git config --global core.editor "code --wait"
 

Когда он открывает файл, используя git commit , например, я получаю это :
пустой файл в VS Code

Я почти уверен, что это вызвано WSL, потому что у меня никогда не было этой проблемы до использования другой альтернативы, но я не могу понять, почему.

Ответ №1:

Это связано с тем, что ваш VS-код — это программа для Windows, и вы работаете в WSL.

Когда Git в WSL вызывает редактор для редактирования чего-то вроде сообщения о фиксации, он передает путь к файлу для редактирования. Этот путь является путем Linux. Однако ваш VS Code — это программа для Windows, и он не знает, что указанный путь должен интерпретироваться как путь Linux (WSL), и вместо этого он интерпретирует его как путь Windows.

У вас есть несколько вариантов:

  1. Используйте версию VS Code для Linux вместо версии для Windows. Это, вероятно, потребует настройки X-сервера.
  2. Используйте другой редактор в Linux.
  3. Измените свой редактор, чтобы использовать сценарий оболочки, который вызывает VS Code с версией пути для Windows. Это сработает, только если VS Code может обрабатывать специальные пути WSL, что могут не все программы Windows, но это будет выглядеть так:
 $ git config --global core.editor 
  'f () { printf '''%s''' "$@" | xargs -0 -I{} wslpath -w {} | xargs -d'''n''' code --wait; };f'
 

Это настраивает ваш редактор на функцию оболочки, которая вызывается wslpath -w по каждому пути, а затем предоставляет каждый из них VS Code в командной строке.

Комментарии:

1. Возможно, эти ссылки тоже помогут: WSL-VSCODE и WSL-GIT