서버에서 zkbd (zsh 키보드 바인딩)를 설정하는 방법은 무엇입니까?

세포 에나 르비

Linux 서버에 zsh 셸이 있고 다른 컴퓨터의 화면 세션에서 서버에 연결합니다. 집과 끝과 같은 제어 키가 올바르게 작동하도록 노력하고 있습니다.

zsh는 GNU Readline 라이브러리를 사용하지 않기 때문에 터미널 시퀀스를 zsh 명령에 매핑해야합니다. 먼저 zkbd를 사용하여 각 키 입력으로 전송 된 시퀀스를 찾은 다음 올바른 명령에 매핑합니다. 이것은 .zshrc에있는 것입니다.

autoload zkbd
[ ! -f "${ZDOTDIR:-$HOME}/.zkbd/$TERM-${DISPLAY:-$VENDOR-$OSTYPE}" ] && zkbd
source "${ZDOTDIR:-$HOME}/.zkbd/$TERM-${DISPLAY:-$VENDOR-$OSTYPE}"

[ -n "${key[Backspace]}" ] && bindkey "${key[Backspace]}" backward-delete-char
[ -n "${key[Home]}" ] && bindkey "${key[Home]}" beginning-of-line
...

이제 두 가지 문제가 있습니다.

  1. 일반적으로 서버에 연결할 때 $ DISPLAY 환경 변수의 시퀀스 번호가 새 값을 얻습니다. 결과적으로 zkbd가 실행되고 모든 컨트롤 키를 눌러야합니다. $ DISPLAY에 종속 된 키 시퀀스가 ​​필요합니까?
  2. 스크린 세션에서 서버에 연결하면 $ TERM 환경 변수가로 설정됩니다 screen. 그래도 연결하는 컴퓨터에 따라 일부 키의 시퀀스가 ​​다릅니다 (예 : F1은 ^[[11~또는 ^[OP). 서로 다른 매핑을 구별하기 위해 zkbd 파일의 이름을 어떻게 지정해야합니까?
토마스 디키

단순히 사용하는 것이 아니라 TERM=screen화면 프로그램에는의 다른을 설정하는 데 사용할 수있는 기능이 있습니다 TERM. 이것은 완전한 ncurses 터미널 데이터베이스를 설치 했고 실제 터미널에 해당 하는 TERM 외부 화면을 사용한다고 가정합니다 .

주어진 TERM에 대해 터미널 데이터베이스에 해당 "screen. $ TERM"항목이있는 경우 screen은이를 사용 합니다 . ncurses 터미널 데이터베이스에는 설정 한 터미널의 실제 동작과 일치하는 몇 가지가 있습니다 ( TERM=xterm예 : screen.Eterm , screen.gnome , screen.konsole , screen.konsole-256color , screen.linux , screen.mlterm , screen.mlterm) -256color , screen.mrxvt , screen.putty , screen.putty-256color , screen.rxvt , screen.teraterm , screen.vte ,screen.vte-256color , screen.xterm-256color , screen.xterm-new , screen.xterm-r6 , screen.xterm-xfree86 .

터미널 데이터베이스를 사용하기위한 설정을 한 후에는 사용자 고유의 특수 / 매직 구성 파일이 필요하지 않습니다. 게다가 어떤 파일을 사용할지 서버에 어떻게 알릴 수 있습니까? 실제 정보는 실제로 사용중인 터미널 에뮬레이터를 알고 있는 클라이언트에 있습니다 .

zsh이 정보를 $terminfo어레이에서 직접 사용할 수 있습니다 .

추가 읽기 :

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

zsh의 키보드 단축키를 stdin이 필요한 프로그램에 바인딩하는 방법은 무엇입니까?

분류에서Dev

Bash readline에서 'Enter 키'를 바인딩하는 방법은 무엇입니까?

분류에서Dev

유니버설 액세스, 18.04에서 '마우스 키'를 켜고 끄는 키보드 단축키를 설정하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 명령을 키보드 단축키에 바인딩하는 방법은 무엇입니까?

분류에서Dev

빠른 언어로 키보드에서 완료 키를 설정하는 방법은 무엇입니까?

분류에서Dev

emacs에서 새로운 키보드 단축키를 설정하는 방법은 무엇입니까?

분류에서Dev

Kubuntu에서 키보드 단축키를 Meta로 설정하는 방법은 무엇입니까?

분류에서Dev

R에서 보호 변수를 설정하는 패키지를 만드는 방법은 무엇입니까?

분류에서Dev

Xubuntu에서 키보드 레이아웃 전환 및 표시를 설정하는 방법은 무엇입니까?

분류에서Dev

Ubuntu Gnome 16.10에서 키보드 반복 지연 및 속도를 설정하는 방법은 무엇입니까?

분류에서Dev

JavaFX에서 콤보 박스에 메소드를 바인딩하는 방법은 무엇입니까?

분류에서Dev

Windows 7에서 마우스 버튼을 키보드 버튼으로 매핑 / 바인딩하는 방법은 무엇입니까?

분류에서Dev

exit를 키에 바인딩하는 방법은 무엇입니까?

분류에서Dev

키보드 드라이버를 재설정하는 방법은 무엇입니까?

분류에서Dev

키보드 입력 명령을 기본 창에 바인딩하는 방법은 무엇입니까?

분류에서Dev

JavaScript에서 화살표를 지정하고 키보드 키를 입력하는 방법은 무엇입니까?

분류에서Dev

Android 키보드에서 Windows를 제어하는 방법은 무엇입니까?

분류에서Dev

키 바인딩 메서드를 자체 클래스로 이동하는 방법은 무엇입니까?

분류에서Dev

Centos7의 gnome3에서 활동보기의 키보드 단축키를 결정하거나 설정하는 방법은 무엇입니까?

분류에서Dev

Vanilla JS에서 URL 매개 변수를 입력 필드에 바인딩하는 방법은 무엇입니까?

분류에서Dev

gWidgets에서`gwindow ()`를 닫기 위해 ESC 키를 바인딩하는 방법은 무엇입니까?

분류에서Dev

Ubuntu 서버에서 월드 와이드 IP를 설정하는 방법은 무엇입니까?

분류에서Dev

캔버스에서 ctrl + z 키보드 이벤트를 만드는 방법은 무엇입니까?

분류에서Dev

데비안에서 Tkinter destroy ()를 키에 바인딩하는 방법은 무엇입니까?

분류에서Dev

Rails에서 Enter 키를 link_to 태그에 바인딩하는 방법은 무엇입니까?

분류에서Dev

Windows에서 사용자 정의 Logitech 키보드 키를 매핑하는 방법은 무엇입니까?

분류에서Dev

키보드에서 유로 기호를 얻는 방법은 무엇입니까?

분류에서Dev

키보드에서 유로 기호를 얻는 방법은 무엇입니까?

분류에서Dev

cakephp 3에서 후보 키를 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    zsh의 키보드 단축키를 stdin이 필요한 프로그램에 바인딩하는 방법은 무엇입니까?

  2. 2

    Bash readline에서 'Enter 키'를 바인딩하는 방법은 무엇입니까?

  3. 3

    유니버설 액세스, 18.04에서 '마우스 키'를 켜고 끄는 키보드 단축키를 설정하는 방법은 무엇입니까?

  4. 4

    사용자 지정 명령을 키보드 단축키에 바인딩하는 방법은 무엇입니까?

  5. 5

    빠른 언어로 키보드에서 완료 키를 설정하는 방법은 무엇입니까?

  6. 6

    emacs에서 새로운 키보드 단축키를 설정하는 방법은 무엇입니까?

  7. 7

    Kubuntu에서 키보드 단축키를 Meta로 설정하는 방법은 무엇입니까?

  8. 8

    R에서 보호 변수를 설정하는 패키지를 만드는 방법은 무엇입니까?

  9. 9

    Xubuntu에서 키보드 레이아웃 전환 및 표시를 설정하는 방법은 무엇입니까?

  10. 10

    Ubuntu Gnome 16.10에서 키보드 반복 지연 및 속도를 설정하는 방법은 무엇입니까?

  11. 11

    JavaFX에서 콤보 박스에 메소드를 바인딩하는 방법은 무엇입니까?

  12. 12

    Windows 7에서 마우스 버튼을 키보드 버튼으로 매핑 / 바인딩하는 방법은 무엇입니까?

  13. 13

    exit를 키에 바인딩하는 방법은 무엇입니까?

  14. 14

    키보드 드라이버를 재설정하는 방법은 무엇입니까?

  15. 15

    키보드 입력 명령을 기본 창에 바인딩하는 방법은 무엇입니까?

  16. 16

    JavaScript에서 화살표를 지정하고 키보드 키를 입력하는 방법은 무엇입니까?

  17. 17

    Android 키보드에서 Windows를 제어하는 방법은 무엇입니까?

  18. 18

    키 바인딩 메서드를 자체 클래스로 이동하는 방법은 무엇입니까?

  19. 19

    Centos7의 gnome3에서 활동보기의 키보드 단축키를 결정하거나 설정하는 방법은 무엇입니까?

  20. 20

    Vanilla JS에서 URL 매개 변수를 입력 필드에 바인딩하는 방법은 무엇입니까?

  21. 21

    gWidgets에서`gwindow ()`를 닫기 위해 ESC 키를 바인딩하는 방법은 무엇입니까?

  22. 22

    Ubuntu 서버에서 월드 와이드 IP를 설정하는 방법은 무엇입니까?

  23. 23

    캔버스에서 ctrl + z 키보드 이벤트를 만드는 방법은 무엇입니까?

  24. 24

    데비안에서 Tkinter destroy ()를 키에 바인딩하는 방법은 무엇입니까?

  25. 25

    Rails에서 Enter 키를 link_to 태그에 바인딩하는 방법은 무엇입니까?

  26. 26

    Windows에서 사용자 정의 Logitech 키보드 키를 매핑하는 방법은 무엇입니까?

  27. 27

    키보드에서 유로 기호를 얻는 방법은 무엇입니까?

  28. 28

    키보드에서 유로 기호를 얻는 방법은 무엇입니까?

  29. 29

    cakephp 3에서 후보 키를 만드는 방법은 무엇입니까?

뜨겁다태그

보관