다음 줄이 있습니다.
'0,
'1,
'2,
'3,
쉼표 앞에 따옴표를 붙이는 방법은 무엇입니까?
지금까지 나는 다음을 시도했습니다.
%s/[0-9],/&/g
그래서 & here은 일치하는 패턴을 대체합니다 ...
답변1
다음과 같은 것을 사용할 수 있습니다.
%s/\('[0-9]\),/\1',/
선택 그룹을 사용 \(
하고 생성한 다음 대체 측면(첫 번째 그룹을 의미)에서 참조합니다.\)
\1
답변2
네가 원한다면이동하다숫자 이전 위치부터 쉼표 이전 위치까지 할당량을 지정한 다음 그룹화를 사용할 수 있습니다.
%s/'\([0-9]\),/\1',/
또는 쉼표 앞에 다른 인용문을 추가하려면 첫 번째 그룹에 인용문을 포함시키세요.
%s/\('[0-9]\),/\1',/
답변3
보통 저는 이런 작업에 매크로를 사용합니다.
qqEi'<Esc>0jq3@q
작업이 완료됩니다( <Esc>
5개의 개별 키가 아닌 Esc 키를 누르는 부분이 있다는 점에 유의하세요). 분석은 다음과 같습니다.
qq
매크로 기록을 시작하고 이를 키에 할당합니다q
.Ei'<Esc>
단어 끝으로 이동하여 를 삽입합니다'
.0j
다음 줄의 시작 부분으로 이동합니다.q
녹음을 종료합니다.3@q
매크로를 3번 재생하고 다른 3개 라인에도 동일한 작업을 적용합니다.
3
가지고 있는 행 수로 바꾸세요 .
답변4
어쩌면 이 기능이 필요한 일반 양식을 정의하는 것을 잊었을 수도 있습니다. 추측 없이 요청한 내용을 달성하기 위해 예제 입력에 적합한 가장 간단한(게으른!) 솔루션은 다음과 같습니다.
%s/,/',/
더 복잡한 사례도 처리하려면 패턴 대체가 작동해야 하는 가장 복잡한 사례와 이상적으로는 대상 출력의 예를 포함하여 더 나은 예제를 작성해야 합니다.