저는 Vim을 사용하여 파일에 있는 모든 문자나 단어의 개수를 세려고 합니다. 이는 같은 줄에 같은 단어가 여러 번 나타나는 것도 고려해야 함을 의미합니다. 이 문제는 이전에 여러 기사에서 논의되었습니다.표시 버퍼가 변경되지 않은 Vim의 횟수 발생,vi 편집기에서 문자열을 검색하고 개수를 얻습니다.,:g를 사용하여 Vim에서 일치하는 항목 수를 계산하는 방법이 있나요?. 내 기본 전략은 다음을 사용하는 것입니다.
%s/PATTERN//gn
캐릭터와
%s/\<PATTERN\>//gn
말을 위해. 이것은 Vim 도움말에 언급되어 있습니다.페이지. 그러나 두 솔루션 모두 같은 줄에서 여러 번 발생하는 것을 무시하는 것 같습니다. 예는 다음과 같습니다.
UTg UTg D1U1K1 UTg D1U1K2 UTg D1U1TW01 UTg D1U1TW02 UTg D1U1TW03 UTg D1U1TW04 UTg D1U1TW05 UTg D1U1TW06 UTg D1U1TW07 UTg D1U1TW08 UTg D1U1TW09 UTg D1U1TW10 UTg
UTg UTg D1U2K1 UTg D1U2K2 UTg D1U2TW01 UTg D1U2TW02 UTg D1U2TW03 UTg D1U2TW04 UTg D1U2TW05 UTg D1U2TW06 UTg D1U2TW07 UTg D1U2TW08 UTg D1U2TW09 UTg D1U2TW10 UTg
UTg UTg D1U3K1 UTg D1U3K2 UTg D1U3TW01 UTg D1U3TW02 UTg D1U3TW03 UTg D1U3TW04 UTg D1U3TW05 UTg D1U3TW06 UTg D1U3TW07 UTg D1U3TW08 UTg D1U3TW09 UTg D1U3TW10 UTg
UTg UTg D1U4K1 UTg D1U4K2 UTg D1U4TW01 UTg D1U4TW02 UTg D1U4TW03 UTg D1U4TW04 UTg D1U4TW05 UTg D1U4TW06 UTg D1U4TW07 UTg D1U4TW08 UTg D1U4TW09 UTg D1U4TW10 UTg
사용하면 . 대신 %s/UTg//gn
출력됩니다 . 그러면 Vim에서 같은 줄에 있는 모든 항목(여러 항목 포함)을 계산하는 방법은 무엇입니까?4
56
답변1
/g
대체 플래그는 기본적으로 설정하여 활성화할 수 있습니다.:s
set gdefault
존재하다 .vimrc
. 이 설정을 사용하는 경우
:%s/PATTERN/gn
Vim은 문자나 단어의 발생 횟수를 한 줄에 한 번만 계산하고 다른 모든 경우는 무시합니다. 사용하거나
:%s/PATTERN/n
이 경우 또는 set gdefault
에서 제거되었습니다 .vimrc
.