Как Вы используете маркеры в vi?

Необходимо определить то, под чем Вы подразумеваете "лучше всего" - некоторым, скорость - все, что имеет значение и квалифицировало бы ответ как "лучше всего" - для других, они могли бы простить несколько сотен миллисекунд, если бы решение было более читаемым.

"Лучший" субъективно, если Вы не более конкретны.

<час>

, Который сказал:

Выполняют итерации через числа, поскольку каждое число ищет список то число и когда Вы достигаете числа, которое возвращает только 1 для количества результатов поиска, Вы сделаны.

5
задан Rob Wells 1 October 2009 в 17:57
поделиться

4 ответа

И вот почему каждый раз, когда вы пишете функцию с побочным эффектом, Бог убивает котенка!

  • перейти в конец блока, который вы хотите восстановить
  • введите : 'a, .ya a скопирует блок в буфер a или :' a, .ya A добавит блок к текущему содержимому буфера a
  • Правка: Подстановка в блок текста:

    • отметьте первую строку, как указано выше,
    • перейдите в конец блока, который вы хотите заменить в
    • введите : 'a, .s / search_string / replace_string / [gc] , который будет заменен в вашем текстовом блоке. Добавление 'g' или 'c' после последней косой черты вызовет обычные глобальные и подтверждающие функции.

    Изменить: Забыл сказать, помните, что 'a (апостроф a) относится к строка, содержащая маркер и ʻa (обратный апостроф a) относится к символу в строке, которую вы отметили.

    Итак ʻad`b (bactic-ad-backtic-b) - это небольшой полезный фрагмент для удаления текста в строке от символа, отмеченного 'a', до символа перед символ, помеченный буквой B.

    Кстати, в Vim ввод : reg даст вам содержимое всех ваших регистров, включая ваши регистры удаления.

    11
    ответ дан 18 December 2019 в 09:51
    поделиться

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

    Если я объявляю класс или работаю с объявлением, с которым я не знаком, часто бывает полезно отметить место, где все объясняется впервые, чтобы я мог вернуться к быстрой справке.

    Маркеры полезны в целом , но я не думаю, что они более (или менее) полезны только потому, что вы разрабатываете на C ++.

    Это лишь некоторые идеи - я уверен, что там будет много других хороших.

    3
    ответ дан 18 December 2019 в 09:51
    поделиться

    Чаще всего используется для копирования-вставки или удаления больших блоков. Перейдите к первой строке блока, введите mx Перейдите к последней строке блока, введите y'x , чтобы скопировать весь блок (в буфер обмена), или d'x , чтобы удалить (вырезать) его. В любом случае, p или P можно использовать для вставки в другое место.

    2
    ответ дан 18 December 2019 в 09:51
    поделиться

    Маркеры служат хорошим способом вернуться к началу строки или точному месту в строке.

    Обычно я использую их, когда хочу извлечь или скопировать часть кода. Рассмотрим следующее:

    int tmp = 0;
    while (tmp < 10)
    {
        doIt(tmp); /* cursor before d */
        /* ... */
        finishIt(tmp);
        tmp++
    }
    

    Если я хочу извлечь из doIt (tmp) до finishIt (tmp) , я бы установил маркер на курсоре ( ma например), перейдите к finishIt, а затем удалите, чтобы отметить a с помощью d'a .

    1
    ответ дан 18 December 2019 в 09:51
    поделиться
    Другие вопросы по тегам:

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