Да, это возможно. Можно загрузиться menu.vim
(значение по умолчанию gvim определения меню), или можно только запустить с нуля и создать собственное, затем получить доступ к ним через :emenu
. Это не дает Вам подобные нано всегда видимые меню, хотя; это дает Вам способность переместиться по меню с помощью заполнения клавишей Tab командной строки.
Если у пользователя не будет vimrc, то Вы захотите запуститься путем отключения vi совместимости:
:set nocompatible
Включите умное завершение командной строки на <Tab>
(позвольте перечислить весь возможный выбор и переместиться по результатам с <Up>
, <Down>
, <Left>
, <Right>
, и <Enter>
):
:set wildmenu
Сделайте повторенный цикл нажатий между всем выбором соответствия:
:set wildmode=full
Загрузите меню по умолчанию (это произошло бы автоматически в gvim, но не в терминальной энергии):
:source $VIMRUNTIME/menu.vim
После тех четырех команд можно вручную инициировать завершение меню путем вызова заполнения клавишей Tab на :emenu
команда, путем выполнения :emenu<space><tab>
Можно переместиться по результатам с помощью клавиши Tab и клавиш со стрелками и клавиши Enter (она и разворачивает подменю и выбирает объекты). Можно затем сделать это более удобным, идя шаг вперед и обязывая отображение открыться меню, не имея необходимость вводить :emenu
каждый раз:
Сделайте Ctrl-Z в отображающемся действии как нажатие <Tab>
в интерактивном режиме на командной строке:
:set wildcharm=<C-Z>
И сделайте привязку, которая автоматически вызывает :emenu
завершение для Вас:
:map <F4> :emenu <C-Z>
ksh 93 имеет a nameref
команда, которая позволяет Вам создать "псевдонимы" к переменным:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
Для ksh88 Вы можете быть вынуждены использовать eval
; замена:
nameref var=${v}EMI
с:
eval var=\$${v}EMI