OS X의 Terminal.app에서 입력 줄의 모든 입력 텍스트를 선택하는 단축키가 있습니까?
edit-and-execute-command
. 적절한 최소 스크립트를 사용하여 두 가지 작업을 모두 수행 할 수 있어야합니다. EDITOR
.
OS X의 Terminal.app에서 입력 줄의 모든 입력 텍스트를 선택하는 단축키가 있습니까?
edit-and-execute-command
. 적절한 최소 스크립트를 사용하여 두 가지 작업을 모두 수행 할 수 있어야합니다. EDITOR
.
답변:
필터를 시도 할 수 있습니다. edit-and-execute-command()
( 조작 )를 통해 적절한 $EDITOR
또는 $VISUAL
:
$ touch foo.sh
$ open foo.sh
세트 foo.sh
콘텐츠를 다음에 저장하고 저장하십시오.
#!/usr/bin/env bash
# copy current command input to clipboard -- requires local session
cat $1 | pbcopy
# clear the prompt, so no command gets executed when closing this script
# comment out the following line to execute the command you entered instead
echo -n "" > $1
exit 0
그런 다음 실행 가능하게 만들고 시각적으로 설정하십시오.
$ chmod +x foo.sh
$ export VISUAL=/Users/danielbeck/foo.sh
~에 bash
프롬프트 (또는 readline
전원이 켜진 프롬프트로 생각합니다.) 현재 명령 입력을 복사하여 복사 할 수 있습니다. Ctrl-X Ctrl-E
호출하다 edit-and-execute-command()
.
너를 편집해라. ~/.inputrc
파일을 클릭하여 단축키를 변경하십시오. 너를 편집해라. .bash_profile
이걸 너의 것으로 지키려고. $EDITOR
/ $VISUAL
- 단점은 명백합니다. $EDITOR
다시 불행히도
또는 무엇을 복제 할 수 있습니까? 이 사용자는하고있다. ,하지만 그는 zsh
, 아니라 bash
.
터미널 자체는 현재 줄의 어떤 부분이 프롬프트인지, 입력 내용이 무엇인지 알지 못합니다. 예를 들어 행에 액세스하는 중입니다. AppleScript를 통해 일반적으로 작동하지 않습니다.
그러나 현재 탭의 전체 출력을 읽고 마지막 행을 가져올 수 있으며 필터링을 통해 프롬프트 탭 부분을 제거하려고합니다.
내 프롬프트는로 끝납니다. $
, 다음 명령이 작동합니다.
tell application "Terminal" tell selected tab of window 1 to do shell script "echo '" & history & "' | sed '/^$/d' | tail -n1 | cut -d$ -f2-"
현재 윈도우의 현재 탭을 가져옵니다. history
속성을 추가하고 필터링 할 수 있습니다. sed
빈 줄을 모두 지우려면 다음을 사용하여 마지막 줄을 가져옵니다. tail
, 그런 다음 모든 것을 제거하고 첫 번째를 포함하여 $
(즉, 내 프롬프트)를 사용하여 cut
.
이 프로그램의 출력은 현재 명령 행입니다. 정말 무의미한 운동 :
~ $ osascript Library/Scripts/get_line.scpt
osascript Library/Scripts/get_line.scpt
마지막에 클립 보드에 복사하려면 다음과 같이 변경하십시오.
tell application "Terminal" to tell selected tab of window 1 to do shell script "echo '" & history & "' | sed '/^$/d' | tail -n1 | cut -d$ -f2- | pbcopy"
당신이 사용할 수있는 자동화 ~을 만들려면 서비스 받는 사람 입력 없음 신청서 단말기 하나의 AppleScript 스크립트 실행 위의 코드로 구성된 액션. 저장하고 키보드 단축키를 선택적으로 할당하십시오. 시스템 환경 설정»키보드»키보드 단축키»서비스 .
bash
방법, echo $PS1
출력에서 제거 된 좋은 템플리트를 작성하기 위해 프로파일 파일을로드 한 후. 불행히도 $PWD
과 date
이 방법을 깨뜨릴 것이다. 또는 백업 할 수 있습니다. $PS1
다른 변수에 일시적으로 저장하고 명령을 실행 한 후에 복원하십시오.