Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Notepad++ (часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176

Открыть новую тему     Написать ответ в эту тему

DmitryFedorov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущая часть темы: часть 1
 

 
Notepad++ — это бесплатный редактор текстовых файлов (замена стандартного Блокнота) с поддержкой синтаксиса большого количества языков программирования, ориентирован для работы в операционной системе MS Windows. Этот проект базируется на компоненте Scintilla (очень мощном компоненте для редактирования) написанном на C++ с использованием только Win32 API и STL (что гарантирует максимальную скорость выполнения при минимальном размере программы), распространяется под лицензией GPL.  
 

Переводы на русский
 
  • (полный перевод!) Npp_exe_7.9.5_Ru + Плагины_RU от Dm.Fedorov
  • Русификатор 7.8.9 без сКаКаНиЯ текста от wvxwxvw
  • Notepad++Portable 7.9.1 AkulaBig от 21.11.2020 г.  
  • Как в Notepad++ включить проверку орфографии
     

    ! Проблема с "макинтош"-распознаванием кириллицы в кодировке 1251 (и другим неверным авто-распознаванием, где часть символов отображается кракозябрами) решается снятием галки "Autodetect character encoding" в Preferences|Misc.
    - Если в NP++ до v7.32 ссылка не подчеркивается, нужно применить плагин ScrollPastEOF


    ! Все вопросы и обсуждения по поводу поиска/замены текста задавайте пожалуйста в теме Регулярные выражения
     
    Системные требования, совместимость с Win2K,WinXP
     
    Любое упоминание политических аспектов, не касающихся непосредственного функционирования ПО, в данной теме будет заканчиваться запретом на пост.


  • Всего записей: 1952 | Зарегистр. 19-03-2006 | Отправлено: 01:23 02-12-2015 | Исправлено: MAX63ru, 09:05 20-02-2024
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryFedorov
    Я знаю, что поиск виноват, а не преобразование. Суть была в том, чтобы подправить регулярки в макросе, но вот эти самые регулярки в файле оказалось подправить трудно, потому что сложно распознавать вот эти абракадабры. Впрочем, я только что в интеренте узнал полезный регэкс
    Цитата:
    \p{L}

    матчит все юникодные буквы. Заменил в нужном месте в макросе старые регулярки на эту регулярку и макрос стал корректно обрабатывать данные и проблема снялась.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 20:39 25-07-2017 | Исправлено: Hjkma, 20:40 25-07-2017
    DmitryFedorov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rank345

    Цитата:
     -l Code1
    для начала здесь между тире_малоеЭль и Code1 не должно быть пропуска.  
    Должно быть как в справке:
    -l$$$
    где $$$ является кратким идентификатором языка. И дальше перечислены допускаемые идентификаторы.
    Значит твой Code1 по логике должен как-то оказаться среди них. Это уже не проверял.
     
    Ну и дальше наверняка еще куча нюансов.
     
    Добавлено:
    Hjkma

    Цитата:
    узнал полезный регэкс
    \p{L}  
    Да полезная вещь. Но чтоб она тоже не выглядела как абракадабра надо бы дать пояснение.
    Я так понял что это выражение ищет один символ (кодовую точку) в виде буквы. Неважно какой буквы, латинской или русской.
    Т.е. в выражении \p{L} символ p это как бы "point", a  L - "Letter"
    С этим выражением можно оперировать так будто бы в поиске вместо него стояла точка.

    Всего записей: 1952 | Зарегистр. 19-03-2006 | Отправлено: 21:15 25-07-2017
    Pirate_Rat



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста. Столкнулся со странной (на мой взгляд) проблемой при поиске в xml (но проблема я думаю будет в любом тексте). Имею файл в котором примерно такая структура:
    <table>...
    текст
    </table>
    текст
    <table>
    текст
    </table>
     
    мне надо выделить (что-бы ВЫРЕЗАТЬ) содержимое <table>...<table> поочередно (несколько блоков).
    Как не замарачиваюсь ВСЕ редакторы (которые я пробовал) находят первое открытие тега И последнее закрытие тега (как бы ища с конца текста), выделяя по сути ВЕСЬ текст, оба (три, четыре...) блока. ((( Как искать??? ((((

    Всего записей: 55 | Зарегистр. 23-09-2005 | Отправлено: 13:28 01-08-2017
    VVL99

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pirate_Rat

    Цитата:
    мне надо выделить (что-бы ВЫРЕЗАТЬ) содержимое <table>...<table>

    Точно?
    Или
    <table>...</table>
    или
    <table>...
    текст
    </table>
    А разметку текста сохранять?
    Я так понимаю теме нужен символ - ?
     
    Тогда вот тебе, тренируйся:
    Найти: (<.+?>).+?(<.+?>)
    Заменить на: \1\r\2

    ----------
    Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

    Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 14:04 01-08-2017
    Pirate_Rat



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    <table>...  
    текст  
    </table>

     
    Именно, что не в 1 строку. И количество строк, НЕ фиксировано.
     
    <table><p>
    <tr></p>
    <p>
    <td align="bottom"> </td></p>
    <p>
    ...
    </table>
     
    в конечном результате, мне надо получить ВЫДЕЛЕННЫЙ текст (таблицу), что бы его скопировать и изменить.

    Всего записей: 55 | Зарегистр. 23-09-2005 | Отправлено: 14:16 01-08-2017
    VVL99

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pirate_Rat

    Цитата:
    мне надо получить ВЫДЕЛЕННЫЙ текст (таблицу), что бы его скопировать и изменить.

    Задача изменилась и вот тут я уже не уверен, что сабж нужное решение.
     
    <table>(.*?)</table>


    ----------
    Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

    Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 16:37 01-08-2017 | Исправлено: VVL99, 17:48 01-08-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добавить в начало (?s) или поставить галочку, что точка=ВСЁ.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 23:08 01-08-2017
    VVL99

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO - пост
    Это куда?

    ----------
    Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

    Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 23:42 01-08-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Рядом с крыжиком "Регулярное выражение"

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 01:44 02-08-2017
    arnlian

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    Подскажите пожалуйста, при выполнении операции Найти / Заменить не могу вставить сразу несколько строк текста.
    Все операции выполняю в окне программы. Например копирую сразу 5 строк, нажимаю  CTRL+H в поле найти вставлены все символы из 5 строк, потом выделю текст из 3-х строк и в поле заменить копируется только текст из первой строки.
    Как исправить ситуацию?  
    Спасибо за ответы.

    Всего записей: 4 | Зарегистр. 11-11-2009 | Отправлено: 01:22 04-08-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01:22 04-08-2017
    Цитата:
    при выполнении операции Найти / Заменить не могу вставить сразу несколько строк текста

    Интересное совпадение: у меня почти такой же вопрос.  
    Может ли в диалоге поиска и замены сабжа "строка" (не знаю, как это по-русски правильно называется, по-английски вроде бы "string") вообще правильно интерпретировать концы строк (разделители абзацев)? Может ли это зависеть от формата конца строки?
     
    И ещё, какой максимальный размер такой "строки", который может обработать модуль поиска и замены.
     
    Спасибо!

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 02:04 04-08-2017 | Исправлено: tramparamparam02, 02:08 04-08-2017
    DmitryFedorov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tramparamparam02
    См. тут Вариант решения от AZJIO

    Всего записей: 1952 | Зарегистр. 19-03-2006 | Отправлено: 15:25 04-08-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryFedorov 15:25 04-08-2017
    Цитата:
    См. тут Вариант решения от AZJIO [?]

    Спасибо за ссылку.  
    Однако я, похоже, неточно выразился. Меня интересует возможность вставки многострочного текста (с разделителями строк) именно в верхнее поле "Найти", а не в поле "Заменить". Заменять как раз предполагается на фразу из нескольких слов (или вообще на пустое место).
     
    Правильно ли я понял из вашего обсуждения с AZJIO по ссылке, что многострочный текст в поле "Найти" поддерживается изначально, и никаких дополнительных ухищрений для этого не требуется?
     
    А какой максимальный размер текста в поле "Найти"?

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 18:11 04-08-2017
    arnlian

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как в поле заменить вставить сразу несколько строк?

    Всего записей: 4 | Зарегистр. 11-11-2009 | Отправлено: 00:00 05-08-2017
    DmitryFedorov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tramparamparam02

    Цитата:
    Правильно ли я понял из вашего обсуждения с AZJIO по ссылке, что многострочный текст в поле "Найти" поддерживается изначально, и никаких дополнительных ухищрений для этого не требуется?  

    Поняли правильно.  
    Но происходит это хитро. Не путем копирования текста и вставки в поле.
    Надо Выделить нужный текст и нажать Ctrl+F (неважно висит ли при этом у вас окно поиска-замены или не висит)
    При последнем варианте все вставится автоматом. Однако строки (когда их несколько) не будут ничем разделены. Символ конца строки будет никак не видим.
     

    Цитата:
    А какой максимальный размер текста в поле "Найти"?

    Ну поэкспериментируйте и сообщите. Думаю достаточно большой. В принципе огромный текст никто не ищет. Другое дело текст с регулярными выражениями - это может быть большим. Но "это" будет одна строка, а не несколько.
     
    Добавлено:
    Честно говоря я считаю что причина того что никак не получается вставить несколько строк автоматически в поле замены, просто разгильдяйством автора проги.
    Ведь при выделении текста и нажатии Ctrl+H текст вставляется в поле поиска, а не в поле замены, как интуитивно ожидается. Вставляется также как при сочетании Ctrl+F - несколько строк, так что если бы автор этим озаботился (вставкой в нужное поле), то и проблемы бы не было.
    --------
    Пишите рябяты пишите. Хватит ждать что дядя возьмет и напишет за вас. Чего больше долбежки тем выше результат.

    Всего записей: 1952 | Зарегистр. 19-03-2006 | Отправлено: 02:38 05-08-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryFedorov 02:38 05-08-2017
    Цитата:

    Цитата:
    А какой максимальный размер текста в поле "Найти"?  
     
    Ну поэкспериментируйте и сообщите. Думаю достаточно большой. В принципе огромный текст никто не ищет.  

    Поэкспериментировал. Увы, в поле "Найти" поддерживается довольно маленький размер текста. Насколько я понял, предельный размер примерно на уровне 2-х килобайт (2048 bytes) плюс-минус 10 байтов (возможно, что зависит от каких-то факторов). Всё остальное жёстко обрубается. Причём прога даже не сообщает об ошибке!
    Увы, для моих задач этого недостаточно.


    DmitryFedorov 02:38 05-08-2017
    Цитата:
    Но происходит это хитро. Не путем копирования текста и вставки в поле.  
    Надо выделить нужный текст и нажать Ctrl+F (неважно висит ли при этом у вас окно поиска-замены или не висит)

    Сейчас проверил: многострочный текст корректно обрабатывается и в том случае, если его скопировать в буфер и затем вставить оттуда в поле "Найти". Но напрямую, по Ctrl+F конечно, удобнее и быстрее. Спасибо за подсказку!

    Цитата:
    неважно висит ли при этом у вас окно поиска-замены или не висит. При последнем варианте все вставится автоматом.

    Ну, это стандартное поведение во многих текстовых редакторах: нажатие соответствующего хоткея (как правило, Ctrl+F) вызывает окно диалога поиска и автоматически вставляет в поле "Найти" текущее выделение. (А если в документе в данный момент ничего не выделено, то некоторые редакторы автоматически вставляют в поле "Найти" текущее содержимое системного буфера обмена. Но Notepad++ так, кажется, не умеет. Или есть какая-то скрытая от глаз опция?)

    Цитата:
    Однако строки (когда их несколько) не будут ничем разделены. Символ конца строки будет никак не видим.

    Точнее будет сказать, что строки в поле "Найти" не будут ничем разделены визуально. На самом же деле разделение строк сохраняется, иначе программа не смогла бы корректно найти в документе и при необходимости заменить этот многострочный фрагмент. Значит, разделители строк (абзацев) при вставке в поле "Найти" никуда не теряются. Просто прога этих разделителей не показывает, а выводит всё как бы одной длинной строкой. То есть, это проблема не функционала, а интерфейса.

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 14:05 05-08-2017 | Исправлено: tramparamparam02, 15:02 05-08-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tramparamparam02

    Цитата:
    примерно на уровне 2-х килобайт (2048 bytes)
    это ограничение может быть связано с виндовым элементом имеющим ограничение.

    Цитата:
    Увы, для моих задач этого недостаточно.  
    использовать рег выр, задать начало и конец, а средину вставить ".+{10000}", это будет искать текст с заданным началом и концом а в средине 10000 символов. При понимании что такой же текст не может повториться. Ну либо взять отличительную часть и указать её явно, а одинаковую символами подстановки.
    Ну или самому написать крутую прогу, кторая в пункт комбобокса вставит книгу, в другой пункт другую книгу, сохраняя это в истории, и кстати это не трудно сделать, AutoIt тебе в помощь.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:50 05-08-2017 | Исправлено: AZJIO, 18:52 05-08-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Поэкспериментировал. Увы, в поле "Найти" поддерживается довольно маленький размер текста. Насколько я понял, предельный размер примерно на уровне 2-х килобайт (2048 bytes) плюс-минус 10 байтов (возможно, что зависит от каких-то факторов). Всё остальное жёстко обрубается. Причём прога даже не сообщает об ошибке!  
    Увы, для моих задач этого недостаточно.  

    Если нужно использование редактора Notepad++, то есть плагин ToolBucket, в нем окно поиска и замены имеет ограничение в 32 тысяч символов. Если и этого не хватает, пробуй редактор Text Sublime 3, насколько я помню лимита вообще нет. Если нужна производительность поиска, пробуй PowerGrep, очень быстро ищет и лимита нет.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 19:06 05-08-2017
    DmitryFedorov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tramparamparam02

    Цитата:
    Сейчас проверил: многострочный текст корректно обрабатывается и в том случае, если его скопировать в буфер и затем вставить оттуда в поле "Найти".
    У меня не вставляется и корректно не обрабатывается, думаю у других тоже.
    Вставляется только одна первая строка.
    Винда 7,  32 бита.

    Цитата:
    Увы, для моих задач этого недостаточно.
    Что ж  это за задачи такие что 2 кбайт недостаточно чтобы найти текст?
    В инете ищете чтоль? Не представляю где нужна такая точность.
    Просветите.

    Всего записей: 1952 | Зарегистр. 19-03-2006 | Отправлено: 21:06 05-08-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO 18:50 05-08-2017
    Цитата:
    это ограничение может быть связано с виндовым элементом имеющим ограничение.

    Это вряд ли. У многих текстовых редакторов размер буфера (сомневаюсь в правильности термина, но смысл, думаю, понятен) для поиска гораздо больше. Например, в 32-битном AkelPad древней версии 4.21 - 64 KB, а отнюдь не 2 KB.

    Цитата:
    использовать рег выр, задать начало и конец, а средину вставить ".+{10000}", это будет искать текст с заданным началом и концом а в средине 10000 символов. При понимании что такой же текст не может повториться.

    Идея хорошая, но... Как посчитать, сколько именно там символом в середине: 1000 или, может, 998? Или каждый раз считать вручную, тыкая пальцем в экран монитора: раз, два... девятьсяот двадцать пять...

    Цитата:
    Ну либо взять отличительную часть и указать её явно, а одинаковую символами подстановки.

    Немного не понял. Не приведёте простой пример?

    Цитата:
    написать крутую прогу, кторая в пункт комбобокса вставит книгу, в другой пункт другую книгу, сохраняя это в истории, и кстати это не трудно сделать, AutoIt [?] тебе в помощь.

    Спасибо, но так много мне не нужно. Иногда требуется искать куски по 4-6 KB, редко больше. Книгу сюда не уместишь, разве что короткий рассказ. Но родные 2 KB в Notepad++ это как-то совсем уж мало.
     
    Hjkma 19:06 05-08-2017
    Цитата:
    есть плагин ToolBucket, в нем окно поиска и замены имеет ограничение в 32 тысяч символов. Если и этого не хватает, пробуй редактор Text Sublime 3, насколько я помню лимита вообще нет.

    Спасибо! Обычно мне не требуется искать больше 5-6 KB, так что плагина ToolBucket с его 32-мя KB хватит за глаза (хотя у AkelPad вдвое больше).
     
    DmitryFedorov 21:06 05-08-2017

    Цитата:

    Цитата:
    многострочный текст корректно обрабатывается и в том случае, если его скопировать в буфер и затем вставить оттуда в поле "Найти".

    У меня не вставляется и корректно не обрабатывается, думаю у других тоже. Вставляется только одна первая строка.

    Да, вы правы, не вставляется. Сейчас вот ещё раз проверил. Это я запутался в ходе тестирования, не обратил внимания, что многострочный текст пришёл в поле "Найти" из истории поиска, а не из буфера обмена.

    Цитата:
    Что ж  это за задачи такие что 2 кбайт недостаточно чтобы найти текст? Просветите.

    Вам это действительно интересно? Не верю! (C). Но если совсем в общих словах: иногда в процессе редактирования надо найти и заменить (или удалить) повторяющиеся куски текста в документах, скачанных из интернета.

    Hjkma  

    Цитата:
    Если и этого не хватает, пробуй редактор Text Sublime 3, насколько я помню лимита вообще нет.

    А что там есть ещё интересного, кроме безлимитного поиска?

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 23:45 05-08-2017 | Исправлено: tramparamparam02, 00:47 06-08-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176

    Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Notepad++ (часть 2)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru