Notepad ++で行を反転するにはどうすればよいですか?


12

Notepad ++で1行を逆にすることは可能ですか?

例:

Hello world

に変わります

dlrow olleH

そのような機能のプラグインをインストールする必要がありますか?

更新:クリップボードを元の状態に保ちたい。したがって、[コピー]-[外部変換]-[貼り付け]は適切ではありません。

さらに、切断されたデスクトップ環境に留まりたいので、どのオンラインサービスソリューションも適していません。

回答:


6

文字列の先頭を特殊文字でマークした後、反復検索と置換を実行して文字列を逆にすることができます(例ではパーセント記号%を使用しています)

探す: (%)(.*)(.)

交換: \3\1\2

検索および置換で「正規表現」を有効にします。

文字列が逆になるまで操作を繰り返します。


2
これは長い行では使い物にならないかもしれませんが、それはNPPの環境の「内部」にあるため、非常に優れたソリューションです。
ロンクライン

3

更新: Python-3の「クリップボードテキストの反転」スクリプトを追加しました。
このPython-3スクリプトはUnicodeテキストに対応しています。すなわち。すべてのテキスト...

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

(まだ)統合されたソリューションが提示されていないため、Unixツールの回避策について説明します。

ソース(下記)に記載されているユーティリティをダウンロードし、PATH'dフォルダーに入れます。
コード(下)を.cmdファイルにポップし、好きな名前を付けます。(もちろん、PATHされたフォルダーになければなりません)。
.cmdへのWindowsショートカットを作成し(StartMenuのどこかに配置し、最小化して実行するように設定します)...ショートカットホットキーを割り当てます。

次に、選択したテキストをクリップボードにコピーして、ホットキーを押すだけで完了です。..選択したテキストが反転テキストに置き換えられます。

必要に応じて、NotePad ++マクロを設定して、行全体を選択してコピーすることができます。(テキストの最後にある改行文字に注意してください。

また、ソースノートで述べたように。これは、シングルバイト文字セットで機能しました。

sed.exeユニコードを処理できるかもしれませんが、まだ十分に機能していません...これを行う方法を知っている場合は、ここに、またはこの問題に関する特定の質問の投稿に情報を投稿してください: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() 

Windows上のpython 2.5でもうまく機能します。甘い!
デニス

これにより、クリップボードの状態が変更されます。これを避けたいです。しかし、それが機能する場合、それを受け入れるかもしれません。
ロンクライン


2

これは別のツールを使用することを認識していますが、Excelでテキストを反転してからコピーして戻すことができます。スプレッドシートを作成して、このマクロを追加します。

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

この機能を定期的に使用する場合は、簡単にアクセスできるようにツールバーのボタンにマクロを割り当ててください。任意のセルにテキストをコピーします。セルが選択されていることを確認し、マクロを実行します。生成されたテキストをNotepad ++にコピーして戻します。

このシンプルな機能は、Notepad ++やのようなプラグインでは利用できないのは驚くべきことですTextFX


1

Notepad ++のBinHexプラグインバージョン2.0には、文字列リバース関数が実装されています。

逆にする必要がある文字列をマークして、Ctrl+を押すことができRます。


0

文字列が10文字未満の場合のgorのアイデアの拡張:
このマクロを作成します。
N ++で目的の領域を強調表示します

探す:

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

交換:

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

選択範囲で置換:チェック

N ++は10個のグループしかサポートしていないので、それだけで十分ですが、少なくとも10個の文字を一度に処理します。

トピックから外れて、IEの正規表現エンジンは、これらの種類の正規表現に関して受け入れられているものとは異なるため、これはIEで反復なしで実行できる場合があります。


0
  1. 反転するテキストを選択します。
  2. [選択]で[置換]ウィンドウを使用し、[すべて(。)を\ n \ 1で置換]に選択した正規表現を使用して、複数行に分割します。
  3. テキストを再度選択します(何らかの理由で、手順2の後、最後の文字が選択から除外されます)。
  4. Notepad ++で行の順序反転する回答を使用して、行を反転します。
  5. [置換]ウィンドウを使用して、[選択]および[拡張]を選択し、[すべての\ nを空の文字列で置換する]を使用して、行を再結合します。
  6. 無関係な改行を削除する必要がある場合があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.