cmd(특정 시점) 기능과 일치하도록 위쪽 및 아래쪽 키를 사용자 정의하세요.

cmd(특정 시점) 기능과 일치하도록 위쪽 및 아래쪽 키를 사용자 정의하세요.

위쪽 및 아래쪽 키가 cmd와 동일하도록 Bash를 어떻게 사용자 정의합니까?

예:

$echo command1
$echo command2
$echo command3
$echo command4

Bash와 cmd 모두에서 , , 를 누르면 ENTER가 실행됩니다 echo command2.

그러나 이후에 cmd에서 아래쪽 키를 누르면 나중에 명령으로 바로 이동합니다 echo command3. 즉, . Bash에서 아래쪽 키를 눌러도 아무 일도 일어나지 않습니다. cmd는 특정 시점 기록을 유지하지만(웹 브라우저의 뒤로 및 앞으로 버튼과 유사) Bash는 그렇지 않습니다.

cmd와 마찬가지로 cmd에서 위쪽 키를 두 번 누르면 가 반환되지만 echo command1Bash에서는 가 반환됩니다 echo command3.

이전에 순서대로 입력한 일련의 명령을 양해하고 싶은 경우가 많습니다. cmd에서는 기록을 통해 시퀀스의 첫 번째 부분까지 뒤로 스크롤한 다음 , , ENTER, , ENTER, ... 할 수 있어 정말 편리합니다 .ENTER

그러나 Bash에서는 이와 유사한 방법을 찾을 수 없습니다. ~/.inputrc이를 달성하기 위해 어떤 방식으로든 다른 파일을 수정하는 것이 가능합니까 ?

답변1

개인적으로는 bash 기록에 익숙해졌기 때문에 그렇게 하고 싶지 않지만 사람들이 왜 그렇게 하고 싶어하는지 알 수 있습니다. 나는 이전에 *nix를 처음 접하고 xterm에서 DOS와 유사한 기능을 원했던 직장 동료를 위해 이 문제를 조사한 적이 있지만 지금으로서는 해결책이 없는 것 같습니다.

방금 또 다른 광범위한 검색을 수행했지만 다음 외에는 확실한 것을 찾을 수 없습니다.

이상하게도 cmd를 bash처럼 만드는 방법은 많습니다. 예를 들어,Windows 명령 프롬프트의 Bash 기록과 유사한 기능, 하지만 안타깝게도그 반대는 아니고.

주요 문제는 지나치게 간단하게 말하면 커서 키 기능(및 이 기능이 기록과 상호 작용하는 방식)이 Bash 소스 코드에 내장되어 있으며 스크립팅, 별칭 및 셸 함수가 해당 사실을 재정의할 수 없다는 것입니다 1 . 당신이 요구하는 것은다시 쓴bash에는 다른 [전환 가능?] 커서 키 기능이 내장되어 있습니다. 일종의 "DOSBash"입니다.

어쩌면 틈새 시장이 충족될 기회가 있을 수도 있고 누군가가 결국 그 요구를 충족할 수도 있지만 나는 숨을 멈추지 않을 것입니다.


1 내 말이 틀리고 간단한 리소스 파일 변경으로 커서 키 기능을 무시할 수 있다면 누군가 나를 바로잡아주면 기쁠 것입니다.

답변2

내가 사용하는 비결은 다음과 같은 횟수를 단순히 반복하는 것입니다 .

$ echo command1
$ echo command2
$ echo command3
$ echo command4

echo command 2에서 까지 의 시퀀스를 반복하려면 에 도달하기 위해 3번을 echo command4누르고 , 에 도달하기 위해 다시 3번을 누르고 에 다시 3번을 누르십시오 .echo command2echo command3echo command4

따라서 N 번을 눌러 기록에서 N 항목으로 되돌아간 경우 실행한 새 명령이 삽입되었기 때문에 N 번 다시 누르면 매번 다음 명령으로 이동하게 됩니다.

관련 정보