Код: Выделить всё
EDITOR=vim
Код: Выделить всё
EDITOR=geany
К сожалению, такое простое решение быстро обнаружило неочевидные недостатки, и продолжало их обнаруживать и дальше. Прежде всего, git использует EDITOR для правки комментариев, и воспринимает завершение стартовавшего процесса как завершение редактирования. Но Geany (как и все guiшные редакторы) старается всегда обойтись по-возможности одним окном — и одним процессом — и если уже есть открытый редактор, то документ передаётся ему, а стартовый процесс незамедлительно завершается. Это решается просто (в случае Geany; в случае многих редакторов, как ни странно, это не решается совсем, но тем хуже для них):
Код: Выделить всё
EDITOR=geany -i
В результате устранения этих и некоторых других недостатков получился вот такой скрипт, которым я и хочу поделиться с миром:
Код:
#!/bin/sh
if [ ".$1" = ".-3e509704-b9ba-11e7-94ed-9337b5773949" ]; then
shift
mc=NO
else
# Midnight Commander
mc=YES
fi
if [ -z "$DISPLAY" ]; then
/usr/bin/vim -- "$@"
return
fi
if [ $# -eq 0 ]; then
s=""
while [ -e "untitled$s" ]; do
s=$(($s+1))
done
set -- "untitled$s"
fi
# Guardians for '-*', '*.geany', and ':*' files.
n=$#
i=0
for a in "$@"; do
i=$(($i+1))
if [ $i -gt $n ]; then
break
fi
if [ ".$(printf %.1s "$a")" = "./" ]; then
xa="$a"
else
xa="./$a"
fi
s=0
while [ -e "$xa:0:$s" ]; do
s=${s}0
done
set -- "$@" "$xa:0:$s"
done
for i in {1..$n}; do
shift
done
if [ "$mc" = "NO" ]; then
/usr/bin/geany -i -c "$HOME/.config/geany-editor" "$@"
else
(/usr/bin/geany -c "$HOME/.config/geany-editor" "$@" > /dev/null 2>&1 &)
fi
Используется он так:
Код: Выделить всё
EDITOR="editor_script -3e509704-b9ba-11e7-94ed-9337b5773949"
Вот такая история. А что записано в $EDITOR у вас? (Варианты в опрос добавляю по запросу.)