2008-09-26 4 views
10

좋아,이게 간단하다고 확신하지만 그것은 내 마음을 끌고있다. 나는 최근에 조금 뒤로 물러서서 Redhat 9를 사용했던 프로그램에서 일했다. KornShell (ksh)을 실행하는 표준 xterm에서 명령 행을 타이핑 할 때, 줄 바꿈 문자를 줄 바꿈하지 말고 화면을 오른쪽으로 긋습니다 (내 명령의 왼쪽면을 잘라내십시오). 이전 명령에서 직접 복사하여 붙여 넣기를 명령 줄에서 쉽게 수행 할 수 없기 때문에 상황이 어려워졌습니다. 나는 역사를보고 거기에서 명령을 붙여야한다. 혹시 궁금한 점이 있으면 명령 줄 awk 스크립트를 많이 사용하여 줄이 길어질 수 있습니다.KornShell (ksh) 둘러보기

입력 할 명령의 오른쪽으로 시프트가 이동하는 대신 명령 줄을 강제로 감싸는 방법이 있습니까?

전 맨 페이지 옵션을 사용했습니다.

내가 실행 해요 :

  • XFree86의 4.2.99.903 (174)
  • KSH 5.2.14.

감사합니다.

+0

원하는 답을 얻었 으면 알려주세요. – tzot

답변

2

가능하면, \ 추가하여 여러 줄에 명령을 파괴하려고 예 :

 
$ mycommand -a foo \ 
    -f bar \ 
    -c dif 
0

나는 포장 쉘을 강제하는 방법을 알고하지 않습니다,하지만 난 당신이 이유를 물어 보곤 길게 줄을 써야합니다. awk 스크립트를 사용하여 스크립트를 작은 따옴표로 묶은 다음 원하는 위치에서 줄 바꿈을합니다. 스크립트에서 작은 따옴표가 필요한 경우에만 까다로워집니다. 작은 따옴표와 큰 따옴표가 모두 필요하다면 악마적입니다. 사실, 규칙은 충분히 간단합니다. 작은 따옴표를 사용하여 전체 스크립트를 래핑하고 스크립트에서 작은 따옴표를 사용하려면 '\''을 작성하십시오. 첫 번째 따옴표는 이전의 작은 따옴표로 묶인 문자열을 종료합니다. 백 슬래시 - 작은 따옴표는 작은 따옴표를 산출합니다. 마지막 작은 따옴표는 새로운 작은 따옴표로 묶인 문자열을 시작합니다. 당신이 eval 같은 것을 위해 그 문자들을 escape 할 필요가 있다면 그것은 정말로 털이 있습니다.

다른 질문은 - 편집기를 시작하지 않는 이유입니다. 나는 열심히 노력하는 vim nutcase (ok - 나는 20 년 이상 vi를 사용 해왔다. 그래서 대안보다 훨씬 편하다), 나는 Korn shell을 vi 모드 (set -o vi)로 설정했다. escape-v를 사용하여 입력 한 내용에 대해 편집기를 시작할 수 있습니다.

6

man ksh을 했습니까?

set -o multiline을하고 싶습니다. man ksh에서

발췌 :

여러 :

내장 된 화면의 폭보다 긴 라인의 화면에 여러 줄을 사용합니다 편집자. 이 경우 모든 터미널에 대해 이 작동하지 않을 수 있습니다.

+0

퍼티에 대한 작품 - 그리고 그것은 정신적으로 나를 몰고왔다! – Anonymouslemming

0

이 실용적인 대답의 종류,하지만이 문제가 나를 위해 때 나는 보통과 같이 수행

strings ~/.history | grep COMMAND 

또는

strings ~/.history | tail 

(기록 파일이있다를 약간의 이진 데이터가 있으므로 '문자열')

4

eval $ (리사이즈)해야합니다 티.

+0

터미널 창 크기 (퍼티)를 변경할 때마다 실행해야합니다. 이것을하기위한 역동적 인 방법이 있습니까? – Kit

0

간단한 대답은 다음과 같습니다

$ set -o multiline 

KSH 이전 5.12보다 NetBSD의 6.1과 함께 제공되는 KSH처럼,이 옵션이 없습니다.

$ set +o emacs 

이 탭 완성 또는 롤 '위쪽'키를 사용하는 것처럼, 모두 featuers 많이 해제 : 당신은 일반적으로 이맥스 전류 대화 형 입력 라인 편집 모드를 해제해야합니다 이전 명령을 다시 수행하십시오.

어떻게 든 emacs 모드에 익숙해지기를 원하면^a는 줄의 시작 부분 ("Home"키는 작동하지 않음)을 기억하고^e가 끝까지 간다는 것을 기억하십시오.