ed에 변경할 행을 삽입합니다.

ed에 변경할 행을 삽입합니다.

사용자가 특정 줄을 변경할 수 있게 해주는 ed유용한 명령이 있습니다 . c( rlwrap행이 변경되면 위쪽 및 아래쪽 화살표를 사용하여 이전 변경 사항을 가져올 수 있으므로 를 사용하면 변경이 더 쉬워집니다.)

ed이러한 변경을 더 쉽게 만드는 기능 중 하나는 전체 또는 대부분을 다시 입력할 필요 없이 변경하려는 줄을 복사하는 기능 이며, 마우스를 사용하지 않고도 뒤로 화살표를 사용하여 간단히 원하는 내용을 변경할 수 있습니다. 편집하려는 줄을 붙여넣습니다.

예를 들어:

1 This line must be changed
c
This line must be changed

대신 기본 동작은 다음과 같습니다.

1 This line must be changed
c
BLANK LINE

다른 프로그램을 사용하여 이것이 가능한지 잘 모르겠습니다 ed.

답변1

c의 명령을 사용하여 줄을 변경하면 ed편집기에서 해당 줄을 무엇으로 바꿀 것인지 묻습니다. 간단한 줄 편집기로서 새 텍스트를 대화식으로 수정할 수 있는 방법이 없기 때문에 대체 내용을 줄의 이전 내용으로 미리 채우지 않습니다.

그러나 edReadline 라이브러리 래퍼와 함께 사용 하면 rlwrap텍스트를 제출하기 전에 Readline에서 인라인 편집을 수행할 수 있습니다 ed. 특히, 변경하려는 줄을 이미 작성했다면최근에는 충분히(아직 Readline의 기록에 남아 있도록) Up-Arrow또는 다른 적절한 키 바인딩을 사용하여 줄의 기록을 순환하거나 검색하고 명령을 실행한 후 편집 할 수 있습니다 c.

rlwrap저장된 기록의 크기는 유틸리티 옵션을 통해 또는 Readline 구성 파일을 편집하여 조정할 수 있습니다. 이것은 또 다른 질문의 주제입니다.-s~/.inputrc.ed_history 파일의 크기를 늘리는 방법


주석이 달린 ed편집 세션( #세션에 주석 추가)은 두 줄로 된 문서를 생성하고 위에서 설명한 방식으로 첫 번째 줄을 변경합니다.

$ rlwrap ed newfile                     # start ed with rlwrap
newfile: No such file or directory
a                                       # add lines
this line must change
this line is ok
.                                       # done adding lines
1c                                      # change first line
this line is now ok too                 # pressed up-arrow to find the old line, edited it
.                                       # done changing
,n                                      # output all lines with line numbers
1       this line is now ok too
2       this line is ok

관련 정보