vi 에서 한라인의 끝은 $ 인데... 왜 콜론상태에서 한문서전체선

toy의 이미지

vi 에서 한라인에 대한 명령어는 $ 잖아요...
그런데 또 전체문서의 aaa를 bbb로 바꾼다는 명령어가 아래와 같습니다.
:1,$s/aaa/bbb/g

왜 똑같은 $가 이중으로 해석되나요...... :oops:

webdigger의 이미지

:1,%s/aaa/bbb/g 가 아닌가요?

코퍼스의 이미지

$이 단지 한 라인의 끝을 의미하는 것은 아닙니다.

예를 들어, 펄 같은 스크립트 언어에서는 특정 패턴(스트링)에서 해당 패턴의 마지막을 의미하기도 하잖아요?

그러니 특별히 지정하지 않았을 때는 커서가 놓인 위치 즉, 라인의 끝을 나타내고, ':'와 같은 명령 모드에서는 문서 전체에 관연하니 따라서 '문서의 끝'을 나타나내는 것이 더 자연스럽다고도 생각되는데요^^

A few Good Man

차리서의 이미지

코퍼스님 말씀대로 $는 그냥 '마지막'이라는 의미가 강합니다. 용도에 따라서 한 라인의 끝도 될 수 있고 문서 전체의 끝도 될 수 있죠.

참고로, 문서 전체를 대상으로 하는 치환은 말씀하신 대로:1,$s/aaa/bbb/g
로 표현할 수도 있지만 저는 주로
:%s/aaa/bbb/g
를 씁니다.

--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!

Prentice의 이미지

toy wrote:
왜 똑같은 $가 이중으로 해석되나요...... :oops:

이중으로 해석해도 괜찮으니까 그런가보네요.. ^^;