Як я можу повернути рядок у Блокноті ++?


12

Чи можливо повернути один рядок у Блокноті ++?

Приклад:

Hello world

Змінився б на

dlrow olleH

Чи варто встановити плагін для такої функціональності?

ОНОВЛЕННЯ : Я хотів би зберегти буфер обміну в початковому стані. Тож [копія] - [зовнішнє перетворення] - [вставка] не підходить.

Крім того, я хотів би залишитися в відключеному середовищі робочого столу, тому будь-яке рішення в Інтернеті не підходить.

Відповіді:


6

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

пошук: (%)(.*)(.)

замінити: \3\1\2

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

повторюйте операцію, поки рядок не буде змінено.


2
Це може бути виснажливим для довгої лінії, але це цілком приємне рішення, оскільки воно все ще знаходиться "в" середовищі АЕС.
Рон Кляйн

3

ОНОВЛЕННЯ: Я додав сценарій Python-3 "перевернути текст буфера обміну".
Цей сценарій Python-3 обслуговує текст Unicode; тобто. весь текст ...

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

Оскільки ще не було представлено інтегрованого рішення, я згадаю про обробку інструментів Unix.

Завантажте утиліти, згадані у джерелі (нижче), і помістіть їх у папку 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() 

Чудово працює і з python 2.5. Солодке!
Денніс

Це змінює стан буфера обміну. Я хотів би цього уникнути. Однак, якщо це працює, я можу це прийняти.
Рон Кляйн

2

Якщо вам цього не потрібно, часто ви можете скопіювати рядок у цей онлайн-інструмент, щоб зробити реверс.


Хороша ідея, але справа в тому, щоб продовжувати працювати всередині середовища Notepad ++, а не переходити на будь-який зовнішній ресурс (браузер).
Рон Кляйн

Інструмент, на жаль, офлайн
Антоніо

2

Я розумію, що для цього використовується інший інструмент, але ви можете повернути текст в Excel і потім скопіювати його назад. Створіть електронну таблицю та додайте цей макрос:

Sub ReverseText()
    Cells(Selection.Row, Selection.Column + 1) = StrReverse(Selection.Value)
End Sub

Якщо ви маєте намір регулярно використовувати цю функцію, призначте макрос кнопці на панелі інструментів для легкого доступу. Скопіюйте текст у будь-яку клітинку. Переконайтесь, що клітинка обрана та запустіть макрос. Скопіюйте створений текст назад у Блокнот ++.

Дивно, що ця проста функція недоступна в Notepad ++ або через плагін, як-от TextFX.


1

У плагіні BinHex версії 2.0 Notepad ++ реалізована функція реверсу String.

Ви можете позначити рядок, який слід перевернути, і натисніть Ctrl+ R.


0

Розширення ідеї Гор, якщо ваш рядок менше десяти символів:
Створіть макрос цього.
Виділіть потрібну область в N ++

пошук:

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

замінити:

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

Замінити у виборі: відмічено

N ++ підтримує лише десять груп, тож це все, що ви отримуєте, але принаймні це робить десять літер одночасно.

Поза темою, механізм регулярного виразів IE відрізняється від прийнятого стосовно цього виду регулярних виразів, тому це може бути здійснено в IE без ітерацій.


0
  1. Виберіть текст для зворотного перегляду.
  2. Розбийте його на кілька рядків, скориставшись вікном Замінити на вибір In та Вибір регулярного виразу для заміни всіх (.) На \ n \ 1
  3. Виберіть текст ще раз (чомусь останній символ залишається поза вибором після кроку 2).
  4. Скористайтеся відповіддю на зворотний порядок рядків у Блокноті ++, щоб змінити рядки.
  5. Рекомбінуйте рядки, скориставшись вікном Замінити на вибір In та Розширеним вибраним, щоб замінити всі \ n порожнім рядком.
  6. Можливо, вам доведеться видалити сторонні нові рядки.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.