Vim: 문자 또는 단어의 모든 발생 횟수 계산(같은 줄에 여러 번 발생하는 경우 포함)

Vim: 문자 또는 단어의 모든 발생 횟수 계산(같은 줄에 여러 번 발생하는 경우 포함)

저는 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에서 같은 줄에 있는 모든 항목(여러 항목 포함)을 계산하는 방법은 무엇입니까?456

답변1

/g대체 플래그는 기본적으로 설정하여 활성화할 수 있습니다.:s

set gdefault

존재하다 .vimrc. 이 설정을 사용하는 경우

:%s/PATTERN/gn

Vim은 문자나 단어의 발생 횟수를 한 줄에 한 번만 계산하고 다른 모든 경우는 무시합니다. 사용하거나

:%s/PATTERN/n

이 경우 또는 set gdefault에서 제거되었습니다 .vimrc.

관련 정보