ed는 다음 n줄을 최대한 간결하게 인쇄합니다.

ed는 다음 n줄을 최대한 간결하게 인쇄합니다.

나는 DSL의 버전이 다른 도구(예: ) ed에 나타나기 때문에 DSL을 더 잘 이해 하려고 노력하고 있습니다 .sedvim

현재 줄에서 시작하여 4줄 아래로 확장되는 명시적 범위를 사용 ed하여 다음 4줄을 인쇄하려면 이 옵션을 사용합니다 ..,+4n.,+4

그러나 문맥을 파악하기 위해 현재 줄 주위에 몇 줄을 인쇄하는 것은 중요해 보이며 약간의 구문적 설탕이 필요합니다.

현재 행을 기준으로 행 범위에 대한 약어가 있습니까 ed?

예를 들어, 아래 내용은 .,+4n상당히 길어 보입니다.

$ touch ~/foo
$ ed '-p* ' ~/foo
0
* 0a
1
2
3
4
5
6
7
8
9
10
11
.
* 5
5
* .,+4n
5   5
6   6
7   7
8   8
9   9

답변1

-4,+4n처음 네 줄, 현재 줄, 다음 네 줄(번호가 매겨져 있음)이 인쇄됩니다.

같은 내용을 작성하는 또 다른 방법은 약간 더 짧은 것입니다 -4z8n. 먼저 지정된 줄(여기 )로 이동한 다음 해당 줄과 추가 줄(여기)을 표시한다는 점을 z제외하면 명령이 적용됩니다 . 행에 번호를 매기십시오 . 실제 차이점은 명령을 내리면p-48nzn 다시(지금은 숫자가 없습니다) 표시됩니다다음8줄(또는 z초기 명령 다음에 입력한 숫자)

두 명령 모두 "현재 행"을 변경하므로 수동으로 뒤로 이동하거나 -4이동하기 전에 표시를 설정한 다음(예를 사용하여 ka) 해당 표시로 다시 이동해야 합니다(예를 사용 'a). 불행하게도 편집기는 ed동시에 주어진 여러 명령을 허용하지 않습니다...

z명령은 그렇지 않습니다.기준eded명령이지만 edGNU 및 BSD 시스템 모두에서 지원됩니다.

를 사용하면 ex이 명령은 .z.5현재 라인을 가운데에 두고 현재 버퍼의 5개 라인을 표시합니다. 여기서 커서를 마지막으로 표시된 줄 아래로 이동할 수도 있습니다.

관련 정보