Что лучший способ состоит в том, чтобы добавить некоторые символы в запуске и конце каждой строки? Это может быть сделано с помощью Vim или некоторого другого пути?
В vim вы можете выполнить
:%s/^\(.*\)$/"\1"/
s / regex / replace /
команду vim для поиска и замены. %
применяет его ко всему файлу. ^
и $
обозначают начало и конец строки соответственно. (. *)
фиксирует все, что находится между ними. (
и )
необходимо экранировать в регулярных выражениях vim. \ 1
помещает захваченный контент между двумя кавычками. проще:
% s /.*/ "&"
Объяснение: По умолчанию шаблон интерпретируется как максимально возможное совпадение, поэтому . *
интерпретируется как вся строка , без необходимости в ^
и $
. И хотя \ (
... \)
может быть полезен при выборе части шаблона, он не нужен для всего шаблона, который представлен как &
в
подмена. А также
заключительный /
в поиске или замене не нужен, если за ним не следует что-то еще; хотя игнорирование этого могло считаться ленью. (Если так, то я ленив.)
лучшее использование будет sed (особенно если вам нужно написать сценарий)
cat foo.txt | sed s/^\(.*\)$/"\1"/g
Два ответа, предполагающие % s
, идеальны, и я надеюсь, вы научитесь любить % s
и часто его использовать. Но если вы обнаружите, что хотите часто окружать другие блоки текста, вы должны попробовать плагин Surround.vim , который позволит вам делать то, что вы просили, с помощью следующих четырех нажатий клавиш: yss "
И есть много других полезных встроенных целей окружения. Например, чтобы заключить текущее слово в двойные кавычки: csw"
, и изменить окружающие одинарные кавычки на двойные: cs '"
.
Surround.vim - один из моих любимых плагинов vim, и я использую его ежедневно.