Program Tip

Vim의 소스 코드에 줄 번호 추가

programtip 2020. 10. 31. 09:59
반응형

Vim의 소스 코드에 줄 번호 추가


vim의 행 범위에 줄 번호를 어떻게 추가 할 수 있습니까? ": set nu"와는 다릅니다. 숫자 만 표시하지만 파일에 추가하지는 않습니다.


:%s/^/\=line('.')/

편집 : 주석을 요약합니다.

이 명령은 원하는만큼 조정할 수 있습니다.


시각적 선택 ( V+ 이동) 에서 줄 앞에 숫자를 추가 하고 번호 매기기가 42에서 시작되도록 한다고 가정 해 보겠습니다 .

:'<,'>s/^/\=(line('.')-line("'<")+42)/

숫자와 줄의 이전 텍스트 사이에 문자열을 추가 .하려면 숫자 표현식에 연결하기 만하면됩니다.

:'<,'>s/^/\=(line('.')-line("'<")+42).' --> '/

텍스트로 정렬하기 위해 이것이 필요한 경우 결과를 0으로 채울 수 있습니다 . 예를 들어 ... 대신 printffor 0001, 0002...를 사용하여 수행 할 수 있습니다 1, 2.

:%s/^/\=printf('%04d', line('.'))/

어쨌든 더 많은 정보를 원하시면 vim 도움말을 열고 :h :s링크 ( |subreplace-special|, ..., |submatch()|)를 따라 가십시오.


cat -n입력에 줄 번호를 추가합니다. 현재 파일을 파이프로 연결하고 현재 cat -n버퍼를 stdout에 인쇄하는 내용으로 바꿀 수 있습니다 . 다행스럽게도이 복잡한 솔루션은 vim에서 10 자 미만입니다.

 :%!cat -n

또는 하위 선택 만 원하는 경우 해당 영역을 시각적으로 선택하고 다음을 입력합니다.

 :!cat -n

그러면 시각적 선택 마커가 자동으로 삽입되고 입력 한 후 다음과 같이 표시됩니다.

 :'<,'>!cat -n

줄 번호를 지우려면 control-v사각형을 시각적으로 선택할 수 있는를 사용 하는 것이 좋습니다 x. 그런 다음을 사용하여 해당 사각형을 삭제할 수 있습니다 .


GNU 시스템에서 : 외부 nl바이너리 사용 :

:%!nl

Unix와 같은 환경에서는 cat 또는 awk를 사용하여 쉽게 줄 번호를 생성 할 수 있습니다. vim은 쉘과 친숙한 인터페이스를 가지고 있기 때문에 모든 것이 vim에서 작동하고 쉘에서도 작동합니다.
에서 빔 Tip28 :

:%!cat -n

또는

:%!awk '{print NR,$0}'

그러나 MS-DOS, win9x, win2000에서 vim을 사용하면 이러한 툴킷이 손실됩니다. 다음은 vim으로 만 이것을 보관하는 매우 간단한 방법입니다.

fu! LineIt()
  exe ":s/^/".line(".")."/"
endf

또는 알파벳으로 구성된 시퀀스는 위와 같이 쉽습니다.

exe "s/^/".nr2char(line("."))."/" 

subst를 사용할 수도 있습니다.

:g/^/exe ":s/^/".line(".")."^I/"

파일에 추가하지 않고 행만 인쇄 할 수도 있습니다.

"때때로 큰 소스 파일을 편집하여 종이에 줄 번호를 인쇄하는 것이 유용 할 수 있습니다.
이렇게하려면 이 기능 :set printoptions=number:y을 활성화 및 :set printoptions=number:n비활성화 하는 옵션 사용할 수 있습니다 .
줄 번호를 항상 인쇄해야하는 경우 줄 set printoptions=number:yvimrc. "


먼저 다음과 같은 경우 기존 줄 번호를 제거 할 수 있습니다.

:%s/^[0-9]*//

그런 다음 줄 번호를 추가 할 수 있습니다. NR1부터 시작하는 현재 줄 번호를 나타내므로 원하는 번호를 얻기 위해 계산을 할 수 있습니다. 다음 명령은 4 자리 줄 번호를 제공합니다.

:%!awk '{print 1000+NR*10,$0}'

"VisIncr" 플러그인은 증가 일반적으로 숫자 (또는 문자, 날짜, 로마 숫자 등)의 열을 삽입 좋다. 숫자 형식, 패딩 등을 제어 할 수 있습니다. 따라서 모든 행의 앞에 "1"을 삽입 (경유 :s하거나 :g또는 영상 블록 삽입)을 강조하는 영상 블록 모드에서 열 및 플러그인의 명령 중 하나를 실행.


누군가이 훌륭한 대답을 사용하여 줄 번호를 삽입 한 후 탭 (또는 공백)을 넣고 싶다면 여기에 방법이 있습니다. 탈출 모드로 들어간 후 다음을 수행하십시오.

:%s/^/\=line('.').'    '/

^줄의 시작을 의미 %s하며 대체를위한 지시문입니다. 그래서 우리는 각 줄의 시작 부분에 줄 번호를 넣고 여기에 4 개의 공백을 추가 한 다음 대체 전에 줄의 내용을 입력하고 파일의 모든 줄에 대해이 작업을 수행한다고 말합니다.

그러면 자동으로 대체됩니다. 또는 명령이 사용자에게 확인을 요청하도록하려면 다음을 수행하십시오.

:%s/^/\=line('.').'    '/igc

PS : 정력의:)

참고 URL : https://stackoverflow.com/questions/252766/add-line-numbers-to-source-code-in-vim

반응형