Вы можете использовать сопоставление литералов массива вместе с флагом, который возвращает текущий индекс, для этого:
arr=( foo bar baz )
for i in $arr; do
echo "index ${arr[(ie)$i]}";
done
Флаг i
возвращает индекс, а флаг e
изменяет i
, чтобы строка буквально соответствовала строке. Выражение гласит: для arr, который соответствует строке $ i, буквально возвращается индекс. Недостаток этого метода в том, что ему можно доверять только в том случае, если все элементы массива уникальны. В противном случае вам понадобится какой-нибудь счетчик.
В Debian альтернативой является команда editor
:
sudo update-alternatives --config editor
Она не управляется git.
Когда командам git требуется редактор ( например, для сообщения фиксации), она использует редактор, заданный переменной среды GIT_EDITOR
, или, если это не удается, редактор, указанный в переменная core.editor
. Подробнее см. git-var (1)
и git-config (1)
; но в основном, чтобы настроить его глобально, запустите
git config --global core.editor emacs
, который сохранит ваши предпочтения в .gitconfig
в вашем домашнем каталоге.
Вы можете использовать редактор типов
, чтобы увидеть, что делает ваша оболочка при входе в редактор
. Я не верю, что это имеет какое-то отношение к Git.