[apple] 터미널의 홈 / 엔드 콤보에서 ⌘ ← 및 ⌘ →를 작동 시키려면 어떻게해야합니까?

왜 않습니다 fn(또는 다른 사람) 터미널에서 홈 / 말을하지만,이 다른 곳에서 작동?

질문을 분명히하기 위해 터미널을 Command+로 하고 집에서 끝내는 방법은 무엇입니까?



답변

편리하게 터미널은 원하는 기능을 쉽게 제공 할 수 없습니다.

그 이유는 터미널 내에서 실행되는 프로그램이 커서를 줄의 시작 / 끝으로 이동하는 규칙이 다르기 때문입니다.

  • bash(및 다른 껍질) 사용 CtrlACtrlE
  • vi사용 0$/Shift4

다른 프로그램은 다른 키를 사용할 수 있습니다. 커서를 줄의 시작 / 끝에 배치하기위한 범용 키 조합은 없습니다.

물론 터미널은 여러 일반적인 프로그램에 대한 키 조합 목록을 유지 관리하고, 실행중인 항목을 확인하고 올바른 키를 보내거나, 커서를 셸 내부의 시작으로 이동 ⌘ ← 와 같은 메뉴 항목을 제공 한 다음 보낼 수 있습니다 CtrlA무대 뒤에서. 그러나 애플 엔지니어들은 CLI 영역 에서 모험을 하면 그 특성을 잘 알고 있다고 생각합니다 .

사이드 참고로, 터미널 제공 Option하고 Option있는 동작합니다 bash예상 및 이전 / 다음 단어의 처음으로 커서를 이동하는 것처럼. 이는 이러한 키 조합이 Escb및 에 매핑되어 있기 때문 입니다 (자세한 내용은 “이동 명령”섹션 Escb참조 man bash). 에서은 vi, 예를 들어, 후자 만 (가지) (이 답변의 끝에 내가 방법을 구성 할 보여주지 작동 vi과 작업을 Option하고 Option) 있습니다.

하지만 덕분에 자동화, 애플 스크립트와 bash는 별칭으로 당신이 얻을 수있는 와 작업에 대한 bash(그리고 아마도 다른 셸)와 vi.

첫 번째 단계는지도하는 CtrlACtrlE. 두 번째 단계에서, 나는 방법을 구성하는 방법을 보여 드리겠습니다 vi명예 CtrlACtrlE(결과적으로 만들 것이다, vi호환 ).

지도 CtrlACtrlE

  1. 터미널에서 환경 설정 …> 설정> [활성 프로파일]> 키보드로 이동하십시오.
    여기에 이미지 설명을 입력하십시오

  2. 를 누르고 +수정 자로 “왼쪽 커서”, “Control-Shift”를 선택하고 “텍스트 보내기 :”를 수행하십시오. 그런 다음 CtrlA( \001텍스트 필드에 나타남)을 누르고 다음으로 확인하십시오 OK.
    여기에 이미지 설명을 입력하십시오

    (이 답변의 이전 버전에서는 “Shift”를 수정 자로 사용했습니다.이 설정이와 충돌하는 것을 발견했습니다. 즉 shift, 사용자가 즉시 놓지 않으면 이전 터미널 탭이 표시 됩니다. “Control-Shift”사용 수정합니다.)

  3. 이제 “커서 오른쪽”에 대한 키 조합을 추가하십시오. 그러나 텍스트 필드에 CtrlE( \005가 나타납니다)를 누르십시오 . 로 확인하십시오 OK.

  4. Automator를 열고 (예를 들어, spaceSpotlight를 불러오고 Automator를 입력 하십시오) File> New를 선택하고 Service다음을 선택하십시오 .

    여기에 이미지 설명을 입력하십시오

  5. Run AppleScript오른쪽 창으로 드래그 하십시오 :
    여기에 이미지 설명을 입력하십시오

  6. 다음 스크립트를 입력하십시오.

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 123 using {shift down, control down}
            end tell
        end tell
    end run
    

    다음과 같이 저장하십시오 Move Cursor to Beginning of Line.

    여기에 이미지 설명을 입력하십시오

  7. 이 스크립트를 사용하여 4-6 단계를 반복하십시오.

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 124 using {shift down, control down}
            end tell
        end tell
    end run
    

    다음과 같이 저장하십시오 Move Cursor to End of Line.

    여기에 이미지 설명을 입력하십시오

  8. 터미널> 서비스는 다음과 같습니다.

    여기에 이미지 설명을 입력하십시오

vi존중 CtrlA하고 구성CtrlE

  1. .bashrc좋아하는 편집기로 열고 다음 행을 추가하십시오.

    alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'

    처음 두 map명령은 말할 vim해석 ControlEControlA같이 $하고 0각각 라인의 시작이나 끝으로 커서를 이동한다.

    마지막 두 map명령은 말할 vim당신이 누를 때 기대하는 것처럼 한 번에 커서 하나의 단어를 이동 option하고 Option.

경고

누르는 순간 또는 커서가 실제로 움직이는 순간 사이에 약간의 지연이 있음을 알 수 있습니다 .

이 프로그램은 CtrlA/ 를 존중하는 프로그램에서만 작동 CtrlE하므로 터미널에서 사용하는 각 프로그램의 특정 키 조합을 계속 배우고 싶을 수도 있습니다.

(macOS Sierra 10.12.4에서 테스트)


답변

물론 가능합니다.

우선, HOME / END 키가있는 Windows 키보드가있는 것처럼 (도구 시작 / 끝) 동작하는 무료 도구 “DoubleCommand”를 사용할 수 있습니다.

둘째, 터미널의 경우, 환경 설정 키보드로 이동하여 왼쪽을 가리키는 화살표 모양의 아이콘 / 키를 편집하고 “텍스트 보내기”를 선택한 다음 ctrl + a를 입력하십시오. 끝난!

종료 버튼과 동일합니다.

PC 키보드가없는 경우 다른 키 조합으로 동일한 작업을 수행 할 수 있습니다.


답변