bash에서 ctrl + T를 사용 하시겠습니까?


47

bash에는 ctrl+에 대한 바로 T가기가 커서 커서 앞의 두 문자를 바꿉니다.

엔지니어가 왜 이것을 포함하기로 결정했는지 궁금합니다.

  • 이전 협약에서 물려 받았습니까?
  • 아니면 이것이 일반적으로 사용되는 실용적인 목적이 있습니까?

13
대답은 아니지만 그렇습니다 ( bash그러나 readlinebash는 프롬프트에서 입력에 사용합니다). bash는 emacs키 바인딩을 사용하고 있습니다. ) 당신은 당신의 에디터 전쟁 당파 경우 키 할당을 vi를 변경할 수 있습니다 sanctum.geek.nz/arabesque/vi-mode-in-bash 에 대한 "속임수 - 시트"의 몇 가지있다 readline: 여기가 readline.kablamo.org/emacs을 .htmlreadline.kablamo.org/vi.html .
John N

13
역사적으로, Emacs 스타일의 명령 행 편집 기능은 처음에 Bash에서 개발 된 후 별도의 라이브러리로 바뀌었지만 1989 년 첫 번째 릴리스 이전에 발생했습니다. 이에 대한readline ChangeLog 힌트의 첫 번째 항목입니다 . 따라서 원래 바로 가기는 Bash 자체에서 다루어지기는했지만 간단하게 풀려 나갔지 readline만 바로 가기는 Emacs에서 Bash로 왔습니다 (Emacs에서 발명되었는지 또는 다른 곳에서 나왔는지 알 수 없음).
Stephen Kitt

답변:



63

오타를 빠르게 수정하는 것이 매우 유용합니다.

sl

된다

ls

단일 CtrlT.

AltT단어를 바꾸는데 도 사용할 수 있습니다 ( 예 :servicesystemctl... 사이를 전환 할 때 ).

역사적으로,이 CtrlT기능은 Emacs에서 Bash에게 제공되었습니다. 아마도 다른 편집기에서 Emacs로 복사되었을 것입니다. 그것은 (참조 스탠포드의 E 편집기에서 존재 필수 E의 1980 년 13 페이지) 및 (에 설명 된대로 E는 리차드 스톨만 (Richard Stallman)에 강한 영향을 미쳤다 자유에로 무료 ). Bash의 초기 버전에서 1989 년 첫 번째 릴리스가 시작되기 전에 구현되었으며, readline현재 라이브러리가 라이브러리에 배포되었습니다 ( readline ChangeLog이 힌트의 첫 번째 항목 ).


2
스와핑 단어는 신 매우 도움 것이었다
잡종

Alt + T에 숫자 인수를 제공하면 해당 단어 앞에 n 번째 단어가 있는 커서 위치 (또는 이전)에 단어가 바뀝니다 . 예 : Alt + 2 Alt + T는 에서 수행 되면 수정 word1 word2 word3됩니다 . word3 word2 word1word3
crw

@crw는 훌륭하지만 alt + T는 터미널에서 단어를 바꾸지 않습니다. 메뉴 항목 '제목 설정'을 엽니 다.
Philip Kirkbride 님이

그 부끄러운 @PhilipKirkbride, 터미널 에뮬레이터는 ... 매우 유용한 바로 가기의 당신을 박탈이다
스티븐 키트

@PhilipKirkbride 메뉴 액세스 키를 비활성화하는 터미널 에뮬레이터 옵션이 있습니다.
Joril

15

이 키 조합은 emacs편집기 에서 상속 된 바인딩 으로, 줄의 끝에서 입력 된 마지막 두 문자를 바꾸고, 줄 중간에 사용되며 커서 왼쪽의 문자와 아래의 문자를 바꿉니다. 커서.

몇 번의 키 조작으로 쉽게 달성 할 수없는 드물게 사용되는 기능에 대한 구속력을 갖는 것은 헛된 것처럼 보일 수 있습니다. 내가 사용하는 것과 같은 오래된 타이머는 꽤 자주 사용되며 70 년대 후반, 특히 긴 회선의 중간에 300 개의 보드 모뎀 시대에 약간의 전송 시간을 절약하는 데 사용되었습니다.

