Tool_Script Sửa Lỗi Chính Tả Tự Động Với EmEditor và Notepad++ Kết Hợp

  1. Big Bang

    Big Bang Thành viên kích hoạt

    Tham gia ngày:
    3/9/12
    Bài viết:
    391
    Được thích:
    130
    Sửa Lỗi Tự Động Với EmEditor và Notepad++ Kết Hợp


    EmEidtor là một editor rất mạnh mẽ và hỗ trợ macro javascript. Notepad++ là một editor nổi tiếng dành cho dân lập trình. Đáng tiếc cả hai đều không thỏa mãn được tất cả yêu cầu của người làm eBook. Một trong những yêu cầu nhiều người mong đợi nhất là sửa lỗi chính tả, đánh máy tự động theo danh sách, xóa text rác theo yêu cầu...

    EmEditor không nhận diện được chữ cái tiếng Việt có dấu. Nếu trong document của bạn có chuỗi "bí mật" và bạn tìm kiếm chuỗi "ậ" với option "whole word only", bạn sẽ thấy nó tìm thấy cả trường hợp chữ "ậ" bên trong từ "mật"!!!

    Notepad++ không bị lỗi nhận diện chữ cái tiếng Việt như vậy, nhưng nó không hỗ trợ macro bằng script và như vậy làm một macro bằng tay từ một danh sách vài trăm dòng mà không phạm lỗi là điệp vụ bất khả thi.

    Thật may là chúng ta vẫn có thể kết hợp các mặt mạnh của cả hai editor để đạt được mục đích của mình. Nói một cách ngắn gọn là dùng EmEditor để xử lý danh sách lỗi rồi tạo ra một macro cho Notepad++. Việc thực hiện sửa lỗi sẽ do macro của Notepad++ thực hiện.

    Script này độc lập với bộ script Easy eBook tôi viết trước đó. Bạn không cần cài Easy eBook để chạy script này.

    Hướng dẫn cài đặt và sử dụng:

    1. Cài đặt
    - Download EmEditor ở EmEditor Homepage
    - Download Notepad++ ở Notepad++ Homepage
    - Download script Auto Correct từ Mediafire.com
    - Cài đặt EmEditor và Notepad++: bạn chấp nhận mặc định của chương trình cài đặt.
    - Auto Correct không cần cài đặt. Bạn bung file .RAR ra một chỗ nào đó, thí dụ vào Desktop.

    2. Chuẩn bị EmEditor và Notepad++ để có thể dùng được với Auto Correct
    - bạn mở file error_list.ebi của Auto Correct bằng EmEditor: trong Windows Explorer click chuột phải vào error_list.ebi rồi chọn EmEditor
    - Chọn Menu Tools-->Properties for Current Configuration
    - Chọn tab Highlight (2)
    - Có 2 ô Line Comment, trong ô thứ nhất bạn gõ vào _COMMENT_ . Chú ý gõ nguyên văn giống như tôi, bao gồm cả viết hoa và dấu gạch dưới.
    - Bạn nhấn nút OK. Nếu bạn làm đúng bạn sẽ thấy những dòng bắt đầu bằng _COMMENT_ sẽ chuyển sang màu xanh lá.
    - Bạn mở Windows Explorer ra, gõ %appdata%\Notepad++ vào Address Bar rồi nhấn Enter, bạn sẽ thấy thư mục chứa các file cần thiết để chạy Notepad++. Bạn backup file shortcuts.xml và đừng để mất. Chúng ta sẽ can thiệp vào file này nên bạn cần phải backup nó để phòng trường hợp có lỗi.
    3. Thêm file script "generate_npp_macro.jsee" vào danh sách script của EmEditor
    - Trong EmEditor bạn chọn menu Macros-->Customize...
    - Trong hộp thoại Customize Macros chọn tab My Macros
    - Nhấn nút New rồi chọn file generate_npp_macro.jsee của Auto Correct, nhấn Open
    - Nếu bạn làm đúng, khi nhấn vào menu Macros bạn sẽ nhìn thấy macro generate_npp_macro.jsee. Nó ở được thêm vào ở phần bên dưới của menu Macros

    4. Tạo macro sửa lỗi bằng EmEditor
    - Trong EmEditor bạn mở file error_list.ebi của gói Auto Correct
    - Chọn menu Macros-->generate_npp_macro.jsee
    Chú ý: macro chỉ chạy trên file error_list.ebi, nếu bạn chạy macro trên một file khác nó sẽ báo lỗi
    - Code macro sửa lỗi được tạo ra trong một document mới của EmEditor.
    - Bạn tắt Notepad++ đi. Trong thời gian cập nhật macro sửa lỗi tự động Notepad++ phải tắt, nếu không nó sẽ xóa macro của bạn.
    - Bạn mở file shortcuts.xml bằng EmEditor.
    - Bạn thêm vài dòng trống phía trên dòng có thẻ </Macros>. Chú ý chữ Macros ở đây có "s", đừng nhầm với các thẻ </Macro> (không có "s") khác.
    - Bạn copy đoạn code sửa lỗi tự động mà EmEditor vừa tạo ra vào chỗ mấy dòng trống đó. Đoạn code phải ở ngay trên thẻ </Macros>.
    - Bạn Save As... file shortcuts.xml với tên như cũ nhưng với EncodingBinary (ASCII View) : ở dropdown box ngay bên cạnh nút Save bạn chọn Binary (ASCII View) trong danh sách rồi nhấn nút Save
    - Trong EmEditor bạn đóng file shortcuts.xml lại.
    - Mở Notepad++ ra. Nếu bạn làm đúng ở menu Macro của Notepad++ bạn sẽ tìm thấy mục Correct Misspelling. Đó chính là macro bạn vừa tạo ra.

    5. Chạy macro Correct Misspelling
    Bạn mở file muốn sửa lỗi bằng Notepad++ rồi chọn menu Macro-->Correct Misspelling

    6. Cập nhật macro Correct Misspelling
    - Bạn mở file gen_error_list.xlsx của bộ macro Auto Correct và tạo các luật sửa lỗi theo hướng dẫn trong đó.
    - Bạn copy các luật sửa lỗi ở cột Correction Rule vào một document trống của EmEditor.
    - Trong EmEditor bạn thay các chuỗi _LINE_BREAK_ bằng xuống dòng (tương đương với nhấn Enter)
    + Chuyển dấu nháy về đầu document: nhấn Ctrl+Home
    + Nhấn Ctrl+H để gọi ra hộp thoại Find/Replace
    + Gõ _LINE_BREAK_ vào ô Find\r\n vào ô Replace With
    + Chọn option Use Regular Expressions
    + Nhấn nút Replace All rồi đóng hộp thoại Find/Replace lại. Lúc này bạn đã có một danh sách sửa lỗi cập nhật

    - Bạn mở file error_list.ebi ra, xóa tất cả text ở giữa hai dòng _COMMENT_: BẮT ĐẦU DANH SÁCH LỖI_COMMENT_: KẾT THÚC DANH SÁCH LỖI
    - Copy danh sách sửa lỗi cập nhật bạn vừa tạo ra vào giữa hai dòng _COMMENT_: BẮT ĐẦU DANH SÁCH LỖI_COMMENT_: KẾT THÚC DANH SÁCH LỖI
    - Save file error_list.ebi
    - Làm lại bước 4. Tạo macro sửa lỗi bằng EmEditor. Chú ý trước khi bạn copy đoạn code mới bạn phải xóa hết đoạn code cũ trong file shortcuts.xml. Macro sửa lỗi tự động bắt đầu bằng dòng:
    <Macro name="Correct Misspelling" Ctrl="no" Alt="no" Shift="no" Key="0">
    và kết thúc bằng dòng </Macro> gần nhất ở bên dưới nó. Nếu danh sách sửa lỗi của bạn dài thì 2 dòng này có thể cách nhau khá xa. Đừng nhầm với dòng </Macros>, nếu bạn xóa dòng này, bạn sẽ phải cần đến file backup của shortcuts.xml.

    Bonus: Macro của Notepad++

    Đây là macro của Notepad++ đã được làm sẵn, chỉ cần copy vào là chạy.

    1. Download file macro của Notepad++ tại đây và giải nén.
    2. Tắt notepad++.
    3. Mở Windows Explorer và gõ %appdata%\Notepad++ vào Address Bar
    4. Backup file shortcuts.xml
    5. copy file shortcuts.xml vừa download về đè lên file cũ.

    Sử dụng: Mở file muốn sửa lỗi hoặc xóa khoảng trắng rồi chạy macro tương ứng.

    Ghí chú: macro sửa lỗi chính tả dành cho text vừa scan xong, chưa sửa chữa gì.

    PS: Cập nhật 10:30, 19-6-2014
     
    Chỉnh sửa cuối: 25/6/14
  2. cuonghv

    cuonghv Thành viên kích hoạt

    Tham gia ngày:
    10/2/11
    Bài viết:
    15,327
    Được thích:
    38,788
    Re: Sửa Lỗi Tự Động Với EmEditor và Notepad++ Kết Hợp

    Ta vẫn mơ hồ...

    Nguyên tắc chung của nó là người dùng phải tạo riêng một danh sách có hai cột đúng-sai? Sau đó dựa trên danh sách này để kiểm tra bằng marco trên Notepad++?
    Hay nó nhận biết từ sai dựa theo thuật toán của lão?
     
  3. Big Bang

    Big Bang Thành viên kích hoạt

    Tham gia ngày:
    3/9/12
    Bài viết:
    391
    Được thích:
    130
    Re: Sửa Lỗi Tự Động Với EmEditor và Notepad++ Kết Hợp

    Người dùng phải tự lập danh sách, sau đó tạo macro cho Notepad++ để sửa hàng loạt theo danh sách đó.

    Khi danh sách thay đổi phải cập nhật lại macro. Công đoạn mất nhiều thời gian công sức nhất là tạo danh sách. File excels đi kèm sẽ trợ giúp lập danh sách. Dep đã có danh sách 2 cột Find what=Replace with hơn ngàn dòng, copy nó vào file excels chỉ mất vài phút. Type và Option cũng nhanh, trong excels kéo-thả một cái là có thể nhân bản hàng loạt.

    Macro này ta đã disable Undo nên sẽ chạy nhanh hơn nhiều so với để Undo. Trong EmEditor ta không có cách nào disable Undo nên đụng truyện dài hơn 1k chương nó chạy chậm vãi. Em Editor và Notepad++ là hai chương trình khác nhau nên phải test mới biết thằng nào nhanh chậm. Công đoạn xóa text thừa và chuẩn hóa text tốn nhiều thời gian chạy máy nhất nhưng cũng may là chỉ toàn lệnh Replace All nên có thể dùng tool này để tạo macro cho Notepad++. Nếu mọi người muốn thử ta sẽ làm, nhưng khi thử phải feed back kết quả cho ta vì ta sẽ viết plugin cho Notepad++ khi có thời gian.
     
  4. Big Bang

    Big Bang Thành viên kích hoạt

    Tham gia ngày:
    3/9/12
    Bài viết:
    391
    Được thích:
    130
    Re: Sửa Lỗi Tự Động Với EmEditor và Notepad++ Kết Hợp

    @Dep: lão cho cái danh sách lỗi mới nhất nhé. Phải có data thật mới test được. Thanks.
     
  5. Decepticon

    Decepticon Thành viên kích hoạt

    Tham gia ngày:
    24/4/13
    Bài viết:
    951
    Được thích:
    269
    Re: Sửa Lỗi Tự Động Với EmEditor và Notepad++ Kết Hợp

    Bản cũ lão Big làm trước đây
    Tuy có trục trặc với Whole Word nhưng rất tiện nếu replace bình thường và Match Case


     
    Chỉnh sửa cuối: 1/8/14