Как посчитать количество строк в файле vim
Самое главное — побороть боязнь белого листа. Я всегда говорю это себе, когда нужно начать работу над чем-то и не знаешь, как подступиться. Так что я решил не ломать голову над тем, о чем будет первая запись в этом блоге, а просто выложить небольшую шпаргалку по текстовому редактору Vim.
Шпаргалка эта уже не первый месяц хранится у меня в
/txt/vim.txt. За это время я успел составить довольно объемный справочник по основным командам Vim. При желании вы можете начать свое обучение работе с Vim с этого поста.
/.vimrc
Можно редактировать файлы через сеть, например
:e <scp|ftp|ftps>://user@host/path/to/the/file.txt
:Ex или :e ./ - файловый менеджер
== Подсветка синтаксиса ==
:syntax on включить подсветку
:syntax off выключить подсветку (по умолчанию)
== Перенос строк ==
:set wrap разрешить word wrap (по умолчанию)
:set nowrap запретить word wrap
== Печать ==
:ha[rdcopy] распечатать документ
:set printoptions=duplex:off отключить двустороннюю печать
== Сворачивание ==
zc свернуть блок
zo развернуть блок
zM закрыть все блоки
zR открыть все блоки
za инвертирование
zf см :set foldmethod=manual
:set foldenable включить свoрачивание
:set foldmethod=syntax сворачивание на основе синтаксиса
:set foldmethod=indent сворачивание на основе отступов
:set foldmethod=manual выделяем участок с помощью v и говорим zf
:set foldmethod=marker сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока
== Маркеры ==
ma установить локальный маркер a
mB установить глобальный маркер B
`c перейти к локальному маркеру c
`0 вернуться на позицию, на которой закончили
работу при закрытии vim
:marks просмотр маркеров
set viminfo='1000,f1 маркеры пишутся в
/.viminfo, восстанавливаясь
при следующем запуске vim. маркер " хранит
последнюю позицию курсора в файле
== Сессии ==
mksession file.session сохранить текущую сессию
source file.session восстановить ранее сохраненную сессию
== Макросы ==
qa записать макрос с именем a
q в режиме записи макроса: закончить запись
@a выполнить макрос с именем a
@@ повторить последний макрос
== Регистры ==
"ayy скопировать строку в регистр a
"bdd вырезать строку и поместить в регистр b
"С2d вырезать три строки и дописать в конец
регистра C
:reg [name1][name2][. ] просмотреть содержимое регистров
== Выделение ==
v + hjkl выделение текста
SHIFT + v выделить строку
CTR + v выделение прямоугольника
p вставить
y копировать
d удалить
gu к нижнему регистру
gU к верхнему регистру
== Поиск по всему проекту ==
:vimgrep /EXPR/ **/*.c поиск по регулярному выражению
:copen показать все найденные места
:close скрыть все найденные места
:cn переход к следующему результату
:cp переход к предыдущему результату
== Нумерация строк ==
:set number включить нумерацию строк
:set nonumber отключить нумерацию строк
== Работа с окнами ==
:split горизонтальное разбиение
:vsplit вертикальное разбиение
Ctr+W, затем
с закрыть окно
+- изменение высоты текущего окна
<> изменение ширины текущего окна
= установить равный размер окон
hjkl или стрелочки перемещение между окнами
== Проверка орфографии ==
mkdir -p
:set spell spelllang=ru,en включить проверку орфографии
:set nospell выключить проверку орфографии
]s следующее слово с ошибкой
[s предыдущее слово с ошибкой
z= замена слова на альтернативу из списка
zg good word
zw wrong word
zG ignore word
== Другое ==
:set [no]wildmenu При авто-дополнении в командной строке над
ней выводятся возможные варианты
:set list Отображать табуляцию и переводы строк
q: История команд
. Повторение последней команды
Более подробный материал об использовании текстового редактора Vim вы найдете в книге Изучаем редакторы vi и Vim, 7-е издание. Книга доступна как в бумажном, так и в электронном формате.
На этом пока все. Думаю, я буду время от времени редактировать эту шпаргалку, так что следите за PS в конце следующих постов.
Интересно, есть ли способ подсчета выделенных символов в vim (включая пробелы)?
ОБНОВИТЬ
Он показывает количество строк, если мой выбор на нескольких строках. Мне нужно количество символов.
Если я не пропустил что-то, Вим уже делает это. Если я выделю какой-нибудь текст с помощью мыши или, введя v и переместив курсор, я увижу внизу экрана
где число справа - это количество выделенных символов. Это работает только в том случае, если выделение находится в одной строке, в противном случае отображается количество строк.
Вы также можете визуально выбрать некоторую область текста и набрать g Ctrl-G, которая покажет количество выбранных строк, слов и байтов.
Vim переключается между отображением количества символов и количества строк для визуализируемого текста в зависимости от того, что и как вы визуализируете (vim 7.4 исправлен до сентября 2015 года)
Если вы визуализируете более одной строки, отображается только количество строк.
По вашему скриншоту я вижу, что вы работаете в Windows, поэтому этот ответ может вам не сильно помочь. Но для других .
Недостаточно используемая (IMO) особенность Vim - позволить внешним командам выполнять тяжелую работу.
В этом случае, если вы находитесь в UNIX-подобной системе, вы можете использовать команду wc для этого.
Самый простой способ - заменить выделенный текст выводом команды, набрав (с выделенным текстом):
(затем нажмите ввод).
Это будет показано в вашей командной строке как:
После того, как вы прочитали информацию, вы можете отменить с u чтобы вернуться к тому, с чего вы начали.
Примечание. Эта обработка выполняется только для целых строк . Если вам нужны частичные строки, я думаю, что @ garyjohn's g_CTRL-G - ваш лучший выбор .
Вы можете избежать необходимости отмены, вместо этого запустив:
Это "записывает" выбранные строки в стандартный ввод команды, и вывод команды будет отображаться в новом временном буфере, оставляя исходный нетронутым. Смотрите :help :write_c для получения дополнительной информации.
Этот пример с wc довольно прост, но вы можете представить, насколько это мощный подход. В UNIX уже доступно много команд для обработки текста, и вы можете использовать их в Vim довольно легко, не трогая Vimscript (yech).
Кроме того, любая написанная вами программа командной строки, которая работает со stdin/stdout, теперь может принести пользу не только вашему терминалу, но и внутри Vim.
Например, я запускаю tidy и json-format изнутри vim, чтобы сделать файлы, на которые я смотрю, более читабельными.
Вы можете сделать то же самое в Windows, но в Windows нет такого богатого набора встроенных команд. Вы всегда можете установить GNUWin32 или аналогичную версию, чтобы получить эти преимущества.
В Linux и Unix-подобных операционных системах команда wc позволяет подсчитать количество строк, слов, символов и байтов в каждом заданном файле или стандартном вводе и распечатать результат.
В этом руководстве мы покажем вам, как использовать команду wc на простых и практических примерах.
Как использовать команду wc
Синтаксис команды wc следующий:
В простейшей форме при использовании без каких-либо опций команда wc выводит четыре столбца, количество строк, слов, количество байтов и имя файла для каждого файла, переданного в качестве аргумента. При использовании стандартного ввода четвертый столбец (имя файла) не отображается.
Например, следующая команда отобразит информацию о виртуальном файле /proc/cpuinfo :
Результат будет выглядеть примерно так:
При использовании стандартного ввода имя файла не отображается:
Чтобы отобразить информацию о более чем одном файле, передайте имена файлов в качестве аргументов, разделенных пробелом:
Команда предоставит вам информацию о каждом файле и строку, включая общую статистику:
Приведенные ниже параметры позволяют выбрать, какие счетчики будут печататься.
При использовании нескольких параметров счетчики печатаются в следующем порядке: новая строка, слова, символы, байты, максимальная длина строки.
Например, чтобы отобразить только количество слов, которые вы бы использовали:
Вот еще один пример, который напечатает количество строк и длину самой длинной строки.
Параметр --files0-from=F позволяет wc читать ввод из файлов, указанных в файле F именами, завершающимися NUL. Если F - то читать имена со стандартного ввода. Например, вы можете искать файлы с помощью команды find и предоставлять эти файлы в качестве входных данных для wc :
В выводе будет показано количество строк для всех файлов в каталоге /etc , имена которых начинаются с «host»:
Подсчитайте количество строк
Команда wc в основном используется с параметром -l для подсчета только количества строк в текстовом файле. Например, чтобы подсчитать количество строк в /etc/passwd вы должны ввести:
Подсчитайте количество слов
Чтобы подсчитать только количество слов в текстовом файле, используйте wc -w за которым следует имя файла. В следующем примере подсчитывается количество слов в файле
Количество слов показано в первом столбце:
Примеры команд Wc
wc можно использовать в сочетании с другими командами через конвейер. Вот несколько примеров.
Подсчет файлов в текущем каталоге
Команда find передает список всех файлов в текущем каталоге с каждым именем файла в одной строке команде wc , которая подсчитывает количество строк и выводит результат:
Подсчитайте количество пользователей
В приведенном ниже примере wc используется для подсчета количества строк в выводе команды getent .
Выводы
Команда wc означает «подсчет слов» и имеет довольно простой синтаксис. Он позволяет подсчитывать количество строк, слов, байтов и символов в одном или нескольких текстовых файлах.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
/.viminfo, и будет восстановлено при следующем запуске vim.
Совет: В нулевом регистре всегда хранится содержимое последней команды копирования.Метки
- :marks - список меток
- ma - установить метку A на текущей позиции
- `a - переместиться к метке A
- y`a - скопировать до метки A
Макросы
- qa - записать макрос A
- q - остановить запись макроса
- @a - run macro a
- @@ - выполнить последний макрос
Вырезать и вставить
- yy - скопировать строку
- 2yy - скопировать 2 строки
- yw - скопировать слово
- y$ - скопировать до конца строки
- p - вставить буфер обмена после курсора
- P - вставить буфер обмена перед курсором
- dd - удалить (вырезать) строку
- 2dd - удалить (вырезать) 2 строки
- dw - удалить (вырезать) слово
- D - удалить (вырезать) до конца строки
- d$ - удалить (вырезать) до конца строки
- x - удалить (вырезать) символ
Выход и сохранение
- :w - сохранить файл, но не выходить
- :w !sudo tee % - сохранить файл с sudo
- :wq либо :x либо ZZ - сохранить файл и выйти
- :q - выйти (терпит неудачу в случае несохраненных изменений)
- :q! либо ZQ - выйти и потерять несохраненные изменения
Поиск и замена
- /pattern - поиск шаблона
- ?pattern - обратный поиск шаблона
- \vpattern - 'very magic' режим: все не алфавитно-цифровые символы интерпретируются как специальные (экранирование не требуется)
- n - повторить поиск в том же направлении
- N - повторить поиск в обратном направлении
- :%s/old/new/g - заменить все вхождения шаблона в файл на указанное значение
- :%s/old/new/gc - заменить все вхождения шаблона в файл на указанное значение с подтверждением
- :noh - отключить подсвечивание результатов поиска
Поиск в нескольких файлах
- :vimgrep /pattern/ - поиск по шаблону в нескольких файлах
- :cn - переместиться к следующему совпадению
- :cp - переместиться к предыдущему совпадению
- :copen - открыть окно со списком результатов
Сворачивание
Команды для управления:
После закрытия Vim все свертки забываются, для сохранения сверток в открытом файле используется команда :mkview , для загрузки - :loadview (подробнее).
Читайте также:
- Стенд для измерения и регулировки углов установки колес компьютерный bosch fwa 4310
- Ethernet в диспетчере задач что это
- Не удается продолжить выполнение кода поскольку система не обнаружила binkw64 dll skyrim
- Настроить пульт ростелеком для телевизора samsung через андроид
- Как вставить карту памяти в видеорегистратор