왜 않습니다 fn– ⇧– →(또는 다른 사람) 터미널에서 홈 / 말을하지만,이 ⌘– →다른 곳에서 작동?
질문을 분명히하기 위해 터미널을 Command+로 ←하고 →집에서 끝내는 방법은 무엇입니까?
답변
편리하게 터미널은 원하는 기능을 쉽게 제공 할 수 없습니다.
그 이유는 터미널 내에서 실행되는 프로그램이 커서를 줄의 시작 / 끝으로 이동하는 규칙이 다르기 때문입니다.
bash
(및 다른 껍질) 사용 CtrlA및CtrlEvi
사용 0및 $/Shift4
다른 프로그램은 다른 키를 사용할 수 있습니다. 커서를 줄의 시작 / 끝에 배치하기위한 범용 키 조합은 없습니다.
물론 터미널은 여러 일반적인 프로그램에 대한 키 조합 목록을 유지 관리하고, 실행중인 항목을 확인하고 올바른 키를 보내거나, 커서를 셸 내부의 시작으로 이동 ⌘ ← 와 같은 메뉴 항목을 제공 한 다음 보낼 수 있습니다 CtrlA무대 뒤에서. 그러나 애플 엔지니어들은 CLI 영역 에서 모험을 하면 그 특성을 잘 알고 있다고 생각합니다 .
사이드 참고로, 터미널 제공 Option←하고 Option→있는 동작합니다 bash
예상 및 이전 / 다음 단어의 처음으로 커서를 이동하는 것처럼. 이는 이러한 키 조합이 Escb및 에 매핑되어 있기 때문 입니다 (자세한 내용은 “이동 명령”섹션 Escb참조 man bash
). 에서은 vi
, 예를 들어, 후자 만 (가지) (이 답변의 끝에 내가 방법을 구성 할 보여주지 작동 vi
과 작업을 Option←하고 Option→) 있습니다.
하지만 덕분에 자동화, 애플 스크립트와 bash는 별칭으로 당신이 얻을 수있는 ⌘←과 ⌘→와 작업에 대한 bash
(그리고 아마도 다른 셸)와 vi
.
첫 번째 단계는지도하는 ⌘←과 ⌘→에 CtrlA와 CtrlE. 두 번째 단계에서, 나는 방법을 구성하는 방법을 보여 드리겠습니다 vi
명예 CtrlA와 CtrlE(결과적으로 만들 것이다, vi
호환 ⌘←및 ⌘→).
지도 ⌘←및 ⌘→에 CtrlA과CtrlE
-
를 누르고 +수정 자로 “왼쪽 커서”, “Control-Shift”를 선택하고 “텍스트 보내기 :”를 수행하십시오. 그런 다음 CtrlA(
\001
텍스트 필드에 나타남)을 누르고 다음으로 확인하십시오 OK.
(이 답변의 이전 버전에서는 “Shift”를 수정 자로 사용했습니다.이 설정이와 충돌하는 것을 발견했습니다. 즉 ⌘shift←, 사용자가 ⌘즉시 놓지 않으면 이전 터미널 탭이 표시 됩니다. “Control-Shift”사용 수정합니다.)
-
이제 “커서 오른쪽”에 대한 키 조합을 추가하십시오. 그러나 텍스트 필드에 CtrlE(
\005
가 나타납니다)를 누르십시오 . 로 확인하십시오 OK. -
Automator를 열고 (예를 들어, ⌘spaceSpotlight를 불러오고 Automator를 입력 하십시오) File> New를 선택하고
Service
다음을 선택하십시오 . -
Run AppleScript
오른쪽 창으로 드래그 하십시오 :
-
다음 스크립트를 입력하십시오.
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
. -
이 스크립트를 사용하여 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
. -
터미널> 서비스는 다음과 같습니다.
vi
존중 CtrlA하고 구성CtrlE
-
.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
해석 ControlE과 ControlA같이 $하고 0각각 라인의 시작이나 끝으로 커서를 이동한다.마지막 두
map
명령은 말할vim
당신이 누를 때 기대하는 것처럼 한 번에 커서 하나의 단어를 이동 option←하고 Option→.
경고
누르는 순간 ⌘←또는 ⌘→커서가 실제로 움직이는 순간 사이에 약간의 지연이 있음을 알 수 있습니다 .
이 프로그램은 CtrlA/ 를 존중하는 프로그램에서만 작동 CtrlE하므로 터미널에서 사용하는 각 프로그램의 특정 키 조합을 계속 배우고 싶을 수도 있습니다.
(macOS Sierra 10.12.4에서 테스트)
답변
물론 가능합니다.
우선, HOME / END 키가있는 Windows 키보드가있는 것처럼 (도구 시작 / 끝) 동작하는 무료 도구 “DoubleCommand”를 사용할 수 있습니다.
둘째, 터미널의 경우, 환경 설정 키보드로 이동하여 왼쪽을 가리키는 화살표 모양의 아이콘 / 키를 편집하고 “텍스트 보내기”를 선택한 다음 ctrl + a를 입력하십시오. 끝난!
종료 버튼과 동일합니다.
PC 키보드가없는 경우 다른 키 조합으로 동일한 작업을 수행 할 수 있습니다.