Как изменить расположение папки global .vscode?

#visual-studio-code

#visual-studio-code

Вопрос:

Я настраиваю код Visual Studio в Linux.

Поскольку компьютер является общим, размер моей $HOME папки ограничен, что не оставляет места для расширений (которые хранятся в $HOME/.vscode/ ), и мои попытки установить их терпят неудачу.

У меня достаточно места в другом каталоге разработки, но я не смог найти способ указать Visual Studio Code использовать другой путь, а не $HOME для глобальной .vscode папки.

Есть ли способ сделать это без изменения моего $HOME ?

Редактировать
Хотя предложение в комментарии решило проблему установки расширений в другую папку — .cache в моей папке есть ОГРОМНАЯ папка, которая заполняется vscode $HOME
Есть ли способ каким-то образом изменить путь к этому?

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

1. вы пробовали использовать опцию командной строки --extensions-dir и --user-data-dir , code.visualstudio.com/docs/editor /…

2. Да! Это помогло.

3. Почему бы вам не создать папку на диске, в которой она вам нужна, и не связать ее со своей домашней папкой с помощью ln -s <source path> /home/$USER/.vscode

4. могу ли я использовать этот трюк для перенаправления папки .cache?

5. Привет @so.very.tired, просто в качестве пояснения: чего вы хотите добиться, так это чтобы все занимало значительное место на диске за пределами $HOME ? Пока это достигается, наличие, например, пользовательских настроек $HOME не является проблемой?

Ответ №1:

Некоторые параметры в порядке рекомендации:

Используйте пользовательские каталоги для расширений и пользовательских данных

Вероятно, ваш лучший вариант — указать VS Code использовать пользовательские пути для расширений и пользовательских данных. Это сработало бы, поскольку дисковое пространство занимают папки расширений и кэша, а папки кэша расположены в папке пользовательских данных.

Вы предоставляете пользовательские пути в качестве аргументов командной строки при вызове VS Code. Используя /mnt/extdir/vsc-ext/ и /mnt/extdir/vsc-user-data/ в качестве примеров для желаемых внешних каталогов, вы бы использовали:

 $ code --extensions-dir /mnt/extdir/vsc-ext/ --user-data-dir /mnt/extdir/vsc-user-data/ .
 

Вы можете добавить псевдоним в сценарий запуска оболочки, чтобы облегчить это:

 alias code='code --extensions-dir /mnt/extdir/vsc-ext/ --user-data-dir /mnt/extdir/vsc-user-data/'
 

Затем вы можете продолжать использовать just, например code . , как обычно, но пусть VS Code использует внешние каталоги для расширений и кэша.

Из документации CLI:

--extensions-dir <dir>

Задайте корневой путь для расширений. Не имеет никакого эффекта в переносном режиме.

--user-data-dir <dir>

Указывает каталог, в котором хранятся пользовательские данные, что полезно при запуске от имени root. Не имеет никакого эффекта в переносном режиме.


Просто примечание: я выполнил следующее, чтобы подтвердить, что папки кэша на самом деле находятся в каталоге пользовательских данных:

 $ mkdir vs-user-data amp;amp; code --user-data-dir vs-user-data . amp;amp; sleep 3 amp;amp; ls vs-user-data | grep -i cache
CachedData
Code Cache
GPUCache
 

Используйте портативный режим

При использовании переносимого режима (документация) все пользовательские данные хранятся в выбранном вами каталоге установки.

Вероятно, в вашем случае это будет работать нормально, но недостатком будет нестандартный способ установки и усложнение обновления VS Code.

Используйте символические ссылки

Это, вероятно, тоже сработало бы, но было бы худшим вариантом. Другие решения, приведенные выше, официально поддерживаются и более надежны.