xargs
ожидает аргументы, заключенные в кавычки некоторым странным способом который find
не производит. Никогда не используйте xargs
в сочетании с find
, если Вы не знаете, что Ваши имена файлов не содержат \"'
или пробел.
Вместо использования xargs
, позволить find
непосредственно назовите программу, которую Вы хотите запустить.
find . -exec grep -ns 'add_action('\''save_post'\'',' {} +
С exec … {} +
, программа вызывается однажды для многих файлов сразу, как с xargs
. Некоторые более старые версии find
не поддерживать +
здесь ¹, затем необходимо использовать ;
вместо этого, который вызывает grep
однажды на файл.
Можно альтернативно использовать find … -print0 | xargs -0
, если Ваши утилиты поддерживают его ¹. -print0
опция говорит find
испускать имена, разделенные пустым байтом, и -0
говорит xargs
ожидать разделенный от пустого указателя вход а не сделать любую интерпретацию кавычки.
Отметьте заключение в кавычки выше: между одинарными кавычками все символы интерпретируются буквально, за исключением того, что '
показывает конец литеральной строки. Так '\''
эффективно способ поместить литеральную одинарную кавычку в единственно заключенной в кавычки строке; официально, это “'
закончите кавычку, \
литерал '
одинарная кавычка, '
начните кавычку”.
В особом случае grep
, если Ваша поддержка внедрения это ¹, можно обойтись без find
и используйте grep -r
искать в каталоге рекурсивно:
grep -r 'add_action('\''save_post'\'',' .
¹ Linux, Cygwin, FreeBSD и OSX поддерживают эти функции.
Это ожидается; autocmd выполняет команду Ex w:m1=matchadd('ErrorMsg','\%>100v.\+', -1)
. w
краткая форма write
, то, что следует, интерпретируется как имя файла.
Я предполагаю a :let
пропал, потому что затем команда имеет смысл: let w:m1=...
определяет локальную переменную окна m1
и присваивает результат matchadd()
звоните в него.
autocmd, кажется, выделяет все символы вне столбца 100. Обратите внимание, что в недавних версиях Vim 7.3, можно использовать 'colorcolumn'
функция этого:
:set colorcolumn=101
Если Вы добавляете,
набор vbs=1 "Подробное сообщение об ошибке Нуль = Норма к Девять = Max
в Ваш .vimrc и запускаются с 3, или 4 он покажет Вам, все файлы загрузили/назвали (и намного больше, поскольку Вы продвигаете к 9), поскольку Вы открываете энергию/файлы.
Не точный ответ, но мог помочь Вам разыскать его.
:m1=matchadd.... [NEW]
был записан в $PWD. Спасибо за вход, все же. Ответ Ingo Karkat был корректен. Я не могу полагать, что отсутствовал let
... И я буду изменять автокоманду regex на colorcolumn
с этого времени :)
– Elias Van Ootegem
05.06.2013, 16:42
let
... вероятно,d+w
где-нибудь случайно. Так или иначе я буду использоватьcolorcolumn
с этого времени. – Elias Van Ootegem 05.06.2013, 16:43