FreeBSD의 터미널에서 ctrl + 화살표 키를 눌렀을 때; 5D 얻기


18

centos에서는 터미널에서 ctrl + 화살표 (왼쪽 또는 오른쪽)를 눌러 단어를 건너 뛸 수 있습니다. FreeBSD 상자에 넣고 같은 패턴을 시도하면 다음과 같은 결과가 나타납니다.

$ tail -f 20120412.log;5D;5D;5D

(각 시도 = ; 5D )

이 문제를 해결하는 방법이 있습니까? Ubuntu 12.04 + Terminator를 사용하고 있습니다.

미리 감사드립니다.

답변:


26

.inputrc홈 디렉토리의 A 는 ctrl+ left가 우분투에서 작동을 멈추게합니다 (예 :).

모든 것이 작동하게하려면 다음을 추가하십시오 ~/.inputrc.

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc

1
명확히하기 위해- .inputrc원격 컴퓨터에서 설정해야합니다.
omikron

byobu를 다시 시작한 후에 만 ​​나를 위해 일했습니다.
immeëmosol

1
완전히 자신없는 누군가를 위해 .inputrc나를 위해, 관련 라인을했다 : "\e[1;5C": forward-word, "\e[1;5D": backward-word, "\e[5C": forward-word, "\e[5D": backward-word, "\e\e[C": forward-word,"\e\e[D": backward-word
AlbinoDrought

2

이것을 기본값에서 변경하지 않은 한 Ubuntu에서 사용하는 쉘은 bash입니다. FreeBSD에서 기본 쉘은 csh입니다. 두 OS 모두에서 다음 명령을 사용하여 쉘을 변경할 수 있습니다.

chsh

FreeBSD의 쉘을 / usr / local / bin / bash로 설정하십시오. Bash는 FreeBSD의 일부가 아니므로 아직 포트에서 설치하지 않았다면 :

cd /usr/ports/shells/bash
make install
make clean

마지막으로 루트를 위해 쉘을 바꾸지 마십시오. "toor"계정의 목적은 root의 모든 권한이지만 원하는대로 쉘을 설정할 수 있습니다. 그 이유는 시스템 활동이 전혀 없기 때문에 계정의 쉘을 익숙한 것으로 변경하거나 다른 사람을 혼동하지 않을 것입니다 (또는 로그인 쉘로 더 기능적 일 수 있습니다).


1

FreeBSD 컴퓨터에서 실행중인 쉘은 아마도 그 제어 순서를 지원하지 않을 것입니다. 그러나 어느 쪽에서 어떤 쉘을 실행하고 있는지 알지 못하면 확실히 말하기가 어렵습니다.


1

ZSH 를 사용하는 경우 / etc / zshrc 파일 에서이를 사용 하십시오.

case "${TERM}" in
  cons25*|linux) # plain BSD/Linux console
    bindkey '\e[H'    beginning-of-line   # home 
    bindkey '\e[F'    end-of-line         # end  
    bindkey '\e[5~'   delete-char         # delete
    bindkey '[D'      emacs-backward-word # esc left
    bindkey '[C'      emacs-forward-word  # esc right
    ;;
  *rxvt*) # rxvt derivatives
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    # workaround for screen + urxvt
    bindkey '\e[7~'   beginning-of-line   # home
    bindkey '\e[8~'   end-of-line         # end
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    ;;
  *xterm*) # xterm derivatives
    bindkey '\e[H'    beginning-of-line   # home
    bindkey '\e[F'    end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\e[1;5C' forward-word        # ctrl right
    bindkey '\e[1;5D' backward-word       # ctrl left
    # workaround for screen + xterm
    bindkey '\e[1~'   beginning-of-line   # home
    bindkey '\e[4~'   end-of-line         # end
    ;;
  screen)
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    bindkey '^[[1;5C' forward-word        # ctrl right
    bindkey '^[[1;5D' backward-word       # ctrl left
    ;;
esac

0

잘못된 $ TERM 설정이있는 것 같습니다. echo $TERM현재 설정이 무엇인지 확인하십시오. xterm을 사용하고 싶을 수도 있습니다 export TERM=xterm-256color.


여전히 사랑이 없다 = |
jdorfman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.