vi 편집기에서 한 줄 이상의 단어를 바꾸는 방법은 무엇입니까?

vi 편집기에서 한 줄 이상의 단어를 바꾸는 방법은 무엇입니까?

예를 들어 vi 편집기에서 today라는 단어가 8줄로 구성된 파일이 생성되었는데, 한 번의 명령으로 어떻게 4줄을 어제라는 단어로 바꿀 수 있는지 궁금했습니다.

답변1

:파일의 내용에 작용하는 대부분의 ex 명령(즉, (콜론)과 명령 이름을 눌러 호출되는 명령 )은 명령 앞에 범위를 지정할 수 있습니다. 이 범위는 명령의 영향을 받는 행을 지정합니다. 범위의 일반적인 형태는 쉼표로 구분된 두 개의 숫자이며, 명령은 첫 번째 숫자부터 두 번째 숫자까지의 모든 행에 적용됩니다. 예를 들어

1,4s/today/yesterday/g

파일의 처음 네 줄에 있는 todayby를 모두 바꿉니다 .yesterday

현재 줄을 기준으로 숫자 앞에 기호를 넣을 수 있습니다. 예를 들어

-1,+1s/today/yesterday/g

이전 줄, 현재 줄, 다음 줄에 대해 교체를 수행합니다. 쉼표를 포함하고 숫자 중 하나를 빼면 현재 줄을 의미합니다. 예를 들어

,+1s/today/yesterday/g

현재 줄과 다음 줄에서 교체를 수행합니다. $숫자 대신에 파일의 마지막 줄을 의미하는 데 사용할 수도 있습니다 . 쉼표를 생략하고 하나의 숫자만 지정하면 명령은 이 줄에서만 작동합니다.

+1s/today/yesterday/g

다음 줄에서만 교체를 수행합니다.

답변2

다음 명령을 사용할 수 있습니다.

:n,m s/today/yesterday/

즉, n행에서 m행까지 'today'라는 단어를 'yesterday'로 바꿉니다.

답변3

이 시도 :

vi 편집기에서 명령 모드로 이동하여 아래 명령을 시도해 보십시오.

:%s/today/yesterday/g

g - 오늘을 전역적으로 어제로 바꿉니다.

관련 정보