TIOCSTI ioctl может вводить символы в терминал или вместо этого видеть uinput в Linux для генерации клавиатуры ( или мышь!) ввод.
ttywrite.c
- пример реализации C Term :: TtyWrite
- реализация Perl
$ sudo perl -MTerm :: TtyWrite \
-e 'Term :: TtyWrite-> new (" / dev / pts / 2 ") -> write (" echo hi \ n ") '
Универсальный способ решить любую компьютерную проблему¹ - это добавить уровень косвенности.
Вместо вызова edit-command-line
вызовите функцию-оболочку.
nano-command-line () {
local VISUAL='nano -Y sh'
edit-command-line
}
zle -N nano-command-line
bindkey '^X^E' nano-command-line
¹ Гипербола.
Скрипт zle
использует РЕДАКТОР
или ВИЗУАЛЬНЫЙ
. Один из способов - скопировать этот скрипт из того места, где он скрывается в $ fpath
, в каталог пользовательских функций, отредактировать скрипт, чтобы использовать другое имя среды, а затем убедиться, что каталог пользовательских функций вызывается до установки - с-зш один.
# in .zshrc, set something like
fpath=(~/.zsh/functions $fpath)
# then in the shell, something like
mkdir -p ~/.zsh/functions
cp /usr/share/zsh/*/functions/edit-command-line ~/.zsh/functions
Затем отредактируйте файл edit-command-line
и укажите другую переменную среды.