aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bashrc13
-rwxr-xr-xbin/e24
-rwxr-xr-xbin/emacsclient-a-nw18
3 files changed, 21 insertions, 34 deletions
diff --git a/.bashrc b/.bashrc
index 6fff26b..99d5a9e 100644
--- a/.bashrc
+++ b/.bashrc
@@ -66,20 +66,17 @@ if command -v bat &>/dev/null; then
fi
# Set up fzf key bindings and fuzzy completion
-if command -v fzf &> /dev/null; then
+if command -v fzf &>/dev/null; then
eval "$(fzf --bash)"
fi
##
# Editors & terminals.
-# Set GNU Emacs as the default editor. You can find this `emacsclient-a-nw`
-# executable in the `bin` directory of my dotfiles. That being said, in the
-# `bin` directory there is a globally installed script called `e`. This is the
-# script that will be called most of the times from the CLI for reaching out to
-# the default editor.
-export EDITOR=emacsclient-a-nw
-export VISUAL=emacsclient-a-nw
+# The default editor is simply called 'e', which is a shell script that will
+# call the proper editor depending on what's installed on the system.
+export EDITOR=e
+export VISUAL=e
alias vi=vim
# We want a full-fledged 256-color terminal.
diff --git a/bin/e b/bin/e
index a58edb0..32b05a0 100755
--- a/bin/e
+++ b/bin/e
@@ -14,14 +14,22 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# A handy shortcut for opening up the default editor with the given
-# arguments. If this script is run by root, then it will start GNU Emacs with
-# the --quick flag.
-#
-# NOTE: this script is meant to be installed globally.
+# The *default editor*, which is meant to be installed globally. It attempts to
+# write an editor with this preference:
+# 1. GNU Emacs in client mode.
+# 2. Vim -> Vi.
+# 3. Standalone GNU Emacs.
+# 4. Outta luck: print an error message.
-if [[ $EUID -eq 0 ]]; then
- exec emacs --quick --no-window-system "$@"
+if [ -x "$(command -v emacsclient)" ]; then
+ exec emacsclient -a "" -nw "$@" -c
+elif [ -x "$(command -v vim)" ]; then
+ exec vim "$@"
+elif [ -x "$(command -v vi)" ]; then
+ exec vim "$@"
+elif [ -x "$(command -v emacs)" ]; then
+ exec emacs --quick "$@"
else
- exec "$EDITOR" "$@"
+ echo "No suitable editor found!"
+ exit 1
fi
diff --git a/bin/emacsclient-a-nw b/bin/emacsclient-a-nw
deleted file mode 100755
index b169b85..0000000
--- a/bin/emacsclient-a-nw
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (C) 2019-Ω Miquel Sabaté Solà <mikisabate@gmail.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-emacsclient -a "" -nw "$@" -c