更换了Debian系统之后,安装vscode之后也屡屡报错。
今天的报警信息是“VisualStudioCode无法监视这个大型工作区的文件变化 Visual Studio Code is unable to watch for file changes in this large workspace(error ENOSPC)”。
这条信息意味着工作区很大并且文件很多,导致VS Code文件观察程序的句柄达到上限。
可以通过运行这条命令来查看当前限制:
cat /proc/sys/fs/inotify/max_user_watches
通过编辑/etc/sysctl.conf并将此行添加到文件末尾,可以将限制增加到最大值:
sudo vim /etc/sysctl.conf
增加一行
fs.inotify.max_user_watches=524288
保存,最后在控制台执行
sudo sysctl -p
即可正常使用。
虽然524,288是可以观看的最大文件数,但如果您处于特别受内存限制的环境中,您可能希望降低该数量。每个文件监视占用540字节(32位)或1kB(64位),因此假设所有524,288个句柄都被消耗,上限约为256MB(32位)或512MB(64位)。
另一个选项是使用该files.watcherExclude 设置从VS Code文件观察器中排除特定工作区目录。files.watcherExclude排除默认值node_modules和一些文件夹.git,但您可以添加其他不希望VS Code跟踪的目录。
例如:
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true
}