diff --git a/doc/user-guide/src/installation/index.md b/doc/user-guide/src/installation/index.md index d97dd3f7b0..e2fccb3fdf 100644 --- a/doc/user-guide/src/installation/index.md +++ b/doc/user-guide/src/installation/index.md @@ -73,10 +73,10 @@ simple as using one of the following: ```console # Bash -$ rustup completions bash > ~/.local/share/bash-completion/completions/rustup +$ printf 'eval -- "$("$1" completions bash)"\n' > ~/.local/share/bash-completion/completions/rustup # Bash (macOS/Homebrew) -$ rustup completions bash > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion +$ printf 'eval -- "$(rustup completions bash)"\n' > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion # Fish $ mkdir -p ~/.config/fish/completions diff --git a/src/cli/help.rs b/src/cli/help.rs index 683249629c..c3038800c1 100644 --- a/src/cli/help.rs +++ b/src/cli/help.rs @@ -156,7 +156,7 @@ pub(crate) static DOC_HELP: &str = r"Discussion: By default, it opens the documentation index. Use the various flags to open specific pieces of documentation."; -pub(crate) static COMPLETIONS_HELP: &str = r"Discussion: +pub(crate) static COMPLETIONS_HELP: &str = r#"Discussion: Enable tab completion for Bash, Fish, Zsh, or PowerShell The script is output on `stdout`, allowing one to re-direct the output to the file of their choosing. Where you place the file @@ -169,13 +169,14 @@ pub(crate) static COMPLETIONS_HELP: &str = r"Discussion: Bash: - Completion files are commonly stored in `/etc/bash_completion.d/` for - system-wide commands, but can be stored in - `~/.local/share/bash-completion/completions` for user-specific commands. + System wide completion files are commonly stored in + `/usr/share/bash-completion/completions`, and user-specific ones + can be stored in `~/.local/share/bash-completion/completions`. Run the command: $ mkdir -p ~/.local/share/bash-completion/completions - $ rustup completions bash >> ~/.local/share/bash-completion/completions/rustup + $ printf 'eval -- "$("$1" completions bash)"\n' \ + > ~/.local/share/bash-completion/completions/rustup This installs the completion script. You may have to log out and log back in to your shell session for the changes to take effect. @@ -186,7 +187,8 @@ pub(crate) static COMPLETIONS_HELP: &str = r"Discussion: With the `bash-completion` brew formula installed, run the command: $ mkdir -p $(brew --prefix)/etc/bash_completion.d - $ rustup completions bash > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion + $ printf 'eval -- "$(rustup completions bash)"\n' \ + > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion Fish: @@ -270,11 +272,12 @@ pub(crate) static COMPLETIONS_HELP: &str = r"Discussion: Bash: - $ rustup completions bash cargo >> ~/.local/share/bash-completion/completions/cargo + $ printf 'eval -- "$(rustup completions bash cargo)"\n' \ + > ~/.local/share/bash-completion/completions/cargo Zsh: - $ rustup completions zsh cargo > ~/.zfunc/_cargo"; + $ rustup completions zsh cargo > ~/.zfunc/_cargo"#; pub(crate) static OFFICIAL_TOOLCHAIN_ARG_HELP: &str = "Toolchain name, such as 'stable', 'nightly', \ diff --git a/tests/suite/cli-ui/rustup/rustup_completions_cmd_help_flag_stdout.toml b/tests/suite/cli-ui/rustup/rustup_completions_cmd_help_flag_stdout.toml index 63ac522164..cd1597010e 100644 --- a/tests/suite/cli-ui/rustup/rustup_completions_cmd_help_flag_stdout.toml +++ b/tests/suite/cli-ui/rustup/rustup_completions_cmd_help_flag_stdout.toml @@ -26,13 +26,14 @@ Discussion: Bash: - Completion files are commonly stored in `/etc/bash_completion.d/` for - system-wide commands, but can be stored in - `~/.local/share/bash-completion/completions` for user-specific commands. + System wide completion files are commonly stored in + `/usr/share/bash-completion/completions`, and user-specific ones + can be stored in `~/.local/share/bash-completion/completions`. Run the command: $ mkdir -p ~/.local/share/bash-completion/completions - $ rustup completions bash >> ~/.local/share/bash-completion/completions/rustup + $ printf 'eval -- "$("$1" completions bash)"\\n' \\ + > ~/.local/share/bash-completion/completions/rustup This installs the completion script. You may have to log out and log back in to your shell session for the changes to take effect. @@ -43,7 +44,8 @@ Discussion: With the `bash-completion` brew formula installed, run the command: $ mkdir -p $(brew --prefix)/etc/bash_completion.d - $ rustup completions bash > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion + $ printf 'eval -- "$(rustup completions bash)"\\n' \\ + > $(brew --prefix)/etc/bash_completion.d/rustup.bash-completion Fish: @@ -128,7 +130,8 @@ Discussion: Bash: - $ rustup completions bash cargo >> ~/.local/share/bash-completion/completions/cargo + $ printf 'eval -- "$(rustup completions bash cargo)"\\n' \\ + > ~/.local/share/bash-completion/completions/cargo Zsh: