qtconsole
( ctrl-enter
λ₯Ό ν΅ν΄) λ° λ
ΈνΈλΆ(μ
λ΄μμ enter
μ ν΅ν΄)μμ ν μ€ μ
λ ₯μ μ¬λ¬ μ€ μ
λ ₯μΌλ‘ μ νν μ μμ΅λλ€. ν°λ―Έλ λ° μ½μ μ§μ
μ μ λν΄ μ΄μ κ°μ κ²μ μ»λ κ²μ΄ μ’μ κ²μ
λλ€.
νμ¬ μ μ¬μ μΈ ν΄κ²° λ°©λ²μ μ
λ ₯μ 첫 λ²μ§Έ μ€μ λ° if 1:
λ₯Ό μ¬μ©νλ κ²μ
λλ€. κ·Έλ¬λ©΄ λͺ¨λ ν΄λΌμ΄μΈνΈμμ μ¬λ¬ μ€ μ
λ ₯μ΄ μμλμ§λ§ μ½κ° μ΄μν΄ λ³΄μ
λλ€.
μΌλ°μ μΌλ‘ κ°λ₯ν κ²½μ° μλ‘ λ€λ₯Έ ν΄λΌμ΄μΈνΈ κ°μ κΈ°λ₯μ λλ±νκ² μ μ§νλ κ²μ΄ ν©λ¦¬μ μ΄λΌκ³ μκ°ν©λλ€.
ꡬ체μ μΈ μ: κ° μ€μ λμμ ctrl-enter
λ₯Ό λλ¬ qtconsoleμ μ¬μ©νμ¬ λ€μ μ
λ ₯μ μ
λ ₯ν μ μμ΅λλ€.
In [2]: print "hello"
...: print "this is all one input"
...: print "same here..."
...:
ν΄λΉ μ€μ μ€νν λ€μ ν°λ―Έλ κΈ°λ° ipython ν΄λΌμ΄μΈνΈλ₯Ό μμνκ³ μμͺ½ νμ΄νλ₯Ό λλ₯΄λ©΄ μ μ ν ν둬ννΈκ° νμλ©λλ€.
In [1]: print "hello"
print "this is all one input"
print "same here..."
μ€ννκ³ μ€νν μ μμ§λ§ ν°λ―Έλμμ μ΄μ κ°μ μμ νμμ μ¬λ¬ μ€ μ λ ₯μ μ λ ₯ν μ μλ λ°©λ²μ΄ μμΌλ―λ‘ μν¬νλ‘κ° μ΄μν©λλ€.
μ΄ μ¬μ€μ μλ €μ€ @michaelpacer μκ² κ°μ¬λ립λλ€.
λλ μ°λ¦¬κ° μ¬κΈ°μμ ν°λ―Έλ/μ½κΈ° λΌμΈμ μ μ½μ λΆλͺμΉλ€κ³ μκ°ν©λλ€. λ΄κ° μλ ν ctrl-enterλ₯Ό κ°μ§νλ μ¬μ΄ λ°©λ²μ μμ΅λλ€. raw_input()
λ₯Ό νΈμΆνκ³ λ¬Έμμ΄μ΄ λ°νλκ±°λ μ¬μ©μκ° Ctrl-D λλ Ctrl-Cλ₯Ό λλ₯΄λ©΄ μμΈκ° λ°μν©λλ€.
μ₯κΈ° νλ‘μ νΈλ‘ readline λμ pyrepl κ³Ό κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ μ΄ μμ μ μνν μ μμ΅λλ€. μ΄κ²μ μ°λ¦¬κ° μ μ λμ κ΄μ¬μ κ°μ§κ³ μμμ§λ§ μ무λ μμΈν μ‘°μ¬νμ§ μμ κ²μ λλ€. λ λ€λ₯Έ λ°©λ²μ curses λλ urwidμ κ°μ μ μ¬ν λꡬλ₯Ό μ¬μ©νμ¬ μ νλ‘ νΈμλλ₯Ό ꡬμΆνλ κ²μ λλ€.
ν μ μλ ν κ°μ§λ ctrl-v, ctrl-jλ₯Ό λλ¬ μ λ ₯μ μ€ννμ§ μκ³ μ€ λ°κΏμ μ λ ₯νλ κ²μ λλ€. ν°λ―Έλμμλ μλνκΈ° λλ¬Έμ μ΄κ²μ΄ Bash μ체μ μΌλΆλΌκ³ μκ°ν©λλ€(ctrl-vλ λ€μ ν«ν€λ₯Ό μ μ΄ μνμ€λ‘ μ²λ¦¬νκ³ ctrl-jλ μ€ λ°κΏ). λλ μ΄κ²μ λν΄ iTerm2λ₯Ό μλ§μΌλ‘ λ§λ€ κΈ°νκ° μμμ§λ§ ctrl-enterλ₯Ό κ·Έ μ΄μ€ μνμ€μ μ΄λ»κ² λ 맀ννλ κ²μ΄ κ°λ₯ν μ μμ΅λκΉ?
νΈμ§: μ΅μν iTerm2μμ μ΄κ²μ 볡μ ν μ μμ΅λλ€. μ μ λ¨μΆν€λ‘ μ΄λνμ¬ ctrl-enterλ₯Ό "16μ§μ μ½λ 보λ΄κΈ°"λ‘ μ€μ ν λ€μ: 0x16 0x0a
prompt_toolkit
λ₯Ό μ¬μ©νμ¬ μ΄λ¬ν μ νμ κΈ°λ₯μ μ¬μ©ν μ μμ΅λκΉ?
μ, μν° λ¨μΆν€λ μμ§λ§ μν°λ‘ κ°μ§ν μ μλ μ μΌν 콀보λ Alt-Enter
(λλ Esc, Enter
)μ΄λ©° μ΄λ―Έ κ°μ μ€νμ μ¬μ©νκ³ μμ΅λλ€(μ: κ°νμ μΆκ°νμ§ λ§μμμ€). νμ§λ§ λ€λ₯Έ λ°λ‘ κ°κΈ°λ₯Ό μ¬μ©νμ¬ μ΄ μμ
μ μνν μ μμ΅λλ€. λλ μ¬μ©μ μ§μ λ°λ‘ κ°κΈ° λ₯Ό μΆκ°ν μ μμ΅λλ€.
νμ¬ IPythonμμ μ΄ μμ
μ μνν μ μλ ν κ°μ§ λ°©λ²μ F2 ν€λ₯Ό λλ¬ νΈμ§κΈ°λ‘ μ΄λνκ³ μλ£λλ©΄ λ΄μ©μ μ
λ ₯μ λ£λ κ²μ
λλ€. $EDITOR
νκ²½ λ³μλ₯Ό μ€μ νμ¬ μ΄λ¦¬λ νΈμ§κΈ°λ₯Ό μ μ΄ν μ μμ΅λλ€.
Windowsμμ Alt-Enterλ ipython μ°½μ μ 체 νλ©΄μΌλ‘ λ³κ²½ν©λλ€.
μ΅μ ipython λ° prompt_toolkitμ μ¬μ©νκ³ vi-mode
λ₯Ό νμ±νν κ²½μ° λͺ
λ Ήμ μ
λ ₯ν λ€μ ESC
λ₯Ό λλ₯Έ λ€μ o
λ₯Ό λλ¦
λλ€. μ΄κ²μ viμμμ κ°μ΄ μλ‘μ΄ λΌμΈμ μμ±ν κ²μ
λλ€.
μ΄λ° μμΌλ‘ μ¬λ¬ μ€ λͺ λ Ήμ μ¬μ©ν μ μμ΅λλ€.
In [29] : %reset -s #----> press `ESC` then `o`
%run foo.py
μ°Έμ‘°
λ°©κΈ μ΄κ²μ λΆλͺμ³€μ΅λλ€. λλ μ μ€μ λ§λλ λ° μ¬μ©λλ ctrl-enterκ° νμ€ν©λλ€!?! κ·Έλ¬λμ΄ λ¬Έμ λ λ΄κ° νλ Έλ€λ κ²μ μμν©λλ€ :(
λ λ€λ₯Έ μ΅μ μ μΈλ―Έμ½λ‘ μ μ€ κ΅¬λΆ κΈ°νΈλ‘ ν΄μνλ κ²μ λλ€. μ
%run slow_script.py; !display_notification.sh
λ΄ python μ€ν¬λ¦½νΈλ₯Ό μ€νν λ€μ μΌλΆ bash μ€ν¬λ¦½νΈλ₯Ό μ€νν©λλ€.
νΈμ§ : μ΄κ²μ μ€μ λ‘ μλνμ§ μμ΅λλ€. λ¨μ§ μ μμΌ λΏμ λλ€.
λλ κ·Έκ²μ μ¬μ©νμ¬ ;
cv2.imshow('μ΄λ―Έμ§', im) ;
cv2.waitKey(0) ;
cv2.destroyAllWindows()
ctrl+o
λ₯Ό λλ₯΄λ©΄ μλν©λλ€(cmd λ° conemu μ½μμμ μλ).
(
λ₯Ό μ¬μ©ν μλ μμ΅λλ€.
In [84]: (
...: fig, ax = plt.subplots(1,2)
...: ax[0].plot([1,2,3])
...: ax[1].plot([3,2,1])
...: fig.show()
...:
μ
λ ₯μ΄ λλλ©΄ 첫 λ²μ§Έ μ€λ‘ λμκ° (
λ₯Ό μ κ±°νμμμ€.
λλ κ·Έκ²μ μ¬μ©νμ¬ ;
cv2.imshow('μ΄λ―Έμ§', im) ;
cv2.waitKey(0) ;
cv2.destroyAllWindows()
λ€μκ³Ό κ°μ΄ νμ΄μ¬κ³Ό λ§λ²μ νΌν©ν μ μλ κ² κ°μ§ μμ΅λλ€.
In [5]: %run test.py ;\
...: !echo foo
hi
ctrl+oλ₯Ό λλ₯΄λ©΄ μλν©λλ€(cmd λ° conemu μ½μμμ μλ).
μ μκ²λ alt+o
μ
λλ€.
λμκ²λ ctrl+o
Ctrl+o λ ipython
μμλ μλνμ§λ§ jupyter console
μμλ μλνμ§ μμ΅λλ€.
Ctrl+Oκ° μλν©λλ€. μ΄ λ¬Έμ λ μ’ λ£λ μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
ctrl+o
λ₯Ό λλ₯΄λ©΄ μλν©λλ€(cmd λ° conemu μ½μμμ μλ).(
λ₯Ό μ¬μ©ν μλ μμ΅λλ€.μ λ ₯μ΄ λλλ©΄ 첫 λ²μ§Έ μ€λ‘ λμκ°
(
λ₯Ό μ κ±°νμμμ€.