plugins: Add plugin "sudo"

This commit is contained in:
Victor Munoz
2023-03-21 23:22:37 +01:00
committed by Koichi Murase
parent 0e9f0e7e7c
commit 47852f487f
2 changed files with 61 additions and 0 deletions

50
plugins/sudo/README.md Normal file
View File

@@ -0,0 +1,50 @@
# sudo
Easily prefix your current or previous commands with `sudo` by pressing <kbd>esc</kbd> twice.
To use it, add `sudo` to the plugins array in your bashrc file:
```bash
plugins=(... sudo)
```
## Usage
### 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:
$
```
## Credits
Inspired by ohmyzsh sudo plugin.

View File

@@ -0,0 +1,11 @@
#! bash oh-my-bash.module
function _omb_plugin_sudo_add_sudo {
if [[ -z $READLINE_LINE ]]; then
READLINE_LINE="$(fc -ln -1 | command sed 's/^[[:space:]]\{1,\}//')"
fi
READLINE_LINE="sudo $READLINE_LINE"
((READLINE_POINT += 5))
}
bind -x '"\e\e": _omb_plugin_sudo_add_sudo'