developer tip

Bash CTRL을 사용하여 단어 / 문자열간에 커서 이동

copycodes 2020. 10. 24. 10:35
반응형

Bash CTRL을 사용하여 단어 / 문자열간에 커서 이동


CTRL왼쪽 및 오른쪽 화살표 키 를 사용할 때 키를 사용하여 더 빠르게 이동 하는 데 익숙합니다 (한 번에 한 문자가 아닌 단어의 끝으로 이동).

어떻게 든 bash에서 할 수 있습니까?

나는 아마 그것을 코딩 할 수 있지만, 더 쉬운 / 이미 완료된 것이 있는지 궁금합니다.


기본 readline 키 바인딩을 사용하면 ALT+ B는 한 단어 뒤로 이동하고 ALT+ F는 한 단어 앞으로 이동합니다.

기본 Ubuntu 설정 CTRL은 익숙한 + 화살표를 추가로 제공 합니다. 이들에 /etc/inputrc다음과 같이 지정된 :

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\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

왜 세 개가 필요한지 모르겠습니다 ...


Thomas가 설명했듯이 바인딩을 /etc/inputrc.

로그인 할 때마다로드되는 또 다른 대안은 다음 ~/.bashrc과 같이 입력하는 것입니다 .

#use ctl keys to move forward and back in words
bind '"\eOC":forward-word'
bind '"\eOD":backward-word'

cat > /dev/null키보드가 보내는 문자를 보는 데 사용할 수 있다는 것을 배웠습니다 ( 예 : CTRL + 오른쪽 화살표 표시).

^[OC

여기서는 명령 에서 코드가 나오는 곳 ^[과 동일 \e합니다 bind.

다음과 같이 바인딩을 조회 할 수도 있습니다.

bind -p | grep forward-word

이 모든 것은 꽤 굉장하며 bash의 더 많은 힘을 알게되어 기쁩니다.


홈 디렉토리에 .inputrc가 있으면 ctrl + left가 Ubuntu에서 작동을 중지합니다 (예 :).

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

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

f.kowal에 대한 크레딧

참고 URL : https://stackoverflow.com/questions/5029118/bash-ctrl-to-move-cursor-between-words-strings

반응형