如何在 Notepad++ 中反转某一行?

如何在 Notepad++ 中反转某一行?

是否可以在 Notepad++ 中反转单行?

例子:

Hello world

将改为

dlrow olleH

我应该安装一个插件来实现这样的功能吗?

更新:我想让剪贴板保持原始状态。因此 [复制]-[外部变换]-[粘贴] 不合适。

此外,我希望留在断开连接的桌面环境中,因此任何在线服务解决方案都不合适。

答案1

在使用特殊字符标记字符串的开头后,您可以进行迭代搜索和替换以反转字符串(我在示例中使用百分号 %)

搜索:(%)(.*)(.)

代替:\3\1\2

在搜索和替换中启用“正则表达式”。

重复该操作,直到字符串反转。

答案2

如果你不需要经常这样做,你可以将这一行复制到这个在线工具进行逆转。

答案3

更新:我添加了一个 Python-3“反转剪贴板文本”脚本。
此 Python-3 脚本适用于 Unicode 文本;即所有文本...

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

由于尚未提出集成解决方案,因此我将提及一种 Unix 工具解决方法。

下载源代码中提到的实用程序(如下),并将它们放入 PATH 文件夹中。
将代码(如下)放入 .cmd 文件中,并随意命名。(当然,它也必须位于 PATH 文件夹中)。
为 .cmd 创建 Windows 快捷方式(将其放在“开始菜单”中的某个位置,并将其设置为最小化运行)... 并为其分配快捷方式热键。

然后,您只需将您选择的文本复制到剪贴板并按下热键...完成!..反转的文本将替换选定的文本。

如果您愿意,您可以设置一个 NotePad++ 宏来选择并复制整行..(请注意文本末尾的换行符)。

另外,正如源注释中提到的那样。这适用于单字节字符集。

sed.exe可能能够处理 Unicode,但我还没有完全解决这个问题...如果您碰巧知道如何做到这一点,请发布信息,可以在这里,也可以在我发布的有关此问题的特定问题中发布:适用于 Windows 的 GNU SED 可以处理 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() 

答案4

Notepad++的BinHex插件2.0版本实现了字符串反转功能。

您可以标记应该反转的字符串并按Ctrl+ R

相关内容