Làm cách nào để đảo ngược một dòng trong Notepad ++?


12

Có thể đảo ngược một dòng trong Notepad ++ không?

Thí dụ:

Hello world

Sẽ thay đổi thành

dlrow olleH

Tôi có nên cài đặt một plugin cho chức năng như vậy?

CẬP NHẬT : Tôi muốn giữ bảng tạm ở trạng thái ban đầu. Vì vậy, một [bản sao] - [biến đổi bên ngoài] - [dán] là không phù hợp.

Ngoài ra, tôi muốn ở trong một môi trường máy tính để bàn bị ngắt kết nối, vì vậy mọi giải pháp dịch vụ trực tuyến đều không phù hợp.

Câu trả lời:


6

Bạn có thể thực hiện tìm kiếm lặp và thay thế để đảo ngược chuỗi, sau khi bạn đã đánh dấu phần đầu của chuỗi bằng một ký tự đặc biệt (tôi sử dụng ký hiệu phần trăm% trong ví dụ)

Tìm kiếm: (%)(.*)(.)

thay thế: \3\1\2

bật "biểu thức chính quy" trong tìm kiếm và thay thế.

Lặp lại thao tác cho đến khi chuỗi được đảo ngược.


2
Điều này có thể mệt mỏi trong một thời gian dài, nhưng đó là một giải pháp khá hay vì nó vẫn "bên trong" môi trường của NPP.
Ron Klein

3

CẬP NHẬT: Tôi đã thêm một tập lệnh "đảo ngược văn bản clipboard" của Python-3.
Kịch bản Python-3 này phục vụ cho văn bản Unicode; I E. tất cả văn bản ...

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

Vì chưa có giải pháp tích hợp nào được trình bày (nên), tôi sẽ đề cập đến công cụ Unix.

Tải xuống các tiện ích được đề cập trong nguồn (bên dưới) và đặt chúng vào thư mục PATH'd.
Đưa mã (bên dưới) vào tệp .cmd và gọi nó là bất cứ thứ gì bạn thích. (tất nhiên là nó phải nằm trong thư mục PATH'd).
Tạo lối tắt Windows tới .cmd (đặt nó ở đâu đó trong StartMothy của bạn và đặt nó để chạy ở mức tối thiểu) ... và đánh dấu Shortcut-Hotkey cho nó.

Sau đó, bạn có thể sao chép văn bản bạn chọn vào bảng tạm và nhấn Hotkey ... Xong! .. văn bản đảo ngược thay thế văn bản đã chọn.

Nếu bạn thích, bạn có thể thiết lập macro NotePad ++ để chọn và sao chép toàn bộ một dòng .. (lưu ý các char (dòng) mới ở cuối văn bản.

Ngoài ra, như đã đề cập trong các ghi chú nguồn. Workd này cho các bộ ký tự byte đơn ..

sed.exe có thể xử lý Unicode, nhưng tôi vẫn chưa giải quyết được vấn đề đó ... Nếu bạn tình cờ biết cách làm điều này, xin vui lòng đăng thông tin, ở đây hoặc có lẽ trong bài đăng của tôi về một vấn đề cụ thể về vấn đề này. : can-gnu-sed-for-windows-handle-unicode

Đây là sed.exe phiên bản:

@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  

Đây là Python-3phiên bản:

##==============================================##
## 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() 

Hoạt động tuyệt vời với python 2.5 trên windows. Ngọt!
Dennis

Điều này thay đổi trạng thái của clipboard. Tôi muốn tránh điều này. Tuy nhiên, nếu nó hoạt động, tôi có thể chấp nhận điều đó.
Ron Klein

2

Nếu bạn không cần phải làm điều đó thường xuyên, bạn có thể sao chép dòng vào công cụ trực tuyến này để thực hiện đảo ngược.


Ý tưởng hay, nhưng vấn đề là tiếp tục làm việc bên trong môi trường Notepad ++ và không đi đến bất kỳ tài nguyên bên ngoài nào (trình duyệt).
Ron Klein

Thật không may là công cụ ngoại tuyến
Antonio

2

Tôi nhận ra điều này sử dụng một công cụ khác, nhưng bạn có thể đảo ngược văn bản trong Excel và sau đó sao chép lại. Tạo một bảng tính và thêm macro này:

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

Nếu bạn có ý định sử dụng tính năng này thường xuyên, hãy gán macro cho một nút trên thanh công cụ để dễ dàng truy cập. Sao chép một số văn bản vào bất kỳ ô. Đảm bảo ô được chọn và chạy macro. Sao chép văn bản đã tạo trở lại Notepad ++.

Đáng ngạc nhiên là tính năng đơn giản này không có sẵn trong Notepad ++ hoặc thông qua một plugin như TextFX.


1

Plugin BinHex phiên bản 2.0 của Notepad ++ có chức năng đảo ngược Chuỗi được triển khai.

Bạn có thể đánh dấu chuỗi cần đảo ngược và nhấn Ctrl+ R.


0

Một phần mở rộng ý tưởng của gor nếu chuỗi của bạn ít hơn mười ký tự:
Tạo một macro của điều này.
Làm nổi bật vùng mong muốn trong N ++

Tìm kiếm:

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

thay thế:

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

thay thế trong lựa chọn: kiểm tra

N ++ chỉ hỗ trợ mười nhóm, vì vậy đó là tất cả những gì bạn nhận được, nhưng ít nhất nó cũng có mười chữ cái cùng một lúc.

Không có chủ đề, công cụ regex của IE khác với công cụ regex liên quan đến các loại regex này, vì vậy điều này có thể thực hiện được trong IE mà không cần lặp lại.


0
  1. Chọn văn bản để đảo ngược.
  2. Chia nó thành nhiều dòng bằng cách sử dụng cửa sổ Thay thế bằng lựa chọn Trong và biểu thức Chính quy được chọn để Thay thế Tất cả (.) Bằng \ n \ 1
  3. Chọn lại văn bản (vì một số lý do, ký tự cuối cùng bị loại khỏi vùng chọn sau bước 2).
  4. Sử dụng câu trả lời để đảo ngược thứ tự dòng trong Notepad ++ để đảo ngược các dòng.
  5. Kết hợp lại các dòng bằng cách sử dụng cửa sổ Thay thế với Trong lựa chọn và Mở rộng được chọn để Thay thế Tất cả \ n bằng một chuỗi trống.
  6. Bạn có thể cần phải loại bỏ các dòng mới.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.