VI 편집기에서 특정 문자열과 일치하는 라인만 표시하는 옵션을 찾고 있습니다. 줄을 나열한 후 단어를 편집하고 싶으면 이 내용이 원본 파일에 반영되어야 합니다.
예: 내 파일은 다음과 같습니다.
AAA1
X
Y
Z
AAA3
Z
Y
AB
AAA5
AAA8
AAA 순서를 바꾸고 싶어요..이렇게
AAA1
X
Y
Z
AAA2
Z
Y
AB
AAA3
AAA4
나는 그들이 순서대로 있기를 바랍니다. 따라서 AAA가 있는 행을 검색하여 분리하면 해당 특정 목록을 편집할 수 있습니다.
나는 사용했다 vim /AAAA/g % | copen
AAAA 패턴과 일치하는 모든 줄을 엽니다. 그런데 편집을 하면 원본파일에는 반영이 안되네요.
답변1
특정 일치 항목을 바꾸려면 vim에서 바꾸기를 사용해야 합니다.
이 경우 이 패턴 일치를 사용하세요.
:%s/<matching_pattern>/<replace_string>/g
이는 지정된 대체 문자열을 사용하여 파일의 모든 요소와 일치합니다.
답변2
내 생각에는 다음과 같은 것이 필요하다고 생각합니다.
:let i=1 | g/^AAA[0-9]\+/s//\='AAA'.i/ | let i=i+1
당신은 읽을 수 있습니다"오름차순으로 바꾸기"