[apple] “홈”과“끝”을 줄의 시작과 끝으로 다시 매핑

내 컴퓨팅 시간의 대부분은 Linux에서 사용됩니다 (Windows에서는 가끔 시간이 소요됨). 이러한 플랫폼에서 HomeEnd키는 현재 줄의 시작 또는 끝으로 보편적으로 이동합니다.

내 인생에서 한 대의 Apple 컴퓨터를 사용하는 데 점차 익숙해 지지만이 키가 문서의 시작과 끝 부분에 묶여있는 것보다 여전히 실망 스럽습니다. 기반 행동.

내 질문:

  1. 줄의 시작과 끝에서 누락 된 기존 키 바인딩이 있습니까? (주로 터미널, Chrome 및 LibreOffice를 사용합니다)
  2. 이 키의 기능을 내가 알고있는 기능에 리 바인드하는 방법이 있습니까? 나는 거의 쓸모가없는 문서 기반 버전을 기꺼이 포기할 것입니다.

또한 두 가지주의 사항 :

  1. 나는 시스템의 유일한 사용자가 아닙니다. 내 사용자 설정이 다른 사람들의 경험을 방해하지 않으면 좋을 것입니다. 이것이 가능하지 않다면 아마도 내가 가장 선호하는 것 같습니다!
  2. 여러 언어를 사용하고 키보드 레이아웃간에 전환하므로 여러 키보드 레이아웃간에 전환 할 때도 모든 솔루션이 작동 할 것으로 예상됩니다.


답변

줄 바꿈 시작 또는 끝으로 이동하기위한 기본 바로 가기는 입니다. 또는 AE언 래핑 된 라인 (또는 단락)의 시작 또는 끝으로 이동한다. 그리고 단어 앞으로 / 뒤로 이동, 그리고이 모든 지주와 호환되는 Shift해당 이동 중에 선택할 수 있습니다.

~/Library/KeyBindings/다음과 같이 속성 목록 을 작성 하고 저장하여 홈을 재 맵핑하고 종료 할 수 있습니다 DefaultKeyBinding.dict.

{
    "\UF729"  = moveToBeginningOfLine:; // home
    "\UF72B"  = moveToEndOfLine:; // end
    "$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home
    "$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end
}

OS X에서 텍스트를 편집하기위한 대부분의 키 바인딩은에 정의되어 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict있습니다.

변경 사항을 적용하려면 응용 프로그램을 다시 열어야합니다. DefaultKeyBinding.dict는 일부 이전 버전의 Xcode (최신 버전 6.3.1에서 작동), 터미널 및 여러 플랫폼 간 응용 프로그램에서 무시됩니다.

참조 코코아 텍스트 시스템내 웹 사이트를 사용자 정의 가능한 키 바인딩에 대한 자세한 내용은.

터미널의 키 바인딩은 환경 설정> 설정> 키보드에서 사용자 정의 할 수 있습니다. \033OH줄의 시작과 줄 \033OF의 끝으로 이동합니다.

Eclipse에서 키 바인딩은 환경 설정> 일반> 키에서 수정해야합니다. 줄 시작줄 끝 명령에 대한 기본 바인딩을 수정해야합니다 (를 ⌘ ←로 ​​바꾸고 ⌘ →를 ↘로 바꾸십시오). 선택이 작동하려면 라인 시작 선택라인 끝 선택을 수정 하십시오 .

PS : 당신이해야 할 수 있습니다 로그 아웃하고 다시 로그인 에 대한 ~/Library/KeyBindings/DefaultKeyBinding.dict사항을 적용하려면 변경.


답변

저는 현재 Lion 10.7.4를 사용하고 있으며 이상한 이유로 편집이 효과 ~/Library/KeyBindings/DefaultKeyBinding.dict가 없었습니다.

KeyRemap4MacBook 시스템 환경 설정 애드온 (현재 Karabiner )이 실제로 잘 작동 한다는 것을 알았으며 텍스트 파일을 편집하지 않고도 다양한 키를 다시 매핑 할 수 있습니다. 예를 들어, 페이지 위로 / 페이지 아래로 키를 변경하면 커서가 페이지 위로 / 아래로도 이어집니다.

애드온을 다운로드하고 시스템 환경 설정 패널에서 해당 For PC Users섹션을 찾아 확인하십시오 Use PC Style Home /End.

참고로, 나는 첫 번째를 선택한 것처럼을 (Change Home to Command+Left)대신 (Change Home to Control+A)선택했습니다. 줄이 줄 바꿈되면 홈은 현재 줄의 시작 부분으로 이동하는 대신 줄 바꿈 된 줄의 시작 부분으로 이동합니다.

KeyRemap4MacBook


답변

이 기사 덕분에 키보드 레이아웃에서 작동하는 사용자별로 HomeEnd키를 라인 기반 동작에 리 바인드하는 방법을 알아 냈습니다 .

키 코드와 매핑 할 새 명령을 사용하여 사전 파일을 만들어야하지만 먼저 터미널을 열고 실행하여이 폴더를 배치 할 폴더가 있는지 확인하십시오.

