문제
VIM의 행 범위에 줄 번호를 추가하려면 어떻게해야합니까? ": set nu"에서와 같이 아님 - 숫자 만 표시되지만 파일에 추가하지는 않습니다.
해결책
와 함께
:%s/^/\=line('.')/
편집 : 주석을 요약합니다.
이 명령은 원하는만큼 조정할 수 있습니다.
시각적 선택에서 라인 앞에 숫자를 추가하고 싶다고 가정 해 봅시다 (V
+ 이동), 당신은 42에서 번호를 시작하기를 원합니다.
:'<,'>s/^/\=(line('.')-line("'<")+42)/
라인에서 숫자와 이전 텍스트 사이에 문자열을 추가하려면 ( .
viml)에서는 숫자 표현으로 :
:'<,'>s/^/\=(line('.')-line("'<")+42).' --> '/
텍스트로 정렬하기 위해 이것을 필요로하는 경우 결과를 제로 채우고 싶을 수도 있습니다. printf
~을 위한 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과 쉘에서 작동하기 때문에 선 번호를 쉽게 생성 할 수 있습니다.
에서 vim tip28:
:%!cat -n
또는
:%!awk '{print NR,$0}'
그러나 Win9X, Win9X의 MS-DOS에서 VIM을 사용하면이 툴킷을 잃어 버립니다. 다음은 VIM에 의해서만 이것을 보관하는 매우 간단한 방법입니다.
fu! LineIt()
exe ":s/^/".line(".")."/"
endf
또는 알파벳으로 구성된 시퀀스는 위와 같이 쉽습니다.
exe "s/^/".nr2char(line("."))."/"
당신은 또한 보체를 사용할 수 있습니다 :
:g/^/exe ":s/^/".line(".")."^I/"
파일에 추가하지 않고도 라인을 인쇄 할 수도 있습니다.
"때로는 종이에 줄 번호를 인쇄하기 위해 대형 소스 파일을 편집하는 것이 유용 할 수 있습니다.
그렇게하려면 옵션을 사용할 수 있습니다:set printoptions=number:y
활성화 및:set printoptions=number:n
이 기능을 비활성화합니다.
줄 번호를 항상 인쇄 해야하는 경우 라인을 놓습니다.set printoptions=number:y
에서vimrc
."
먼저 필요한 경우 기존 줄 번호를 제거 할 수 있습니다.
:%s/^[0-9]*//
그런 다음 줄 번호를 추가 할 수 있습니다. NR
현재 라인 번호가 하나부터 시작되므로 원하는 번호를 얻기 위해 수학을 할 수 있습니다. 다음 명령은 네 자리 줄 번호를 제공합니다.
:%!awk '{print 1000+NR*10,$0}'
그만큼 "Visincr" 플러그인은 일반적으로 숫자를 증가시키는 열을 삽입하는 데 좋습니다 (또는 문자, 날짜, 로마 숫자 등). 숫자 형식, 패딩 등을 제어 할 수 있습니다. 따라서 모든 라인 앞에 "1"을 삽입하십시오 ( :s
또는 :g
또는 Visual-Block Insert), 해당 열을 Visual-Block 모드에서 강조 표시하고 플러그인에서 명령 중 하나를 실행하십시오.
누군가가 이 훌륭한 대답, 여기 방법이 있습니다. 탈출 모드로 들어간 후 :
:%s/^/\=line('.').' '/
^
선의 시작을 의미합니다 %s
대체 지침입니다. 따라서 각 선의 시작 부분에 줄 번호를 넣고 4 개의 공간을 추가 한 다음 선의 내용을 대체하기 전에 놓고 파일의 모든 줄에 대해이 작업을 수행한다고 말합니다.
이것은 자동으로 그것을 대체합니다. 또는 명령이 귀하의 확인을 요청하도록하려면 다음을 수행하십시오.
:%s/^/\=line('.').' '/igc
추신 : 힘 정력 :)