Для Ubuntu distros, install command-not-found
:
apt install command-not-found
После установки и включения, он запускается в текущей bash
оболочке, (точнее, в любой bash
оболочке, запущенной после установки). Вот вывод, если пользователь набирает одинокий "chlmod":
No command 'chlmod' found, did you mean:
Command 'chmod' from package 'coreutils' (main)
chlmod: command not found
%s относится к двум разным полям в полях «Шаблон» и «Шаблон замены». %s в поле «Шаблон» относится к строке, которую вы вводите в поле «Шаблон». Для поля «Шаблон замены» это относится к строке, которую вы вводите в поле «Текст замены :», которая появится в доке «Найти/Заменить в файлах», которая появляется в нижней части IDE, когда вы нажимаете кнопку кнопка поиска.
В этих полях можно создавать всевозможные шаблоны. Предположим, вы хотите заменить вектор ()на «foobar» в своих документах. Вы можете ввести :«вектор» без кавычек в поле «Шаблон», ввести «(%s )» без кавычек в поле «Шаблон» и «[%s]» без кавычек в поле «Шаблон замены». После нажатия на поиск введите «foobar» без кавычек в текстовом поле «Замена» в доке и нажмите кнопку «Заменить».
Редактировать:
Вот еще примеры/пояснения. Обратите внимание, однако, что я не являюсь разработчиком Kdevelop и не просматривал исходный код, я просто сообщаю о том, что я узнал методом проб и ошибок, и, к сожалению, у меня нет полного понимания Find -Replace In Функциональность файлов.
В диалоговом окне «Найти» -«Заменить» (выше )у нас есть эти поля:
Pattern
:Эта строка — то, что вам нужно. Он может поддерживать регулярные выражения, но только при установленном флажке Regular expression
. Template
:Регулярное выражение для украшения строки поиска. «%s» — это ссылка на строку, которую вы ввели в Pattern
. Вы можете использовать %s
несколько раз. Если ваш Pattern
установлен на «foo»,затем шаблон Template
'%s%s' расширится до 'foofoo'. Затем KDevelop будет искать текст, соответствующий 'foofoo', с левой ассоциативностью. Я не знаю, есть ли другие специальные ссылки '%', которые можно использовать, а '%s' использовать не обязательно. Справа от этого поля находится раскрывающееся меню для различных предопределенных шаблонов, которые вы можете использовать. Я не знаю, можете ли вы определить свой собственный. Replacement template
:Шаблон (без использования регулярного выражения )для украшения строки замены. Сомнительно, что команда KDevelop решила поместить поле Replacement text
в другой док (см. следующее изображение ниже ). То, что вы поместите в это поле Replacement text
, и есть то, во что расширится '%s'. Опять же, вы можете использовать '%s' несколько раз. Я не знаю, есть ли другие специальные ссылки '%', которые можно использовать, а '%s' использовать не обязательно. Regular expression
:Определяет, может ли Pattern
использовать регулярные выражения. Case sensitive
:Переключает поиск с учетом регистра. Location(s)
:Уточняет, где выполнять поиск -Заменить. Справа вы можете перейти к определенному каталогу, в котором вы хотите запустить, или выбрать из раскрывающегося меню предопределенных параметров. Я не уверен, можете ли вы предопределить свои собственные. Depth
:Не совсем уверен, что это делает, я предполагаю, что это ограничивает, насколько глубоко в каталоге проекта должен идти ваш Find -Replace. Limit to project files
:Files
ниже. Я думаю, что это может быть ошибка, вы должны иметь возможность включить / отключить ее. Чтобы переключить его, вам нужно открыть «Найти/Заменить в файлах» с помощью увеличительного стекла в доке «Найти/Заменить в файлах», см. рис.:Files
:Разделенный запятыми список типов файлов, которые вы хотите найти -Заменить для запуска.Exclude
:Разделенный запятыми список каталогов (относительно корневого каталога проекта )и файлов, которые следует игнорировать при выполнении команды «Найти» -Заменить. На изображении выше я ищу конкретные экземпляры iomanip. С шаблоном Template
он будет искать только экземпляры, которые окружены «<>» и имеют переменное количество цифр слева от символа «i» в «iomanip». В Replacement template
я ввел глупый шаблон скобок с двумя экземплярами ссылки '%s'. Каждый «%s» будет расширяться до того, что я ввожу в поле Replacement text
в доке, которое появляется в нижней части IDE после нажатия кнопки Search
в диалоговом окне «Найти -Заменить в файлах». См. изображение ниже:
Как видите, в нижней части IDE появится панель «Найти/Заменить в файлах». Здесь я набрал «IamTheBest» в поле Replacement text
. Эта строка представляет собой то, что «%s» расширяется в поле Replacement template
из предыдущего диалогового окна.
В дереве находится список совпадений, соответствующих расширенному шаблону Template
, представленному в предыдущем диалоговом окне. Обратите внимание, что были сбиты <29837489237482374iomanip>
и <iomanip>
, но не "iomanip"
. Из дерева мы можем выбрать, какие из них мы хотим включить в наш протокол поиска -замены. Пока я оставлю их все выбранными. В раскрывающемся меню можно выбрать одну из предыдущих процедур «Найти -Заменить». После нажатия кнопки Replace
у нас будет:
Еще больше примеров/вариантов использования:
Template
шаблонов,"назначение" :Это только изменило «thisNumber» на «ноль» в контексте присваивания, но не в контексте равенства. Надеюсь, это было полезно!
Редактировать 2:
Увидев, как вы просили документацию или хотя бы ссылку на исходный код, я решил дать вам ссылку на исходный код. Вернее то, что команда KDevelop опубликовала на github:
Функциональность поиска/замены в файлах инкапсулирована в подключаемом модуле grepview, ссылка на который приведена выше. В частности, посмотрите на greputil.h и greputil.cpp. Именно здесь вы найдете логику подстановки, используемую для расширения «%s» в полях Template
и Replacement template
.
Редактировать 3:
Мои утверждения об опции Limit to Project Files
неверны, в настоящее время я изучаю исходный код, чтобы выяснить, что он должен делать....
Редактировать 4 :Я еще не выяснил предел для проекта, но я только что понял, что есть «Что это?» функция в этом меню поиска/замены (вопросительный знак в правом верхнем углу окна ). Если вы нажмете ? а затем нажмите на некоторые из полей, он отобразит гораздо больше полезной информации, особенно в поле шаблона поиска. Вот "что это?" отображаемый текст:
Если вы не отметите «Регулярное выражение» ниже, это будет считаться необработанной строкой. Это означает, что все метасимволы экранированы.
Возможные метасимволы::
. -Соответствует любому символу
^ -Соответствует началу строки
$ -Соответствует концу строки
\b -Соответствует границе слова
\s -Соответствует любому пробельному символу
Существуют следующие операторы повторения:
?-Предыдущий элемент соответствует не более одного раза
*-Предыдущий элемент соответствует ноль или более раз
+ -Предыдущий элемент совпадает один или несколько раз
{n} -Предыдущий элемент соответствует ровно n раз
{n,} -Предыдущий элемент соответствует n или более раз
{,n} -Предыдущий элемент соответствует не более n раз
{n,m} -Предыдущий элемент соответствует не менее n, но не более m раз.
Кроме того, обратные ссылки на подвыражения в квадратных скобках доступны через нотацию \n.
Для получения дополнительной информации см. www.pcre.org или man pcresyntax.