This is a bug of extension maybe...


Firstly, you should known the version of your rust-lang extendsion. Use commands as below:

ls ~/.vscode/extensions/ | grep rust-lang

You can see some information like below:


Okay, the verison is 0.7.8, then you need to edit it, adding source $HOME/.cargo/env;:

vim ~/.vscode/extensions/rust-lang.rust-0.7.8/out/src/tasks.js

find cmdLine variable in createShellExecution function and modify it (maybe at line 25).

function createShellExecution(execution) {
     const { binary, command, args, cwd, env } = execution;
     // const cmdLine = `${command || binary} ${args.join(' ')}`;
     const cmdLine = `source $HOME/.cargo/env; ${command || binary} ${args.join(' ')}`;
     return new vscode_1.ShellExecution(cmdLine, { cwd, env });

Reload vscode.