Vim - как увеличить каждое число в визуальном блоке?

Если Вы намереваетесь продолжить отслеживать - СТАБИЛЬНЫЙ, можно просто обновить Ваш stable-supfile от

*default release=cvs tag=RELENG_8

кому:

*default release=cvs tag=RELENG_9

и затем выполните свой csup/build/installworld как нормальный. При настройке ядра необходимо будет рассмотреть новую конфигурацию ядра и объединить изменения с нею.

Технически, С 8 ВЫПУСКАМИ и С 9 ВЫПУСКАМИ каждый отклонился ГОЛОВЫ в различных моментах времени, так не то, что 8-СТАБИЛЬНЫЕ смешения прямо в С 9 ВЫПУСКАМИ. Изменения от ГЛАВЫ или более новых ответвлений часто бэкпортируются к более старым, если они принесли бы пользу тому более старому ответвлению, но это обрабатывается в зависимости от конкретного случая.

Некоторое дальнейшее руководство, если Вам нужен он:

Сборка/установка сопровождалась бы путем выполнения mergemaster обновить и объединить конфигурационные файлы. Необходимо будет также восстановить все установленные порты, чтобы быть совместимыми с 9 ABI (или иначе устанавливать misc/compat8x порт).

Обязательно считайте обоих /usr/src/UPDATING и информация о версии для FreeBSD 9, чтобы удостовериться, что Вы понимаете последствия перемещения от 8 до 9, как может быть существенными изменениями.

nixCraft имеет хорошее практическое руководство здесь. Это для перемещения от 7 до 8 и предполагает, что Вы используете portmaster, но процедура обычно является тем же. Это отмечает использование cd /usr/src && make delete-old удалить старые библиотеки впоследствии; я забыл об этом.

Примечание стороны: Если Вы не должны настраивать свою конфигурацию ядра очень, я очень предпочитаю устанавливать - ВЫПУСК и использовать freebsd-update для двоичного исправления. Это намного более удобно в сопровождении со временем. В Вашем случае, так как Вы отслеживаете - СТАБИЛЬНЫЙ, это означало бы переустанавливание/обновление от медиа установки, потому что freebsd-update только обновление поддержек между версиями выпускать/беты/RC FreeBSD - но по-моему, если Вам не нужно пользовательское ядро, это стоит того.

Править: Обратите внимание, что, после того как Вы отслеживаете - ВЫПУСК, можно использовать freebsd-update обновить от выпуска до выпуска, или от - RC и - БЕТА-ВЕРСИЙ - другая причина, почему я предпочитаю его.

5
11.04.2013, 12:25
2 ответа

Визуально выделите текст в скобках:

Ctr+V2jl

Увеличьте каждое число пять:

:norm 5Объяснение Ctr+V Ctr+A:

:norm выполняет целую команду в нормальном режиме. Ctr+V необходим, иначе курсор перешел бы назад к началу строки. Ctr+A увеличивает число 1, и это сделано 5 раз. Визуальный диапазон вставляется автоматически после нажатия двоеточия.

Править: Как Stephane правильно указал, предыдущий код увеличивает первое число, найденное на любой строке. Вот лучшее решение:

%s/\[\zs\d\+\ze\]/\=(submatch(0)+5)

Это добавляет пять ко всем целым числам в скобках. \zs и \ze используются для исключения скобок из соответствия и submatch возвращает подобранное число.

11
27.01.2020, 20:32
  • 1
    Это заменяет строки - VC-A - VC-A - VC-A –  J-unior 11.04.2013, 13:23
  • 2
    C-VC-A нажатие средств ctrl v, выпуск, затем нажмите ctrl a, выпуск. –  Marco 11.04.2013, 13:26
  • 3
    Это не применяется ^A на визуальном выборе, но в начале каждой строки, отмеченной выбором (так, например, если бы были строки с числами перед выбранным, которое увеличило бы их а не выбранного), –  Stéphane Chazelas 11.04.2013, 16:00
  • 4
    Вы совершенно правы. Это могло бы работать на вариант использования операции в секунду, все же. Но я соглашаюсь, мой ответ является неправильным. –  Marco 11.04.2013, 16:12
  • 5
    Этот плагин мог бы иметь некоторую справку для решения проблемы, и я полагаю, что, если плагин необходим, чтобы сделать такие операции, это не простой вопрос нахождения правильного ярлыка. большое спасибо –  Vincent Nivoliers 11.04.2013, 17:56

Эти две команды идентичны и будут увеличивать все числав пределахвизуального выделения (даже в прямоугольнике! ).

:'<,'>s/\%V\d\+\%V/\=submatch(0)+1/g

:s/\%V\d\+\%V/\=submatch(0)+1/g

измельченный::s/\%V\d\+\%V/\=submatch(0)+1/g

\%V— это сопоставитель нулевой -ширины, который соответствует любому месту внутри текущего (или последнего )выбора.

Из справки vim:

\%V     Match inside the Visual area.  When Visual mode has already been
        stopped match in the area that gv would reselect.
        This is a /zero-width match.  To make sure the whole pattern is
        inside the Visual area put it at the start and just before the end of
        the pattern, e.g.:
                /\%Vfoo.*ba\%Vr
        This also works if only "foo bar" was Visually selected. This:
                /\%Vfoo.*bar\%V
        would match "foo bar" if the Visual selection continues after the "r".
        Only works for the current buffer.

К сожалению, это не так умно, как ctrl-a, так как оно не понимает отрицательные числа.

2
12.05.2020, 07:23

Теги

Похожие вопросы