Я люблю писать учебники и статьи для форума программирования, который я часто посещаю. Этот форум имеет ограничение по количеству символов на пост. В прошлом я использовал Notepad ++ для написания постов, и он отображает количество символов в строке состояния. Я начинаю больше использовать gVim, и я действительно не хочу сейчас возвращаться к Notepad ++, но очень полезно иметь этот счетчик символов. Если я перехожу через счетчик, я обычно заканчиваю тем, что вставляю сообщение в Notepad ++, чтобы я мог видеть, когда я обрезал достаточно, чтобы достичь предела.
Я видел предложения, которые :set ruler
могли бы помочь, но это дает только количество символов по текущему индексу столбца в текущей строке. Это было бы здорово, если бы я не использовал разрывы абзацев, но я уверен, что вы согласитесь, что читать несколько тысяч символов в одном абзаце неудобно.
Я прочитал справку и подумал, что rulerformat
это сработает, но после просмотра statusline
формата, который он использует, я не увидел ничего, что давало бы счетчик символов для текущего буфера.
Я видел, что есть плагины, которые добавляют это, но я все еще погружаю свои пальцы в gVim, и я не уверен, что хочу загрузить случайные плагины, прежде чем я пойму, что они делают. Я бы предпочел использовать что-то встроенное в vim, но если оно не существует, оно не существует.
Что я должен сделать, чтобы достичь своей цели? Если в нем используется плагин, используете ли вы его и насколько хорошо он работает?
g CTRL-G
Я не знал, что это существовало. Приятно!! [...] %
?говорит о том, что вы могли бы либо сделать пробную замену аля
(который затем сообщает количество совпавших символов) или что вы делаете фантазию
strlen()
над визуально выбранным текстом:("это безымянный регистр)
так как вы можете вызвать выражение в вашей строке состояния,
%{myfunc()}
это может быть хорошей отправной точкой. подсчет времени может занять немного времени, так как вам придется выделить весь текст, а затем восстановить его, но, возможно, показывать количество байтов в «-регистре» уже хорошо, если вы действительно хотите знать число символов в буфере: просто визуально выделите ВСЕ текст в буфере и восстановите его, поэтому решение будет таким:который дает вам количество символов в «-регистре» (которое идентично количеству байтов, если вы выберете и восстановите текущий буфер).
источник
g<CTRL-g>
в принятом ответе.Улучшение ответа Mrucci:
Вы можете использовать
wc
Linux без необходимости сохранять файл, направив:w
вывод команды следующим образом:и вы можете сопоставить это с чем-то, как упомянуто Mrucci.
источник
дает тебе
что также является хорошим решением для вашей проблемы. просто перейдите в конец буфера с помощью, Gи номер байта, показанный в вашей строке состояния, будет числом символов (конечно, это не верно для многобайтовых символов). вернуться туда, откуда вы пришли с ctrlo.
источник
set statusline+=\ %o\ %N
(интересно, она не работает, например, для элемента "t S") . Тогда, если вы видите статусную строку без изменений, это потому, что вы должны выполнитьset laststatus=2
. Для меня это заменило существующую прозрачную строку состояния новой, имеющей сплошной черный цвет и имеющей только элемент «счетчик байтов».Если у вас есть привычка использовать: w для сохранения файла, каждый раз, когда вы делаете это, статус сообщает количество записанных символов. Например, в конце этого предложения я сделал: w (да, я использую gvim, чтобы написать эту заметку), и он сообщил: 245C записано.
источник
Вы можете добавить выражение для отображения байтового счета буфера в строке состояния с помощью:
Или вы можете изменить переменную option напрямую, чтобы избежать всего этого:
источник
...%{ line2byte(line(\"$\")+1))-1 }
чтобы он включал символы последней строки в число. Этот подход не будет правильно рассчитывать многобайтовые символы.Обходной путь, который я использовал, пока не принял ответ Мруччи:
Я случайно обнаружил, что когда я: w, чтобы сохранить файл, команда выводит количество записанных байтов. Это более или менее количество символов, так что это было достаточно близко до сих пор. Мне также нравится ответ Мруччи, возможно, больше, чем этот, потому что у него тоже есть счетчик слов.
источник
Если вы сохраняете в файле копию своего текста, просто запишите свой текст на диск - по умолчанию отображается количество символов.
Если вы не хотите , чтобы сохранить файл, просто сохраните текст
/dev/null
::w!/dev/null
.Вы также можете позволить
wc
считать своих персонажей::%!wc -c
- но не забудьте нажать, Uчтобы восстановить свой текст.Если вам это нужно часто, просто сопоставьте эти команды с последовательностью клавиш:
:map #wc :w!/dev/null^[
- обратите внимание, что^[
необходимо ввести как Ctrl+ V Esc.В качестве первого индикатора размера текста просто включите номера строк; признал: для этого нужна умственная арифметика ;-)
источник
Получив этот вопрос и прочитав ответы (спасибо mrucci), я добавил эти строки в свой файл инициализации .vimrc.
Я оставляю это на vim: помогите пользователям понять, что они делают.
Лично я считаю полезным начинать отображения Vim с; или, поскольку я редко использую их в качестве первого символа команды.
источник