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.