diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-08-26 23:55:22 +0200 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-08-26 23:55:22 +0200 |
| commit | 63e0b3c9df5748ae5143403abaa8ea8e5f9c3a15 (patch) | |
| tree | 4fcaa3d366242cfeab73ba36bc325d01e0ea2579 | |
| parent | bcef09447f2e5f87b2bf874648463c9ce1e2c8ec (diff) | |
| download | dotfiles-63e0b3c9df5748ae5143403abaa8ea8e5f9c3a15.tar.gz dotfiles-63e0b3c9df5748ae5143403abaa8ea8e5f9c3a15.zip | |
Make 'e' my new EDITOR
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
| -rw-r--r-- | .bashrc | 13 | ||||
| -rwxr-xr-x | bin/e | 24 | ||||
| -rwxr-xr-x | bin/emacsclient-a-nw | 18 |
3 files changed, 21 insertions, 34 deletions
@@ -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. @@ -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 |
