aboutsummaryrefslogtreecommitdiff
path: root/sh/profile.d/editor.sh
blob: 37146fb97fd6d63305aa00bf220958373d22e7da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Ideally, we'd use plain old ed(1), but many Linux distributions don't install
# it by default
if command -v ed >/dev/null 2>&1 ; then
    EDITOR='ed'

# Failing that, if the system's implementation of ex(1) looks like Vim and we
# have exm(1df) in our $PATH, use the latter to work around Vim's ex mode
# screen-clearing
elif (
    command -v ex >/dev/null 2>&1 || exit 1
    command -v exm >/dev/null 2>&1 || exit 1
    ver=$(ex --version 2>/dev/null | awk '{print $1;exit}')
    case $ver in
        (VIM) exit 0 ;;
        (*) exit 1 ;;
    esac
) >/dev/null 2>&1 ; then
    EDITOR='exm'

# Otherwise, we can just call ex(1) directly
else
    EDITOR='ex'
fi

export EDITOR