diff options
Diffstat (limited to 'plugins/sudo')
-rw-r--r-- | plugins/sudo/README.md | 57 | ||||
-rw-r--r-- | plugins/sudo/sudo.plugin.zsh | 8 |
2 files changed, 64 insertions, 1 deletions
diff --git a/plugins/sudo/README.md b/plugins/sudo/README.md new file mode 100644 index 000000000..ebfdfd10d --- /dev/null +++ b/plugins/sudo/README.md @@ -0,0 +1,57 @@ +# sudo + +Easily prefix your current or previous commands with `sudo` by pressing <kbd>esc</kbd> twice + +## Enabling the plugin + +1. Open your `.zshrc` file and add `sudo` in the plugins section: + + ```zsh + plugins=( + # all your enabled plugins + sudo + ) + ``` + +2. Reload the source file or restart your Terminal session: + + ```console + $ source ~/.zshrc + $ + ``` + +## Usage examples + +### Current typed commands + +Say you have typed a long command and forgot to add `sudo` in front: + +```console +$ apt-get install build-essential +``` + +By pressing the <kbd>esc</kbd> key twice, you will have the same command with `sudo` prefixed without typing: + +```console +$ sudo apt-get install build-essential +``` + +### Previous executed commands + +Say you want to delete a system file and denied: + +```console +$ rm some-system-file.txt +-su: some-system-file.txt: Permission denied +$ +``` + +By pressing the <kbd>esc</kbd> key twice, you will have the same command with `sudo` prefixed without typing: + +```console +$ rm some-system-file.txt +-su: some-system-file.txt: Permission denied +$ sudo rm some-system-file.txt +Password: +$ +``` diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh index 0ba8bed5b..0b843822e 100644 --- a/plugins/sudo/sudo.plugin.zsh +++ b/plugins/sudo/sudo.plugin.zsh @@ -2,7 +2,7 @@ # Description # ----------- # -# sudo will be inserted before the command +# sudo or sudoedit will be inserted before the command # # ------------------------------------------------------------------------------ # Authors @@ -16,6 +16,12 @@ sudo-command-line() { [[ -z $BUFFER ]] && zle up-history if [[ $BUFFER == sudo\ * ]]; then LBUFFER="${LBUFFER#sudo }" + elif [[ $BUFFER == $EDITOR\ * ]]; then + LBUFFER="${LBUFFER#$EDITOR }" + LBUFFER="sudoedit $LBUFFER" + elif [[ $BUFFER == sudoedit\ * ]]; then + LBUFFER="${LBUFFER#sudoedit }" + LBUFFER="$EDITOR $LBUFFER" else LBUFFER="sudo $LBUFFER" fi |