Page 1 of 2
Разбиение на строки и объединение строк
Posted: 21.10.2022 12:37
by GenuZ
Никак не могу найти как разбить выделение на строки фиксированной ширины. С переносом по словам, а не по символам.
Как при применении Ctrl+U (Вид --> Переключить перенос по словам), только с реальным изменением текста.
Ну и, соответственно, как их потом объединить в одну строку с учётом тех же слов (оставляя между ними пробел).
Интересует аналог функций Ctrl+I и Ctrl+J в Notepad++. Но там за выбраную ширину для разбиения на строки берётся установленная видимость строк (регулируемая увеличением шрифта по Ctrl+колёсико), а хотелось бы фиксированную (опциональную!) настройку необходимой ширины строки. С дефолтом, скажем, в стандартные 80 символов.
Уже измучался, ковыряясь в настройках и плагинах, как это замутить... Подобное раньше делалось в редакторе Far Manager (уже не помню, может тоже с каким-то плагином). И это очень полезно при редактировании обычного текста.
Если такое настроить при текущих возможностях нельзя, прошу считать это за фичреквест. Как расширение функционала меню "Правка --> Строчные операции" с опцией в конфиге на требуемую дефолтную ширину строки. С возможностью выбирать для этого хоткеи.
Это последнее, что заставляет меня скакать между разными редакторами, чтобы отредактировать обычный file_id.diz.
Posted: 21.10.2022 14:33
by main Alexey
команды в CudaExt plugin:
- Re-wrap/split lines by margin (он спросит по какой колонке делать)
- Re-wrap/split lines by margin, with defaults
обратка:
- Join lines
(команды ищутся в Палитре Команд. там же по F9 задать хоткеи)
Posted: 25.10.2022 22:23
by GenuZ
main Alexey wrote:команды в CudaExt plugin:
- Re-wrap/split lines by margin (он спросит по какой колонке делать)
- Re-wrap/split lines by margin, with defaults
- Join lines
Оно всё как-то странно работает. В том же Notepad++
(и в Far с плагином) концы длинных строк
(за пределами лимита) просто переносятся на следующую. И так пока не останется куска длиннее лимита. На выходе - красивый абзац.
Функции, которые вы подсказали выше в CudaText делают странное:
1. Они изменяют отступ самой строки
(куска строки). А если выбрать опцию Keep indent, то наоборот - делают отступ во всех строках.
Если это применять к абзацу текста, книги - получается полная дичь.
2. Если выделить несколько строк и применить split, то он смешает эти строки в кучу, но правильно обрезанную кучу. Для нормального результата приходится применять Re-wrap/split на каждой отдельной строке... Что с большим документом - ещё то удовольствие!
Примеры:
Оригинальный текст:
Основные возможности программы:
- Неограниченное (ну почти) количество наблюдателей, для проверки интересующих страниц с определенными интервалами времени;
- Уведомления об изменениях на отслеживаемых страницах;
- Подсветка изменений произошедших в содержимом страницы;
- Хранение истории произошедших изменений на странице;
- Авторизация на интересующих сайтах и проверка содержимого страниц, предназначенных для авторизованного пользователя;
- Отслеживание изменений конкретных элементов на страницах и обрабатка HTML-кода этих элементов с помощью регулярных выражений;
- Группировка наблюдателей и фильтрация списка отображения;
- Режим работы из папки (portable).
Результат CudaExt:
Основные возможности программы: - Неограниченное (ну почти) количество
наблюдателей, для проверки интересующих страниц с определенными интервалами
времени; - Уведомления об изменениях на отслеживаемых страницах; - Подсветка
изменений произошедших в содержимом страницы; - Хранение истории произошедших
изменений на странице; - Авторизация на интересующих сайтах и проверка
содержимого страниц, предназначенных для авторизованного пользователя; -
Отслеживание изменений конкретных элементов на страницах и обрабатка HTML-кода
этих элементов с помощью регулярных выражений; - Группировка наблюдателей и
фильтрация списка отображения; - Режим работы из папки (portable).
Результат в Notepad++ (правильный, желаемый):
Основные возможности программы:
- Неограниченное (ну почти) количество наблюдателей, для проверки интересующих
страниц с определенными интервалами времени;
- Уведомления об изменениях на отслеживаемых страницах;
- Подсветка изменений произошедших в содержимом страницы;
- Хранение истории произошедших изменений на странице;
- Авторизация на интересующих сайтах и проверка содержимого страниц,
предназначенных для авторизованного пользователя;
- Отслеживание изменений конкретных элементов на страницах и обрабатка HTML-кода
этих элементов с помощью регулярных выражений;
- Группировка наблюдателей и фильтрация списка отображения;
- Режим работы из папки (portable).
Подскажите,
есть ли возможность достигнуть поведения функции как у Notepad++ -
сохранения структуры отступов и списка ,
структуры текста как в книге, читабельности результата?
Posted: 26.10.2022 18:46
by main Alexey
Послал ссылку на это обсуждение к автору CudaExt, надеюсь он найдет время (у него много работы).
Posted: 26.10.2022 19:16
by main Alexey
Пробую сам поправить это.
сделайте такую правку и проверьте.
в файле (cudatext)/py/cuda_ext/cd_ext_find_repl.py, найти:
Code: Select all
_rewrap(margin, cmt_sgn, save_bl, rng[0], rng[1], True)
заменить на:
Code: Select all
for nline in reversed(range(rng[0], rng[1]+1)):
_rewrap(margin, cmt_sgn, save_bl, nline, nline, False)
Posted: 26.10.2022 23:59
by GenuZ
main Alexey wrote:
сделайте такую правку и проверьте.
Строчки уже не смешивает, но всё равно косячит с отступами второй и последующих строк в абзаце. Оставляет им тот же отступ, что и у первой строки абзаца.
Было:
Code: Select all
Приложение для отображения и удаления скрытых устройств, если они соответствуют выбранному типу устройств и/или классу устройств одним нажатием кнопки мыши.
- Windows по умолчанию не показывает скрытые устройства. Windows покажет скрытые устройства, только если выполняется два пункта: переменной devmgr_show_nonpresent_devices добавлено значение 1; стоит галочка "Показать скрытые устройства". Ghostbuster отображает и удаляет все скрытые устройства, которые соответствуют собственным критериям выбора. Можно выбрать или отменить выбор классов, или устройств при помощи контекстного меню правой кнопки мыши в списке устройств. Только скрытые устройств и устройства, которые удовлетворяют критериям отбора будут удалены при нажатии кнопки "Remove Ghosts". Все остальные устройства остаются нетронутыми. Предупреждение: Используйте инструмент с осторожностью и только тогда, когда знаете, что делаете!
- Enumerates all devices installed on the computer and detects the ghosted ones, offering support for adding or deleting classes and devices Everything that’s connected to your computer can be viewed from a particular panel. Some of them might be hidden in order to protect your system, but you can use GhostBuster Portable in order to enlist all of them along with sets of related details.
- The advantages of a portable application This is the portable edition of GhostBuster, a small application that shows all devices installed on the computer, even ghosted ones. Since there is no installation involved, you can drop the executable file anywhere on the hard disk and just click it to run.
Стало:
Code: Select all
Приложение для отображения и удаления скрытых устройств, если они
соответствуют выбранному типу устройств и/или классу устройств одним нажатием
кнопки мыши.
- Windows по умолчанию не показывает скрытые устройства. Windows покажет
скрытые устройства, только если выполняется два пункта: переменной
devmgr_show_nonpresent_devices добавлено значение 1; стоит галочка "Показать
скрытые устройства". Ghostbuster отображает и удаляет все скрытые устройства,
которые соответствуют собственным критериям выбора. Можно выбрать или отменить
выбор классов, или устройств при помощи контекстного меню правой кнопки мыши в
списке устройств. Только скрытые устройств и устройства, которые удовлетворяют
критериям отбора будут удалены при нажатии кнопки "Remove Ghosts". Все
остальные устройства остаются нетронутыми. Предупреждение: Используйте
инструмент с осторожностью и только тогда, когда знаете, что делаете!
- Enumerates all devices installed on the computer and detects the ghosted
ones, offering support for adding or deleting classes and devices Everything
that’s connected to your computer can be viewed from a particular panel. Some
of them might be hidden in order to protect your system, but you can use
GhostBuster Portable in order to enlist all of them along with sets of related
details.
- The advantages of a portable application This is the portable edition of
GhostBuster, a small application that shows all devices installed on the
computer, even ghosted ones. Since there is no installation involved, you can
drop the executable file anywhere on the hard disk and just click it to run.
Послал ссылку на это обсуждение к автору CudaExt
Спасибо!
Posted: 27.10.2022 04:57
by main Alexey
да, вижу. надо в py/cuda_ext/cd_ext_find_repl.py,
найти блок "def _rewrap(", в нем найти блок "for ext in range(1,100):" и убрать его вот так:
Code: Select all
if False and save_bl:
for ext in range(1,100):
Posted: 28.10.2022 17:38
by main Alexey
обновил плагин CudaExt в аддонах. проверьте. если еще что-то не то, welcome.
Posted: 24.11.2022 21:55
by GenuZ
main Alexey wrote:если еще что-то не то, welcome.
Вот ещё что обнаружил.
Разбиение на строки не работает с выделением строк вертикальным блоком.
Юзкейс такой:
1. Есть
текст со строками без отступов. Которые
начинаются с первой колонки.
2. Я
ставлю каретку в начало строки и растягиваю её на несколько строк вниз. И
добавляю пару пробелов для будущих отступов в начале каждого абзаца.
3. Затем
жму Shift+End и получаю выделение до конца всех выделенных строк, на которые я растягивал каретку в п.2.
4. Из такого положения (когда строки выделены вертикальным блоком, начиная с третьей колонки слева) разбиение на строки не срабатывает.
5. Но если снять описанное выделение и заново выделить строки обычным способом, абзацами - всё работает.
6. Примечательно, что
если способом из п.1-4 выделить одну строку - разбиение тоже сработает прекрасно.
Posted: 25.11.2022 17:52
by main Alexey
вообще это уже даже не вертикальное выделение а произвольные мулти-каретки. потому что Shift+End дает выделения до конца строк любой длины. и тут уже "CudaExt разбиение" отказывается, оно для такого не работает. чисто-вертикальное выделение уже не помню как получить.
в консоли такая проверка на "вертикальное" -
ed.get_sel_mode()
дает 0 - это SEL_NORMAL. 1 - SEL_COLUMN.