Alt+에 바인딩 된 비슷하고 유용한 명령 T은 커서의 왼쪽과 오른쪽에있는 단어를 바꿉니다.

T이 글자는 첫 글자를 바꿨 기 때문에 선택되었습니다 . 기원이 비슷한 다른 바인딩은 다음과 같습니다.

  • Ctrl+ B, 뒤로 이동하려면 커서를 한 위치 왼쪽으로 이동합니다.
    • Alt+ B커서를 한 단어 왼쪽으로 이동
  • Ctrl+ F앞으로 커서를 한 위치 오른쪽으로 이동합니다.
    • Alt+ F커서를 한 단어 오른쪽으로 이동
  • Ctrl+ A, Anfang 또는 ante의 경우 커서를 줄의 시작 부분으로 이동합니다.
  • Ctrl+ E, end의 경우 커서를 줄의 끝으로 이동합니다.
  • Ctrl+ N, next 는 다음 행을 검색합니다.
  • Ctrl+는 P, 대한 이전 , 다음 줄을 검색
  • Ctrl+ D, delete의 경우 커서 아래의 문자를 삭제합니다.
    • Alt+ D커서 아래에있는 단어를 삭제합니다.
  • Ctrl+ K, kill 의 경우 줄 끝을 잘라 내고
  • Ctrl+ Y, yank 의 경우 클립 보드의 내용을 붙여 넣습니다 .

따라서 GNU readline 패키지로 구현 된 이러한 바인딩은 bash 와 같은 사용자 입력을 위해이를 사용하는 모든 프로그램에서 사용 가능 하지만 gdb , bc , ...

Firefox URL 입력 라인, OS / X 그래픽 인터페이스의 텍스트 입력 필드 및 많은 X 기반 창 관리자 등 다른 환경에서도 사용할 수 있습니다.

vim 사용자는 환경 변수를 통해 해당 바인딩을 선택할 수 있습니다.


그렇습니다. 때때로 우리가 Emacs보다는 터미널에 입력하는 것을 잊어 버린 사람들에게 좋습니다. Firefox의 textarea 위젯 (이와 같은)을 사용할 때 여전히 중요한 바인딩이 누락되어 있습니다. :-(
Toby Speight

설명에서 관련 명령의 문자 및 단어 버전을 쌍으로 묶을 수있는 방법이 있습니까? 키 입력의 버전 AltCtrl버전이 일관된 방식으로 관련되어 있음을 인식하면 메모리에 도움이됩니다 .
Toby Speight

@TobySpeight GTK +는 대체 Emacs 스타일 키 바인딩 테마를 지원하므로 Firefox에서 이러한 키 바인딩 중 일부를 사용할 수 있습니다. C-t그러나 아무것도하지 않는 것 같습니다. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindings
Candy Gumdrop

@TobySpeight는 모든 텍스트입니다! ? 선택한 편집기에서 텍스트 영역의 내용을 편집 할 수 있습니다.
Stephen Kitt

@Stephen에게 감사드립니다-들어 보았지만 시도하지 않았습니다 (아직). 나는 ... 그 후속거야
토비 Speight에게

10

그것은 유충이 악의적으로 낭떠러지면서 삐걱 거리는 뾰족한 어류를 제거하기위한 vrey useufl입니다.

(두 손목에 심한 RSI가 있기 때문에 개인적으로 이것을 많이 사용하게됩니다 ...)


2
내 눈은 피가 난다
Basic

4

오타를 매우 빠르게 수정합니다. 강사 직전에 2 개의 교정 블록에 영향을줍니다.

입력 ls-하고 ls& 하이픈 사이에 공백을 원하면 Ctrl+ 를 사용할 수 있습니다T

하이픈 뒤에 공백이 있으면 Ctrl+ 다음에 +를 사용 하면 작동합니다.T

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.