Vim-선택한 범위의 줄 수


82

나는 범위에 관계없이 범위의 줄을 세고 싶지만, 예를 들어 시각적 블록으로 두십시오. 가장 짧은 방법은 무엇입니까? 내 마음에 떠오르는 모든 것은 다음과 같습니다. '<,'>s/.//n 그러나 이것이 가장 짧은 길이라고 믿지 않습니다.

그래서 누군가 나에게 힌트를 줄 수 있습니까? 미리 감사드립니다.

답변:


139

시각 모드에서 gC-g

일반적인 출력 :

Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --


출처 : :he count-items( 검색 가능한 이름 : :heTabTab... )


큰! 이 팁을 주셔서 감사합니다. 10 분이지나 자마자 답변으로 표시하겠습니다.) 그러나 흥미로운 점은 그럼에도 불구하고 vim에 기능이 있다는 것입니다. 함수가 있어야한다고 확신합니다.
shabunc

@shabunc : "vim에 기능이 있다는 것"이란 무슨 뜻입니까? 당신이 할 수있는 것을 의미 :call합니까? 귀하의 질문에는 그것을 언급하지 않았습니다.
Laurence Gonsalves

다른 내장 함수와 같은 의미의 함수 ( :h functions;)
shabunc aug

1
@shabunc 그럼 "예", 그럼. 질문에 기능을 원한다고 언급하지 않았습니다. 범위의 줄 수를 계산하는 내장 함수가 있다고 생각하지 않지만 두 번의 호출로 자신의 고유 한 함수를 매우 쉽게 정의 할 수 있습니다 getpos()(마크를 입력으로 받아들이고 줄 번호를 포함한 위치를 반환 할 수 있음). 그리고 약간의 빼기.
Laurence Gonsalves 2011 년

1
@shabunc : 내가 찾을 수있는 가장 가까운 것은 :perl $curbuf->Count(줄 수를 반환)
sehe

22

옵션 showcmd( :h 'sc')을 설정하면 선택한 줄 수를 알기 위해 아무것도 입력 할 필요가 없습니다. 처음에는이 옵션을 설정 한 것을 잊었 기 때문에 질문의 요점을 이해하지 못했습니다. ^^ '

그렇지 않고 프로그래밍 방식으로 해당 번호를 얻으려면 다음과 같습니다.

:echo line("'>") - line("'<") + 1

범위 함수 내에서 a:lastline-a:firstline+1. ( :h function-range-example)


8

'<,'>s///n한 문자 더 짧습니다. :-)

시각적 선택의 줄 수만 알고 싶다면 보통 그냥 잡아 당기면됩니다 y. 선택 유형에 따라 "5 줄 잡아 당김"또는 "5 줄 잡아 당김"이라고 표시됩니다.


2
저도 보통 그 목적을 위해 잡아 당깁니다. 그리고 오늘 나는 갑자기 뭔가 새로운 것을
배울 때임을 깨달았습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.