![Vim을 사용하여 텍스트 파일의 각 줄 시작 부분에 단일 연속 숫자 삽입](https://linux55.com/image/39032/Vim%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B0%81%20%EC%A4%84%20%EC%8B%9C%EC%9E%91%20%EB%B6%80%EB%B6%84%EC%97%90%20%EB%8B%A8%EC%9D%BC%20%EC%97%B0%EC%86%8D%20%EC%88%AB%EC%9E%90%20%EC%82%BD%EC%9E%85.png)
몇 가지 문자열이 포함된 텍스트 파일이 있다고 가정해 보겠습니다.
string_g
string_r
string_qqwer
string_p
string_f
string_3qw
string_e
string_qw
문자열 앞에 증가하거나 감소하는 숫자를 삽입해야 합니다.
001 string_g
002 string_r
003 string_qqwer
004 string_p
005 string_f
006 string_3qw
007 string_e
008 string_qw
혼란을 피하기 위해:
줄 번호를 표시하고 싶지 않습니다. 나는 그것이 어떻게 작동하는지 알고 있습니다. 내가 원하는 것은 텍스트의 각 문자열 시작 부분에 있는 실제 숫자입니다.
이것을 자동화할 수 있는 방법이 있나요 vim
?
CTRL각 문자열의 시작 부분을 -로 표시한 V다음 :실행 모드로 들어가도록 입력하면 선택을 통해 명령을 실행할 수 있지만 :'<,'>
거기에서 멈춰 있습니다.
답변1
외부 유닉스 명령을 사용하십시오 nl
.
:'<,'>!nl -w 3 -n rz -s' '
답변2
그냥 사용하세요 vim
(외부 명령 없음):
let i=1 | '<,'>g/^/ s//\=printf("%03d ",i) / | let i+=1
let i=1
시작하려는 번호로 변경하세요 .