티스토리 뷰

키 바인딩의 필요성

맥OS에서 Home키와 End키의 바인딩이 다른 OS와 차이가 있어서 이를 교정하는데 도움이 됩니다.

필요에 따라서 캡스락 키를 컨트롤로 바꾼다든지... 등 조합이 가능합니다.

방법

키 바인딩에 대한 설정을 저장하는 파일이 있는데, 해당 파일을 수정하면 바인딩이 저장됩니다. (여기서 유저는 OS의 로그인 유저를 말한다.)

경로 ~/Library/KeyBindings/DefaultKeyBinding.dict 를 수정하면(없는경우 생성) 해당 유저에 한해서 바인딩이 저장됩니다.

/System/Library/KeyBindings/DefaultKeyBinding.dict 를 바꾸면 전체 유저에 대한 키 바인딩이 변경되기 때문데 권장하지 않습니다.

예시

아래는 설정 예시입니다.

/* DefaultKeyBinding.dict */
/*
    Key Modifiers
    ^ : Ctrl
    $ : Shift
    ~ : Option (Alt)
    @ : Command (Apple)
    # : Numeric Keypad

    Non-Printable Key Codes

    Up Arrow:     \UF700        Backspace:    \U0008        F1:           \UF704
    Down Arrow:   \UF701        Tab:          \U0009        F2:           \UF705
    Left Arrow:   \UF702        Escape:       \U001B        F3:           \UF706
    Right Arrow:  \UF703        Enter:        \U000A        ...
    Insert:       \UF727        Page Up:      \UF72C
    Delete:       \UF728        Page Down:    \UF72D
    Home:         \UF729        Print Screen: \UF72E
    End:          \UF72B        Scroll Lock:  \UF72F
    Break:        \UF732        Pause:        \UF730
    SysReq:       \UF731        Menu:         \UF735
    Help:         \UF746
    */

{
/* Remap Home / End keys to the start/end of paragraph (or line) */

  "\UF729"  = moveToBeginningOfParagraph:; // Home
/* or "\UF729"  = "moveToBeginningOfLine:";  */

  "\UF72B"  = moveToEndOfParagraph:;       // End
/* or "\UF72B"  = "moveToEndOfLine:";  */

  "$\UF729" = moveToBeginningOfParagraphAndModifySelection:; // Shift + Home
/* or "$\UF729" = "moveToBeginningOfLineAndModifySelection:";  */

  "$\UF72B" = moveToEndOfParagraphAndModifySelection:;       // Shift + End
/* or "$\UF72B" = "moveToEndOfLineAndModifySelection:";  */

/* Remap keys for Start/End of document  */
  "^\UF729" = moveToBeginningOfDocument:; // Ctrl + Home
  "^," = moveToBeginningOfDocument:;      // Ctrl +,

  "^\UF72B" = moveToEndOfDocument:;   // Ctrl + End
  "^." = moveToEndOfDocument:;        // Ctrl +.

  "^$\UF729" = moveToBeginningOfDocumentAndModifySelection:; // Ctrl + Shift + Home
  "^$\UF72B" = moveToEndOfDocumentAndModifySelection:;       // Ctrl + Shift + End

/* Remap keys for switching the case of the current word */
  "~-" = lowercaseWord:;
  "~=" = uppercaseWord:;
  "~." = capitalizeWord:;
}

참고 : https://ss64.com/osx/syntax-keybindings.html

반응형
댓글