Как я могу перевернуть строку в Notepad++?
Можно ли перевернуть одну строку в Notepad++?
Пример:
Hello world
Изменится на
dlrow olleH
Должен ли я установить плагин для такой функциональности?
ОБНОВЛЕНИЕ: я хотел бы сохранить буфер обмена в его первоначальном состоянии. Поэтому [копия]-[внешнее преобразование]-[вставка] не подходит.
Кроме того, я хотел бы остаться в автономной среде рабочего стола, поэтому любое решение для онлайн-обслуживания не подходит.
7 ответов
Вы можете выполнить итеративный поиск и заменить, чтобы перевернуть строку, после того как вы пометили начало строки специальным символом (я использую знак процента% в примере)
поиск: (%)(.*)(.)
заменить: \3\1\2
включить "регулярные выражения" в поиске и замене.
повторяйте операцию, пока строка не перевернется.
ОБНОВЛЕНИЕ: я добавил Python-3 сценарий "реверса буфера обмена".
Этот скрипт Python-3 обслуживает текст Unicode; то есть. весь текст...
# original # Ĥĕłłō ŵōŗłđ in Unicode
# reversed # edocinU ni đłŗōŵ ōłłĕĤ
Поскольку ни одно интегрированное решение не было представлено (пока), я упомяну обходной путь Unix-tools.
Загрузите утилиты, упомянутые в источнике (ниже), и поместите их в папку PATH'd.
Вставьте код (ниже) в файл.cmd и назовите его как угодно. (это, конечно, должно быть в папке PATH'd).
Создайте ярлык Windows для.cmd (поместите его где-нибудь в StartMenu и установите для него минимизированный запуск)... и назначьте ему горячую клавишу быстрого доступа.
Затем вы можете просто скопировать текст по вашему выбору в буфер обмена и нажать горячую клавишу... Готово! .. перевернутый текст заменяет выделенный текст.
Если вы предпочитаете, вы можете настроить макрос NotePad++ для выделения и копирования всей строки.. (обратите внимание на символы новой строки в конце текста.
Также, как указано в примечаниях источника. Это работает для однобайтовых наборов символов.
sed.exe
может быть в состоянии справиться с Unicode, но я еще не совсем решил этот вопрос... Если вам случится знать, как это сделать, пожалуйста, опубликуйте информацию, либо здесь, либо, возможно, в моем сообщении о конкретном вопросе об этой проблеме: can-gnu-sed-for-windows-handle-unicode
Это sed.exe
версия:
@echo off
::==============================================::
:: FUNCTION: Reverse the text in the clipboard. ::
:: 8-bit characters only (ANSI). ::
:: It removes all \r and \n characters, because ::
:: because sed.exe adds a trailing line-feed ::
:: Four `NIX utilities are used. ::
:: 2 gclip.exe (GNU) ::
:: 1 pclip.exe (GNU) ::
:: 3 gsed.exe (GNU) ::
:: 4 tr.exe (is `NIX, but maybe not GNU) ::
::==============================================::
> "%temp%\%n0.sed" echo /\n/!G
>> "%temp%\%n0.sed" echo s/\(.\)\(.*\n\)/^&\2\1/
>> "%temp%\%n0.sed" echo //D
>> "%temp%\%n0.sed" echo s/.//
pclip.exe | sed.exe -f "%temp%\%n0.sed" | tr.exe -d "\r\n" | gclip.exe
del "%temp%\%n0.sed"
goto :eof
Здесь Python-3
версия:
##==============================================##
## FUNCTION: Reverse the text in the clipboard. ##
## The text is handled as unicode. ##
## Using Python-3.1.2 ##
## with Python-Win32-extensions for Python-3.1 ##
##==============================================##
import win32clipboard as w
w.OpenClipboard()
## CF_UNICODETEXT == 13
s=w.GetClipboardData(13)
w.SetClipboardData(13,s[::-1])
w.CloseClipboard()
Если вам не нужно делать это так часто, вы можете скопировать строку в этот онлайн-инструмент для изменения.
Я понимаю, что для этого используется другой инструмент, но вы можете перевернуть текст в Excel и затем скопировать его обратно. Создайте электронную таблицу и добавьте этот макрос:
Sub ReverseText()
Cells(Selection.Row, Selection.Column + 1) = StrReverse(Selection.Value)
End Sub
Если вы собираетесь использовать эту функцию регулярно, назначьте макрос кнопке на панели инструментов для быстрого доступа. Скопируйте текст в любую ячейку. Убедитесь, что ячейка выбрана, и запустите макрос. Скопируйте сгенерированный текст обратно в Блокнот ++.
Удивительно, что эта простая функция недоступна в Notepad++ или через такой плагин, как TextFX
,
В плагине BinHex версии 2.0 для Notepad++ реализована функция перестановки строк.
Вы можете отметить строку, которая должна быть перевернутой, и нажать Ctrl+R.
Расширение идеи Гора, если ваша строка меньше десяти символов:
Сделайте макрос этого.
Выделите нужную область в N++
поиск:
(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)
заменить:
\9\8\7\6\5\4\3\2\1
заменить в выборе: проверено
N++ поддерживает только десять групп, так что это все, что вы получаете, но, по крайней мере, он делает десять букв одновременно.
Не по теме, механизм регулярных выражений IE отличается от принятого в отношении такого рода регулярных выражений, поэтому это может быть осуществимо в IE без итераций.
- Выберите текст для реверса.
- Разбейте его на несколько строк, используя окно "Заменить" с выбором "В" и выбрав Регулярное выражение, чтобы заменить все (.) На \n\1
- Выделите текст еще раз (по какой-то причине последний символ остается вне выделения после шага 2).
- Используйте ответ на Обратный порядок строк в Notepad++, чтобы повернуть строки.
- Перекомбинируйте строки, используя окно "Заменить" с выделенным "В" и "Расширенное", чтобы заменить все \ n пустой строкой.
- Возможно, вам придется удалить посторонние переводы строк.