Highlights

Special stuff

  • sync workstation prefs, plugins, keymaps
  • fuzzy search "SHIFT+SHIFT"
  • Default Layout customizable
  • Plug-in marketplace (CodeGlance, QuickFilePreview (VsCode wannabe)
  • All-in-one management of Python Console,

Matlab-like features

  • Run / Debug (can override shortcut keys

Super-integrated Git

  • Commit with CTRL+K (Push with CTRL+ALT+K)

Native Jupyter Notebook support

  • run ipython has markdown,
  • manage server
  • inline, realtime MD rendering ($e^{i\pi} + 1 = 0$)

Plugins

Ipython

  • Introduction and overview of IPython’s features. %quickref
  • Quick reference. help
  • Python’s own help system. object?
  • Details about ‘object’, use ‘object??’ for extra details.
  • auto-reload modules & libraries with [1-%load_ext autoreload, 2-%autoreload 2]

In [1]:
# % jupyter qtconsole
%connect_info


{
  "shell_port": 64532,
  "iopub_port": 64533,
  "stdin_port": 64534,
  "control_port": 64535,
  "hb_port": 64536,
  "ip": "127.0.0.1",
  "key": "0ee93feb-820a057087b1335a7d79f966",
  "transport": "tcp",
  "signature_scheme": "hmac-sha256",
  "kernel_name": ""
}

Paste the above JSON into a file, and connect with:
    $> jupyter <app> --existing <file>
or, if you are local, you can connect with just:
    $> jupyter <app> --existing kernel-eba1699c-4c8d-4e54-ad98-4821aeff5899.json
or even just:
    $> jupyter <app> --existing
if this is the most recent Jupyter kernel you have started.

In [2]:
import qtconsole
# %qtconsole
# jupyter qtconsole
%qtconsole

In [3]:
for i in range(0,5):
    print(i)


0
1
2
3
4

In [4]:
import matplotlib.pyplot as plt
plt.plot([1,2,3], [1,3,4], marker='o', markersize=14, markerfacecolor='red', 
         linewidth=2, markeredgewidth=2)
plt.title('plotTitle', fontname='Comic Sans MS', fontsize=28)
plt.show()
print('plotshown')


<Figure size 640x480 with 1 Axes>
plotshown

Debug features

  • overview at JetBrains
  • blue bits in the gutter are stuff changed since last checkin
  • run configuration concept
    • drop to console automatically at the end (Command window, after script)
    • complete at the end
  • listing all breakpoints in all files in the project.
    • preserving breakpoints across PyCharm restarts
  • To show separator lines between methods in the editor, open the editor settings and select the Show method separators check box in the Appearance page.
  • remap CTRL+SHIFT+F10 to F5, so that it'll run the current file.
  • import default stuff immediately by customizing the BUILD/EXECUTION/DEBUGGER -> CONSOLE -> (code here, incl def. imports). Also, "from matlablib import *" to have access to my functions.
  • Overwrite with IPython to get magics. USe magics to auto-reload modules (if you need to)
  • run notebooks
  • CTRL+TAB to flip back and forth
  • Built in code-profiling in RUN-profiles
  • embed() will drop to console immediately without running rest of script
  • inside function(|) type "Ctrl+P" to get suggestions on how to fill it in

IPython magics:

  • run file with "%run Analysis-On-My-Words.py"
  • embed() drops to console

shortcuts i customized

* alt < and alt+> , back, and forward

* CTRL+ENTER - execute cell

* F9 - execute selection

See Settings->Editor->General->Smart Keys CTRL+SHIFT+A SEARCh actions CTRL+ALT+INSERT paste from memory

Notes

  • CTRL+G, goto line
  • CTRL+SHIFT+G, enable/disable code previe plugin
  • CTRL+Q, documentation
  • CTRL+SPACE, autocomplete popup
  • SHIFT,SHIFT, search chord
  • CTRL+SHIFT+F12, shortcut keys
  • CTRL+DELETE greedy delete to end of word
  • CTRL+SHIFT+Delete Delete line
  • ATL+SHIFT+C show recent history
  • CTRL+SPACE autocomplete popup
  • ALT+`, python console window toggle, JUMPS CURSOR
  • CTRL+TAB toggle edit locations (!!)
  • ALT+ L/RIGHT, previous/next editing position
  • SHIFT+SPACE jump out from cursor (RIGHT
  • TAB, jump outside of closing bracket
  • SHIFT+ENTER, new line inside of closing bracket
  • CTRL+E open recent files
  • CTRL+ALT+L/R Next/Prev tab
  • CTRL+W Close current tab
  • CTRL+SHIFT+S Settings
  • CTRL+D declaration or useage (jump to)
  • F4 jump to source
  • CTRL+SHIFT+UP/DOWN - in editor window makes larger/smaller
  • CTRL+ALT+SHIFT+N Instantly go to definition (start typing, say "cc")

Execution

  • F5 replace CTRL+SHIFT+F10 (Run Context Configuration) with F5 to run any script

Multi-cursor

  • MULTICURSOR
    • CTRL+CTRL(HOLD) + UP/DOWN to insert cursors
    • press Alt+L_BUTTON_CLICK and select the caret locations with the mouse
    • ?TODO or press Ctrl+G to add the next occurrence of the current word to the selection
    • ?TODO delete from the selection, press Ctrl+Shift+G.
  • SHIFT+DELETE, deletes entire row
  • ALT+SHIFT+INSERT, Mouse BLOCK Selection Mode
  • CTRL+UP/DOWN, jump to next cell
  • CTRL + SHIFT+INSERT, paste from clipboard

Selection

  • CTRL+PgUp, extend selection
  • CTRL+PgDn, contract selection
  • CTRL+SHIFT+ UP or DOWN drags line up and down
  • SHIFT+CTRL+ALT+J selects and joins all element at cursor, REF
  • CTRL+SHIFT+D duplicate selection

GIT

  • CTRL+K, commit
  • CTRL+ALT+K, commit and push

In Editor

  • CTRL+ALT+INSERT New File

HELP

  • Disable Auto-Update from Source

Feature spotlight

  • select all occurrences: Shift + Ctrl + Alt + J, ref
  • my text
  • multicursor , REF

Environment

  • Settings>console> "Add whatever I want" import * from matlablib at every iPython console
  • iPython MAGICS commands!
  • clear variables and close graphs using cc()
  • drop to keyboard via assert(False)

#

#

print('done d')


In [4]: