
저는 현재 Windows XP에서 gVim을 사용하고 있으며 핵심 질문에 대한 후속 조치가 2개 있습니다.
가장 많은 문자가 있는 줄을 찾는 가장 좋은 방법은 무엇입니까?
내 현재 방법:나는 정규식 검색을 사용 하고 단 하나의 일치 항목을 얻을 때까지 :/^\(\p\)\{#number#,}$
정수를 계속 늘립니다 . #number#
내 파일의 경우, 이전에 생각했던 916,657자가 아닌 81K자만 포함된 줄입니다. 커서가 해당 줄에 있을 때 키를 누르면 g + Ctrl+g
81K의 열 수가 표시되기 때문에 이 사실을 알고 있습니다 .
후속 조치 1)질문은 "What is the best method of finding the line with the most columns?"
위의 #2와 동일합니까?
후속 조치 2)파일을 열 때 화면 하단에 다음 줄이 표시될 때 두 번째 숫자는 무엇을 의미합니까?
나는 이것을 파일에 14,871개의 줄이 있고 적어도 하나의 행에 916,657개의 열이 있다는 것을 의미한다고 해석합니다. 파일에 14,871줄이 있는지 확인했는데 두 번째 줄(916K)의 목적을 이해하지 못했습니다.
답변1
두 번째 숫자는 전체 파일의 총 문자 수입니다. 그렇게 하는 경우:
$ wc -l -c filename
동일한 두 숫자(줄 및 총 문자 수)가 표시되어야 합니다. 실제로 다음을 수행할 수 있습니다.
:!wc -l -c %
다음은 플러그인입니다.텍스트 필터(다운로드)에는 가장 긴 줄을 찾는 기능이 포함되어 있습니다.
또는 이것을 사용하여 가장 긴 선의 길이를 찾을 수 있습니다.
:echo max(map(range(1, line('$')), "col([v:val, '$'])")) - 1
그런 다음 해당 번호를 다음과 같이 사용할 수 있습니다.
/^.\{248\}$
답변2
더 나은 방법이 있어야 하지만 다음도 가능합니다.
%s/./a/g "Replace everything with 'a's
sort! "Sort by column length
ggy$ "Go to first line (longest) and copy it
u "Undo the sorting
/<c-r>" "Search for the longest line
mm "Mark it 'm'
u "Undo the replace
'm "Go to the mark - there!
답변3
Cam은 첫 번째 질문에 대해서는 언급하지 않았지만 파일 로드 메시지의 두 번째 숫자는 파일의 총 문자 수입니다.
답변4
vim 중심이 아니며 다른 답변과 유사하지만 일부 사람들에게는 더 직관적일 수 있습니다. 이는 vim 내에서 일부 외부 프로그램을 호출해도 괜찮다고 가정합니다.
파일에 다음이 있습니다 test_file
.
hello world
helloooooooooooooo world !!!
yo, world!
helloooOoooOooooOo World ! !
명령 wc
에는 때때로 -L
가장 긴 줄의 크기를 인쇄하는 옵션이 있습니다. 28 test_file
내 예의 출력입니다.
를 사용하여 이 28개의 문자 라인(및 해당 라인 번호)을 인쇄할 수 있습니다 grep -nP ".{28}" test_file
.
2:helloooooooooooooo world !!!
4:helloooOoooOooooOo World ! !
wc
를 사용하여 출력을 구문 분석할 수 있습니다 cut
. 모든 것을 하나로 모아 하나의 명령을 다른 명령에 적용하면 다음과 같습니다.
grep -nP ".{$(wc -L test_file | cut -f 1 -d ' ')}" test_file