Як я можу підрахувати кількість слів у файлі під час редагування файлу in vim


21

Я знаю, що можу використовувати wcдля підрахунку символів, слів та рядків файлів у командному рядку .

Чи є спосіб я підрахувати кількість слів під час vim ?

Відповіді:


22

Ви можете порахувати слова та рядки всередині, viвикористовуючи viвласний лічильник:

Натисніть, gа потім CTRL- g. Тоді нижній рядок виглядає наприклад так:

Col 1 of 11; Line 1 of 106; Word 1 of 344; Byte 1 of 2644

Або скористайтеся viметодом 'для виклику команд оболонки:

:w !wc -w

Це викликає :wспочатку команду save ( ), а потім wc -wі показує вихід. Приклад:

:w !wc -w
344

Press ENTER or type command to continue

Натисніть, Enterщоб повернутися до vi.


Це фактично неправильний опис :w !<cmd>конструкції. Він записує поточний буфер в трубу, підключену до команди. Не обіцяно окремого запису поточного буфера у файл. Тим не менш, він робить те, про що запитали.
mcepl

1

Ви також можете спробувати :!wc %в Vim, хоча він рахує розмір файлу на диску, а не те, що знаходиться в буфері Vim. Це може бути або не бути тим, що ви хотіли.


Це враховує те, що знаходиться на диску (якщо щось таке), а не те, що є в буфері - тож якщо ви змінили вміст буфера з моменту останнього збереження або взагалі не зберегли, ви отримаєте неправильний підрахунок (або навіть помилку, якщо ви створюєте файл).
Стівен Кітт

Contra Стівен, це є правильним рішенням «Як я можу підрахувати кількість слів у файл при редагуванні файлу в Vim», в той час як загальноприйнятий відповідь строго кажучи , не є (хоча це неоднозначне , що означає або чи має воно ).
Майкл Гомер

Смішно, що це схоже (мінус -wпрапор обмежувати вихід лише словами) на видалений відповідь з 2014 року від D_Bye (який, мабуть, самостійно його видалив).
Джефф Шаллер

0

Плагіни, такі як vim-airline, можуть надавати підрахунок слів для файлу (та вибору) як частини рядка стану.


Ця відповідь не лише посилання. Я не включав специфіку будь-якого конкретного плагіна, оскільки (як ви кажете) конкретні плагіни можуть застаріти.
Патрік Санан

Я стою виправлений. Однак я б сказав, що надалі вам слід спробувати включити відповідні кроки для впровадження рішення, яке ви представляєте. Дякую!
kemotep

0

Для тих, хто хоче порахувати кількість слів у заданому фрагменті тексту (не всьому файлі), використовуйте \S\+regexp.

  1. Виберіть цікавий текст (візуальний режим)
  2. :s/\S\+//gn

Результат. Vim покаже вам щось подібне:10 matches on 1 line

Коли ви натискаєте :у візуальному режимі, vim попереджує вашу команду, '<,'>що означає застосувати команду до вибраного тексту.

\S\+ фіксує слова, тобто групи символів, розділені пробілом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.