Апрель 2010

vim: внешние фильтры

29.04.2010

Помимо сортировки, внешние команды можно использовать для любых манипуляций над всем документом или его фрагментом.

Выполнение внешней команды на диапазоне:

  1. :{диапазон} ! {команда}

При этом на STDIN команды подается содержимое диапазона, а затем диапазон заменяется выводом STDOUT команды.

Несколько примеров.

Форматирование всего исходного текста на perl с помощью perltidy:

  1. :% ! perltidy -es=4 -t -st

Отфильтровать с помощью команды grep все строки, содержащие символ "#" из строк 14-24:

  1. :14,24 ! grep -v "\#"

vim: сортировка

20.04.2010

Сортировать в vim очень просто:

  1. :{диапазон}sort

Диапазон подставится автоматически, если в визуальном режиме (V) выделить блок, а затем перейти в командный режим (:):

  1. :'<,'>

Или для сортировки всего файла:

  1. :%sort

Сортировка в обратном порядке:

  1. :%sort!

Сортировка в прямом порядке, удаляя все дубликаты:

  1. :%sort -u

Также для сортировки можно использовать внешние утилиты, например стандартный юниксовый sort:

  1. :%!sort --numeric-sort --reverse

Ну и как обычно, читаем маны:

  1. :help :sort