From 47b5fd25ff5a5262ec0060b6442ce8fdf881a3fd Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Wed, 3 Jul 2024 16:08:48 -0300 Subject: mv bin/e bin/ee --- bin/e | 96 --------------------------------------------------------------- bin/ee | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ etc/sh/rc | 3 +- 3 files changed, 98 insertions(+), 97 deletions(-) delete mode 100755 bin/e create mode 100755 bin/ee diff --git a/bin/e b/bin/e deleted file mode 100755 index 67d2d52..0000000 --- a/bin/e +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -set -eu - -usage() { - cat <<-'EOF' - Usage: - e [FILE] - e -h - EOF -} - -help() { - cat <<-'EOF' - - - Options: - -h, --help show this message - - FILE path to the file - - - Flexibly run a text editor, either directly or in a pipe. - - The editor used is either $VISUAL or $EDITOR, with a fallback to - vi in case any of those variables aren't defined. - - - Examples: - - Edit "file.txt": - - $ e file.txt - - - Manipulate the content of a pipe midway: - - $ seq 10 | e | grep 5 - EOF -} - -for flag in "$@"; do - case "$flag" in - (--) - break - ;; - (--help) - usage - help - exit - ;; - (*) - ;; - esac -done - -while getopts 'h' flag; do - case "$flag" in - (h) - usage - help - exit - ;; - (*) - usage >&2 - exit 2 - ;; - esac -done -shift $((OPTIND - 1)) - - -CMD="${VISUAL:-${EDITOR:-vi}}" -if [ "$CMD" = 'e' ]; then - CMD='vi' -fi - -if [ ! -t 0 ]; then - F="$(mkstemp)" - trap 'rm -f "$F"' EXIT - cat > "$F" - exec 0&1 - exec 1>/dev/tty - $CMD "$F" - cat "$F" >&3 -else - if [ $# -eq 0 ]; then - f="$(fzf --select-1 --exit-0 < "$XDG_DATA_HOME"/euandreh/e.list.txt)" - if [ -n "$f" ]; then - history -s e "$f" - sh -c "$CMD $f" - fi - else - $CMD "$@" - fi -fi diff --git a/bin/ee b/bin/ee new file mode 100755 index 0000000..67d2d52 --- /dev/null +++ b/bin/ee @@ -0,0 +1,96 @@ +#!/bin/sh +set -eu + +usage() { + cat <<-'EOF' + Usage: + e [FILE] + e -h + EOF +} + +help() { + cat <<-'EOF' + + + Options: + -h, --help show this message + + FILE path to the file + + + Flexibly run a text editor, either directly or in a pipe. + + The editor used is either $VISUAL or $EDITOR, with a fallback to + vi in case any of those variables aren't defined. + + + Examples: + + Edit "file.txt": + + $ e file.txt + + + Manipulate the content of a pipe midway: + + $ seq 10 | e | grep 5 + EOF +} + +for flag in "$@"; do + case "$flag" in + (--) + break + ;; + (--help) + usage + help + exit + ;; + (*) + ;; + esac +done + +while getopts 'h' flag; do + case "$flag" in + (h) + usage + help + exit + ;; + (*) + usage >&2 + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + + +CMD="${VISUAL:-${EDITOR:-vi}}" +if [ "$CMD" = 'e' ]; then + CMD='vi' +fi + +if [ ! -t 0 ]; then + F="$(mkstemp)" + trap 'rm -f "$F"' EXIT + cat > "$F" + exec 0&1 + exec 1>/dev/tty + $CMD "$F" + cat "$F" >&3 +else + if [ $# -eq 0 ]; then + f="$(fzf --select-1 --exit-0 < "$XDG_DATA_HOME"/euandreh/e.list.txt)" + if [ -n "$f" ]; then + history -s e "$f" + sh -c "$CMD $f" + fi + else + $CMD "$@" + fi +fi diff --git a/etc/sh/rc b/etc/sh/rc index 2d47886..6dfe692 100644 --- a/etc/sh/rc +++ b/etc/sh/rc @@ -41,7 +41,7 @@ export HISTFILE="$XDG_STATE_HOME/sh-history" export SRC=~/dev export PRIV_CONFIG="$XDG_PREFIX"/var/lib/private/tilde export PRIV_STATEDIR=/var/lib/"$USER" -export EDITOR='e' +export EDITOR='vi' export VISUAL="$EDITOR" export PAGER='less -R' export BROWSER='firefox' @@ -197,6 +197,7 @@ unalias -a alias p='ping euandre.org -c 3' alias o='open' +alias e='vi' alias mm='msmtp-queue -r' alias s='vcs status' alias d='vcs diff' -- cgit v1.2.3