Как я могу инвертировать строку в Блокноте ++?

Действительно ли возможно инвертировать одну строку в Блокноте ++?

Пример:

Hello world

Изменился бы на

dlrow olleH

Я должен установить плагин для такой функциональности?

ОБНОВЛЕНИЕ: я хотел бы сохранить буфер обмена в его исходном состоянии. Так [копия] - [внешнее преобразование] - [вставка] не подходит.

Кроме того, я хотел бы остаться в разъединенной настольной среде, таким образом, любое решение для онлайн-сервиса не подходит.

12
задан 21.08.2011, 07:46

3 ответа

ОБНОВЛЕНИЕ: Я добавил, что Python 3 "инвертирует текстовый сценарий" буфера обмена.
Этот сценарий Python 3 обслуживает текст Unicode; т.е. весь текст...

# original # Ĥĕłłō ŵōŗłđ in Unicode  
# reversed # edocinU ni đłŗōŵ ōłłĕĤ  

Поскольку никакое интегрированное решение (еще) не было представлено, я упомяну обходное решение инструментов Unix.

Загрузите утилиты, упомянутые в источнике (ниже), и поместите их в папку PATH'd.
Вытолкайте код (ниже) в .cmd файл и назовите его чем-либо, что Вы любите. (это к, должен, конечно, быть в папке PATH'd).
Создайте ярлык Windows на .cmd (поместите его где-нибудь в Ваш StartMenu и установите его для выполнения минимизированный)... и assighen Горячая клавиша Ярлыка к нему.

Можно затем просто скопировать текст по Вашему выбору в буфер обмена и нажать Горячую клавишу... Готово!.. обратный текст заменяет выделенный текст.

Если Вы предпочитаете, чтобы можно было создать NotePad ++ макрос, чтобы выбрать и скопировать всю строку.. (примите во внимание символ (символы) новой строки в конце текста.

Кроме того, как упомянуто в исходных примечаниях. Этот мир для наборов символов единственных байтов..

sed.exe смогите обрабатывать Unicode, но я еще не вполне разработал это один... Если Вы, оказывается, знаете, как сделать это, отправьте информацию, или здесь или возможно в моей регистрации определенного qustion примыкают к этой проблеме: 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() 
3
ответ дан 07.12.2019, 11:59

Можно сделать выполненный с помощью итераций поиск и замену для инвертирования строки после маркировки начала строки со специальным символом (я использую % знака процента в примере),

поиск: (%)(.*)(.)

замена: \3\1\2

включите "регулярные выражения" в поиске и замене.

повторите операцию, пока строка не будет инвертирована.

6
ответ дан 07.12.2019, 11:59

Если Вы не должны делать этого, что часто Вы могли скопировать строку в этот сетевой инструмент, чтобы сделать реверсирование.

2
ответ дан 07.12.2019, 11:59

Расширение идеи gor, если Ваша строка является менее затем десятью символами:
Сделайте макрос из этого.
Выделите желаемую область в N ++

поиск:

(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)

замена:

\9\8\7\6\5\4\3\2\1

замена в выборе: проверенный

N ++ только поддерживает десять групп, таким образом, это - все, что Вы получаете, но по крайней мере это делает десять букв сразу.

Вне темы regex механизм IE отличается, чем принятый в отношении подобных regex's, таким образом, это могло бы быть выполнимо в IE без повторений.

0
ответ дан 07.12.2019, 11:59

Теги

Похожие вопросы