$ mkdir -p ~/Library/KeyBindings

그런 다음에서 파일을 작성하거나 편집하십시오 ~/Library/KeyBindings/DefaultKeyBinding.dict. 이전에 존재하지 않았다면 아래 섹션 전체를 추가하십시오. 존재하는 경우 블록 안에 네 개의 새 행을 추가하십시오.

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

설정을 활성화하려면 사용자를 로그 아웃하고 다시 로그인해야합니다.

여기에는 커서 이동의 정상적인 동작과 커서 이동 중에 선택 하는 Shift+ Home/ End조합이 모두 포함됩니다.


답변

OS X Sierra를 사용하고 있으며 ~/Library/KeyBindings/DefaultKeyBinding.dict다른 사용자가 제안한 솔루션이 부분적으로 효과가 있습니다. TextEdit와 같은 일부 응용 프로그램에는 원하는 동작이 있지만 다른 응용 프로그램은 그렇지 않습니다. Chrome과 Slack은 DefaultKeyBinding.dict파일 을 존중하지 않는 것 같습니다 .

나머지 응용 프로그램 문제를 해결하려면, 내가 사용 BetterTouchTool가 바인딩 응용 프로그램 별 키보드 단축키를 생성 Home하고 EndOS X의 기본 바로 가기에 Ctrl+ACtrl+E. BetterTouchTool은 무료가 아니지만 45 일의 평가 기간이 있습니다.

이것을하기 위해:

  1. BetterTouchTool 설치 및 시작
  2. 제스처> 키보드 탭으로 이동
  3. “응용 프로그램 선택”에서을 클릭 +하고 수정하려는 앱을 선택하십시오.
  4. “새 바로 가기 추가”를 클릭 Home하고 “레코드 바로 가기”필드에 키를 지정한 다음 “다른 키보드 바로 가기 트리거”를 Ctrl + A로 설정하십시오. End와 Ctrl + E를 반복하십시오 .
  5. 완료되면 패널은 다음과 같아야합니다.BetterTouchTool 패널
  6. BetterTouchTool의 고급 설정에서 시작시 실행되도록 허용하십시오.

참고 : BetterTouchTool 앱을 종료하지 마십시오. 그렇지 않으면 키 누름 차단이 중지됩니다. 창을 닫으면 백그라운드에서 계속 작업해야합니다.


답변

아래의 사용자 정의 설정으로 멋진 KeyRemap4MacBook 을 사용하고 있습니다.

대부분의 응용 프로그램에서 Home / End를 수정하고 iTerm2를 망치지 않습니다.

에서 https://gist.github.com/lhotari/6134223181439b9ed0a1

<?xml version="1.0"?>
<!-- ~/Library/Application Support/KeyRemap4MacBook/private.xml -->
<!-- Custom keyboard mappings for MBP using https://pqrs.org/macosx/keyremap4macbook/ -->
<root>
    <item>
        <name>Lari's PC Style Home/End</name>
        <appendix>(Change Home to Command+Left)</appendix>
        <appendix>(Change End to Command+Right)</appendix>
        <appendix></appendix>
        <appendix>{{ PC_STYLE_BINDINGS_IGNORE_APPS_DESCRIPTION }}</appendix>
        <identifier>lari.remap.pclikehomeend</identifier>
        <block>
            <only>DREAMWEAVER</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END,  ModifierFlag::SHIFT_L</autogen>
        </block>
        <block>
            <only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END</autogen>
        </block>
        <!--
        <block>
            <only>EMACS, TERMINAL, X11, ECLIPSE</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::E, ModifierFlag::CONTROL_L</autogen>
        </block>
         -->
        <block>
            <not>{{ PC_STYLE_BINDINGS_IGNORE_APPS }}</not>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME,             KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,              KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
        </block>
    </item>
</root>


답변

나는 여기 에서 인용에 유용 iterm2하고 유용한 것을 발견했다 .zsh

를 엽니 다 iTerm > Preference. 로 이동하십시오 profiles tab > Keys. 그런 다음 +키 목록 맨 아래 에있는 버튼을 클릭
하고을 누른 다음 select 아래 에서 Home또는 Fn+left arrowApple 무선 키보드를 누릅니다.ActionSend Escape Sequence[1~

이스케이프 키 시퀀스에 대해 End키를 반복하십시오 [~4.

zsh를 사용하는 경우 다음을 수행하십시오.

1) ~/.zshrc파일에 다음을 배치하십시오.

bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

2) source ~/.zshrc열린 터미널에서 실행하십시오 .


답변

키보드를 변경하는 가장 좋은 도구는 실제로 Karabiner (이전 명칭 KeyRemap4MacBook)입니다. 오픈 소스 ( https://github.com/tekezo/Karabiner )이지만 응용 프로그램 ( https://pqrs.org/osx/karabiner/index.html.en ) 으로도 제공됩니다 . 나는 꽤 오랫동안 검색해 왔으며 더 좋은 것을 찾지 못했습니다.