Включите несколько строк в Vim кавычки

Можно использовать диски differents размеров и differents действий. Это просто не оптимально.

Если Вы будете использовать 320 ГБ и дисковод на 1 ТБ, то Ваш массив RAID1 составит 320 ГБ. Остальные будут не использованы.

Вполне то же самое для производительности. Более медленный диск замедлит все. Но ничто опасное.

2
23.06.2014, 13:10
4 ответа

Используя регулярные выражения:

:%s/.*is supposed.*/"&"/

Если под "полуавтоматическими" вы подразумеваете, что перед каждой заменой вам необходимо получить запрос, просто добавьте модификатор /c к шаблону замены:

:%s/.*is supposed.*/"&"/c

Explanation

  • : %s означает применение этой подстановки ко всем строкам в текущем буфере
  • Шаблон, которому мы сопоставляем, это любая строка, содержащая слова supposed (если некоторые другие строки содержат слова "supposed" без "to be enclosed in quotes" following them, вы всегда можете изменить шаблон на . *Предполагается, что он заключен в кавычки.*
  • Строка, которую мы используем для замены приведенного в соответствие образца, это "&", где & означает то, что было заключено в кавычки.
6
27.01.2020, 21:50

Я почти всегда предпочитаю макросы для поиска n замен, потому что они более мощные и менее запоминающиеся, но при этом сохраняют возможность интерактивной проверки перед прыжком. Попробуйте это в первой строке, которую вы хотите изменить (не вводите пробелы, которые я поставил вокруг ESC и ENTER для удобочитаемости):

qqI" ESC $bea" ESC /это предполагает ENTER zzq

То, что он делает:

  • qq запускает макрос с именем "q" (qa запускает макрос "a")
  • I" ESC вставляет " перед первым словом, а не в начале строки, как это делает "0", сохраняя тем самым там обычно ценное белое пространство.
  • $bea" ESC Переходит к концу строки ($), но затем делает резервную копию слова (b) и снова переходит к концу строки (e), в конце добавляя (a) ". Этот маневр добавляется после последнего слова строки, даже если за ним следуют обычно бесполезные трейлинговые белые пробела.
  • /это предполагалосьПосле выполнения редактирования этот поиск следующего экземпляра "предполагалось", который может быть на много страниц ниже, и красиво позиционирует курсор туда, чтобы вы могли посмотреть и решить, следует ли продолжить редактирование. Если "supposed" не найдено, то макрос выходит без повреждений.
  • zzq красиво центрирует строку на странице (zz), так что вы можете видеть несколько строк за пределами текущей. Полезно, когда вы быстро применяете макрос и хотите посмотреть на пару шагов вперед. "q" заканчивает определение макроса, которое также называется "q".

Как использовать:

  • Первая строка уже была изменена по завершении определения макроса выше.
  • Если есть ошибка, вы можете просто отменить эту одну строку и попробовать еще раз.
  • Курсор теперь находится на втором совпадении, если оно есть, и хорошо отцентрирован на странице.
  • При желании можно применить макрос (или другой аналогичный макрос!) с помощью @q, который отредактирует строку и поместит вас на третье совпадение.
  • Можно повторно применить последний макрос с помощью @@ (быстрее, чем @q).
  • Можно сделать сразу несколько, например, сделать несколько раз: 111@@. Помните, что если при применении макроса допущена ЛЮБАЯ ошибка, повторений больше не будет.
  • Или можно вручную пропустить PageDown и друзей и повторно применить макрос.
  • И можно чередовать макросы с любыми другими правками.
  • И вы можете :вкладка рядом, чтобы применить этот макрос к другим буферам или файлам.
  • Вишенка на пироге: макрос запоминается даже после выхода из vim!

Как только вы освоитесь с макросами, вы получите потрясающие способности!

.
1
27.01.2020, 21:50

Знаменитый плагин окружения обеспечивает различные отображения, которые делают это быстро и просто. Чтобы процитировать целую строку (без отступа), просто используйте yss". Это можно применить ко всем совпадающим строкам текста примера автоматически с помощью команды :global и :normal:

:g/is supposed/normal yss"

или просто выполнить поиск совпадающих строк и повторить его с помощью n и .

2
27.01.2020, 21:50

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

Для этого перейдите к началу второй строки и нажмите:

qq I" Escape A" Escape 3j q

Это процитирует первую строку и приведет нас к следующей, на которую мы будем смотреть. Затем можно нажать @q, чтобы проиграть все только что выполненные действия, или, скажем, 5@q, чтобы сделать это пять раз.

Как это работает: q - это команда для начала записи макроса, которую мы также вызываем q (вы можете выбрать любую букву). В этом макросе мы вставляем двойную кавычку в начало строки (I"), выходим из режима вставки (Escape), добавляем двойную кавычку в конец строки (A") и снова выходим из режима вставки. Мы идём вниз по трём строкам (3j) к следующей строке, которая будет цитироваться. q останавливает запись макроса.

После этого мы возвращаемся в то же самое место, с которого начали, и можем запустить макрос (@), который мы сохранили как q, чтобы сделать это снова к следующей паре строк. Со счетом перед @, как в @5@q, мы делаем это много раз.


Вместо 3j, если расстояние как-то нерегулярно, можно использовать }}k: спускаемся на два параграфа к пустой строке после следующей (}}) и делаем резервную копию (k). В любом случае, запуск одного и того же макроса.

] На самом деле, вы можете записать любую серию действий, которые делают то, что вы хотите и возвращают вас туда, где вы хотели быть. До тех пор, пока шаги, которые вы выполняете, имеют смысл в любом контексте, вы можете запустить макрос, внести все необходимые изменения и перейти к следующему местоположению, затем остановить макрос и повторить его.

.
0
27.01.2020, 21:50

Теги

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