Как установить команду editor для использования *только* для редактирования командной строки в zsh?

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 ") '
     

2
29.02.2016, 22:49
2 ответа

Универсальный способ решить любую компьютерную проблему¹ - это добавить уровень косвенности.

Вместо вызова 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

¹ Гипербола.

6
27.01.2020, 21:56

Скрипт 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 и укажите другую переменную среды.

1
27.01.2020, 21:56

Теги

Похожие вопросы