Python Scripts to Change Selected Text from SBC to DBC in Notepad++


When I use Google pinyin, sometimes, it’s in SBC (全角) mode; the typed text would be SBC cases, such as “hello world”, the typed text is totally useless to me. In the past, I have to delete them and retype. This sucks and time wasted.

So after learned from http://npppythonscript.sourceforge.net/ that: we can use python scripts to extend notepad++ function easily, so I decide to write a notepad++ addon, which can change the selected text from SBC cases to DBC cases.
So now, I only need select the text, click button in the toolbar, the text will be changed from SBC to DBC cases, from "hello world" to "hello world". 

Life is much easier now :)

The complete code is as below:

def SBCToDBC(ustring):
    '''From http://bbs.chinaunix.net/thread-1762033-1-1.html'''
    result = ''
    for uchar in ustring:
        inside_code = ord(uchar)
        if inside_code == 12288:
            inside_code = ' ';
        elif not inside_code in range(32, 127):
            inside_code -= 65248;            
        if inside_code in range(32, 127):
            result += unichr(inside_code).encode('utf-8', 'ignore');
        else:
            result +=uchar;                    
    return result.encode('utf-8', 'ignore');

selected = editor.getSelText().decode('utf8');
reversed = SBCToDBC(selected) 
editor.replaceSel(reversed);


About how to install the PythonScript, create a user python script, run it from Scripts submenu, assign the script to the toolbar, or assign it a shortcut, please read http://npppythonscript.sourceforge.net/docs/latest/usage.html#installation.
Post a Comment

Labels

Java (159) Lucene-Solr (110) All (60) Interview (59) J2SE (53) Algorithm (37) Eclipse (35) Soft Skills (35) Code Example (31) Linux (26) JavaScript (23) Spring (22) Windows (22) Web Development (20) Tools (19) Nutch2 (18) Bugs (17) Debug (15) Defects (14) Text Mining (14) J2EE (13) Network (13) PowerShell (11) Chrome (9) Continuous Integration (9) How to (9) Learning code (9) Performance (9) UIMA (9) html (9) Design (8) Dynamic Languages (8) Http Client (8) Maven (8) Security (8) Trouble Shooting (8) bat (8) blogger (8) Big Data (7) Google (7) Guava (7) JSON (7) Problem Solving (7) ANT (6) Coding Skills (6) Database (6) Scala (6) Shell (6) css (6) Algorithm Series (5) Cache (5) IDE (5) Lesson Learned (5) Miscs (5) Programmer Skills (5) System Design (5) Tips (5) adsense (5) xml (5) AIX (4) Code Quality (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Memory Usage (4) OpenNLP (4) Project Managment (4) Python (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Become a Better You (3) Concurrency (3) Eclipse RCP (3) English (3) Firefox (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Distributed (2) Fiddler (2) Google Drive (2) Gson (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Life (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Bit Operation (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Mac (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) Review (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Troubleshooting (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts