Интересно, есть ли способ подсчитать подсвеченные символы в vim
(включая пробелы)?
ОБНОВИТЬ
Он показывает количество строк, если мой выбор на нескольких строках. Мне нужно количество символов.
Если я что-то упустил, Вим уже делает это. Если я выделю какой-нибудь текст с помощью мыши или набрав v
и переместив курсор, я увижу внизу экрана
- VISUAL - 12
где число справа - это количество выделенных символов. Это работает только в том случае, если выделение находится в одной строке, в противном случае отображается количество строк.
Вы также можете визуально выбрать некоторую область текста и тип, g Ctrl-Gкоторый покажет количество выбранных строк, слов и байтов.
set showcmd
в свой,vimrc
чтобы включить его.Vim переключается между отображением количества символов и количества строк для визуализируемого текста в зависимости от того, что и как вы визуализируете (vim 7.4 исправлен до сентября 2015 года)
Если вы визуализируете более одной строки, отображается только количество строк.
источник
v
переключается с количества символов на число строк, если выделение охватывает несколько строк. Однакоg CTRL-G
делает работу хорошо.Сначала вы дергаете текущий выбор (в буфер x)
Затем вы отображаете длину этого буфера:
strlen(@x)
( - VISUAL - отображаемое в строке состояния скрывает это, поэтому мы должны добавить новую строку)
Выделите предыдущий визуальный диапазон:
gv
Это не учитывает, был ли визуальный режим линейным, символьным или блочным, но этого достаточно для большинства случаев.
источник
По вашему скриншоту я вижу, что вы работаете в Windows, поэтому этот ответ может вам не сильно помочь. Но для других ...
Недостаточно используемая (IMO) особенность Vim - позволить внешним командам выполнять тяжелую работу.
В этом случае, если вы находитесь в UNIX-подобной системе, вы можете использовать
wc
команду для этого.Самый простой способ - заменить выделенный текст выводом команды, набрав (с выделенным текстом):
(затем нажмите ввод).
Это будет показано в вашей командной строке как:
После прочтения информации вы можете отменить,
u
чтобы вернуться к тому, с чего начали.Примечание. Эта обработка выполняется только для целых строк . Если вам нужны частичные строки, я думаю, @ garyjohn's
g_CTRL-G
- ваш лучший выбор .Вы можете избежать необходимости отмены, вместо этого запустив:
Это «записывает» выбранные строки в стандартный ввод команды, и вывод команды будет отображаться в новом временном буфере, оставляя исходный нетронутым. Смотрите
:help :write_c
для получения дополнительной информации.Примечание: я получил
:write_c
информацию от: /programming/1237780/vim-execute-shell-command-without-filteringТеперь в целом:
Этот пример
wc
довольно прост, но вы можете представить, насколько это мощный подход. В UNIX уже есть много команд для обработки текста, и вы можете использовать их в Vim довольно легко, не трогая Vimscript (yech).Кроме того, любая написанная вами программа командной строки, которая работает со stdin / stdout, теперь может быть полезна не только для вашего терминала, но и для Vim.
Например, я запускаю
tidy
иjson-format
изнутри vim делаю файлы, на которые смотрю, более читабельными.Вы можете сделать то же самое в Windows, но в Windows нет такого богатого набора встроенных команд. Вы всегда можете установить GNUWin32 или аналогичный, чтобы получить эти преимущества.
источник
Для программного способа в vimscript это работало для меня, когда выбор ограничен одной строкой:
(Использование
virtcol(..)
вместо такcol(..)
, чтобы оно работало, как ожидалось, когда:set ve=all
активно.)источник