Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Python Scripts to Reverse Words in Notepad++



Just another user python script that can reverse selected words in notepad++, such as from such as from types.core.services.projecta.codeexample.com" to "com.codeexample.projecta.services.core.types".

The complete code is as below:
# change this if the delimiter is not .
delimiter = ".";
selected = editor.getSelText();

reversed = delimiter.join(selected.split('.')[::-1]);
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.

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.

Notes on Python


pyCharm

Change Navigate -> Declaration shortcut to Cmd+click by Adding Mouse Shortcut

  • Original Ctrl+Click conflicts Mac’s right click

Assign Cmd+F to Find

Pass command arguments to python

  • Run->Edit configurations->“+” (add new config)->Python -> add Script params

Use requirements.txt to install dependences

  • if failed, run ./venv/bin/pip install -r requirements.txt in Terminal
Use ToolBox to upgrade pyCharm
Inspect long collection
  • Evaluate expression: print(list)

Add folder as source folder

Python

Prefer to use str.format over %

is vs ==

  • == checks equality, is checks identities
sys.argv
  • list of strings representing the arguments
  • sys.argv[0]: name of the script

os.chdir(“../..”)

  • Don’t change current directory
  • Don’t change state, hard to test, bug

Execute external commands

Gotcha

  • Python doesn’t support ++

Tools

python -m SimpleHTTPServer
| python -mjson.tool

Installing a different python 2.7

sudo yum install python27
rpm -ql python2.7-stack-2.7.12-1.9.g680e0d1.x86_64
/opt/python-2.7/bin/python

Pip

PIP Install on Mac: Operation Not Permitted
  • pip install –user
    • install the package into your own home directory
pip install –ignore-installed six

Debugging

pudb

python2.7 -m pip install pudb
python2.7 -m pudb.run s.py

logging

*args and **kwargs

Modules

Unit test

Misc

Labels

ANT (6) Algorithm (69) Algorithm Series (35) Android (7) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) JSON (7) Java (186) JavaScript (27) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) adsense (5) bat (8) regex (5) xml (5)