๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋์ง๋ ์์ง๋ง, ๋๋ ํ๋กฌํํธ_ํดํท ๊ธฐ๋ฐ ์ ๋ ฅ์ด ์ฌ๋๋ค์ ์ํฌํ๋ก๋ฅผ ๊นจ๋จ๋ฆฌ๋ ๊ณ ํต์ ๊ฒช๊ณ ์๋ค๋ ๊ฒ์ ์ถฉ๋ถํ ๊ฒฝํํ๊ณ ๋ค์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ์ฝ๋๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ง์งํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ ์์ ๊ณ ๊ธฐ๋ณธ๊ฐ์ ๋์์ ๋ฐ๊พผ๊ฑด ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ์์ ์ 6.0์ผ๋ก ๋๋๋ฆด ์ํฅ์ด ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ #10329๋ฅผ ํ๊ทธํ๊ฒ ์ต๋๋ค.
IPython์ ์ค๋ ์ฌ์ฉ์์ ์นํธ์๋ค์ด ์ง๊ธ์ IPython 5๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ ํ๊ฑฐ๋ ์ฌ์ง์ด ์ฌ์ฉํ์ง ์์ผ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ํนํ ์ค์ํ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ถ๋ถ์ ์ฝ๋๊ฐ ์ ๊ฑฐ๋์๊ณ readline์ ๋ค์ ํตํฉํ๋ ๋ฐ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ ์ ์์ง๋ง ์ต์ ์ผ๋ก ๋ค์ ์ถ๊ฐํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ ํ์ ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ผ ์ ์๋ค๋ฉด(๋ถํฅ์ผ๋ก ์ธํด ๋์ ๋ ์ ์ฌ์ ์ธ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํด ์ฝ์ด๋ณด๋ค ๋น ๋ฅด๊ฒ ์งํํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
RL์ ๋ค์ ๊ฐ์ ธ์ค๋ฉด #10356์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค.
#9260๋ ์ฐธ์กฐํ์ญ์์ค.
๊ทธ๋ฆฌ๊ณ #9399๋ ์ ๊ฑฐ์ ๋๋ถ๋ถ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ํด -1์ด๋ค. ์ฐ๋ฆฌ๋ readline์ ๋ฒ๋ ธ์ ๋ ๋ง์ ์ฝ๋์ ๋ณต์ก์ฑ์ ์ญ์ ํ ์ ์์๊ณ (๊ทธ๋ฆฌ๊ณ ๋ ๋ง์ด ์ญ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค) ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ฅผ ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ทน์ ์ผ๋ก ๊ฐ์ ํ์ต๋๋ค. readline ์ต์ ์ ๋ค์ ๊ฐ์ ธ์ค๋ฉด ~์์ํ ์ ์งํด์ผ ํ๋ ๋ ์ธํฐํ์ด์ค์ ๋ชจ๋ ๋ณต์ก์ฑ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํญ์ ์ด๋ ๊ฒ ํฐ ๋ณํ๊ฐ ์ผ๋ถ ์ํฌํ๋ก๋ฅผ ์ค๋จ์ํฌ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ์ด๊ฒ์ด ์ ๊ฐ์ ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ ๋ ์ฐ๋ฆฌ๊ฐ ๋ ๊ฐ์ ๋์ฒด ํฐ๋ฏธ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ์ฌ์ ์ ์ฐธ์ฌํ๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
๋๋ ์คํ๋ ค ์ฐ๋ฆฌ๊ฐ:
.inputrc
๋ฅผ ์ฝ๋ ์คํ๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ํฌํจ๋ฉ๋๋ค. ์ฌ๋๋ค์๊ฒ readline์ผ๋ก ๋์๊ฐ ์ ์๋ ์ฌ์ด ์ต์
์ ์ ๊ณตํ๋ฉด ์ด๋ฌํ ๊ฐ์ ์ด ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค.rlipython
์ ๊ฐ์ ๋ณ๋์ ํจํค์ง๋ฅผ ๋ง๋ค๋, ์ฐ๋ฆฌ๊ฐ ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ๊ฒ์ด ์๋๋ผ ์ปค๋ฎค๋ํฐ์์ ์ ์ง ๊ด๋ฆฌํ๋ค๋ ์ ์ ๋ถ๋ช
ํ ํ์ญ์์ค.Windows์ pyreadline์๋ ํญ์ ๋ง์ ๋ฌธ์ ๊ฐ ์์๋ค๋ ์ ์ ๊ฐ์ํ ๋(์ ์ด๋ IPython๋ฟ๋ง ์๋๋ผ ํ์ค Python REPL์๋ ์ ์ญ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์ณค๋ค๋ ์ฌ์ค) (py)readline์ ์๊ตฌํ์ง ์๋ ๊ฒ์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ์ง๋๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ ์ด๋ Windows์์๋. ์ฌ์ฉ์๊ฐ pyreadline์ ์๋์ผ๋ก ์ค์นํ๊ณ ํ์ฑํํ๋ ๊ฒ์ ์ ํธํ๋ ๊ฒฝ์ฐ ๊ด์ฐฎ์ง๋ง IPython์ pyreadline์ด ์์ด๋ ์๋ํด์ผ ํ๋ฉฐ ์ผ๋ฐ ์ค์น์ ์ข ์์ฑ์ผ๋ก ํฌํจํ์ง ์์์ผ ํฉ๋๋ค.
์ฌ์ ํ readline ์ฌ์ฉ์ ์ฃผ์ฅํ๋ ์ฌ๋๋ค์ด ์๋ค๋ฉด ํฐ๋ฏธ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ rlipython๊ณผ ๊ฐ์ ๋ณ๋์ ํจํค์ง๋ฅผ ์ถ์ํ๋ ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ๊ฒ์ด ์๋๋ผ ์ปค๋ฎค๋ํฐ์์ ์ ์ง ๊ด๋ฆฌํ๋ค๋ ์ ์ ๋ถ๋ช ํ ํ์ญ์์ค.
์ด์ ๋์์ ๋ณต์ํ๋ IPython๊ณผ ์ผ๋ถ ํตํฉ(์: ํ๋๊ทธ ๋ฐ/๋๋ ํ๊ฒฝ ๋ณ์)์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ชฉํ๋ ์ฌ์ ํ ๊ฐ๋จํ ์ค์์น๋ก ์๋ํ๋ IPython readline์ ์์กดํ๋ ์คํฌ๋ฆฝํธ์ ๋ ์ํผ๋ฅผ ์ด๋ฏธ ๋๋ฆฌ ํผ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
๋ด ์๊ฐ์ IPythonApp์ ๊ฐ๋จํ ๊ตฌ์ฑ์ TerminalInteractiveShell ํด๋์ค๊ฐ ํธ๋ ์๋ ์ ์ฌ์ฉํ๋๋ก ํ๊ณ ์๋ ค์ง ์ธ๋ถ ํจํค์ง์ ๋ํ ์ฌ์ ์ค์ ๊ฐ์ด ์๋ --readline ํ๋๊ทธ๋ก ์ถฉ๋ถํ ๊ฒ์ ๋๋ค.
ipython์ ๋ณ๋์ ํจํค์ง๋ก ์ฌ์ฉํ๋ฉด IPython 6์ ์ฐจ๋จํ์ง ์๊ณ ํ์ํ ๊ฒฝ์ฐ ๋น ๋ฅธ ๋ฐ๋ณต ์ฃผ๊ธฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ฌ๋๋ค์๊ฒ readline์ผ๋ก ๋์๊ฐ ์ ์๋ ์ฌ์ด ์ต์ ์ ์ ๊ณตํ๋ฉด ์ด๋ฌํ ๊ฐ์ ์ด ์ผ์ด๋์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์์ ํ ์ฌ์ค์ธ์ง ์์ฌ์ค๋ฝ๋ค. ์ฌ๋ฌ ์ค, ๊ฐ์กฐ ํ์ ๋ฐ ์ด์ ์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ ํ โโPTK ์ธํฐํ์ด์ค์ ํฐ ์ฅ์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ RL/PTK๋ฅผ ๋ณ๋ ฌ๋ก ์ฌ์ฉํ ์๋ ์๊ธฐ ๋๋ฌธ์ 4.x์ ๊ณ ์ ํ๋ ์ฌ์ฉ์๋ ๋์์ ์ํํ๊ฒ ํ๊ธฐ ์ํด IPython/PTK์ ํจ์น๋ฅผ ๋ณด๋ผ ์ธ์ผํฐ๋ธ๊ฐ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ์ค์์น์ ํตํฉํ์ง ์์ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ง์๋๋ ์ต์
์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋ค๊ณ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์ ๋ํด ๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค. rlipython
๋ ์ด์จ๋ ipython --readline
๋ณด๋ค ํ์ดํ์ด ์ ๊ณ ์ฌ๋๋ค์ด ์ด๊ฒ์ ipython
๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ณ์นญ์ ์ง์ ํ ์ ์์ต๋๋ค.
ctrl-r
์ ํ์ฌ ๊ฒฝํ์ ๋ํ ์ฐธ๊ณ ์ฌํญ:
Bash์์ ctrl-r์ ๋๋ฅธ ๋ค์ ํ์ถ์ ๋๋ฅด๋ฉด ๋น ์ ธ ๋์ต๋๋ค.
์ด ๊ฒฝ์ฐ ๊ฒ์ ์์ญ์ ๋ซ์์ผ ํ ๋ ์๋ฌด ์์ ๋ ์ํํ์ง ์์ต๋๋ค.
ctrl-r์ ํ์ฌ ๊ฒฝํ์ ๋ํ ์ฐธ๊ณ ์ฌํญ:
Bash์์ ctrl-r์ ๋๋ฅธ ๋ค์ ํ์ถ์ ๋๋ฅด๋ฉด ๋น ์ ธ ๋์ต๋๋ค.
์ด ๊ฒฝ์ฐ ๊ฒ์ ์์ญ์ ๋ซ์์ผ ํ ๋ ์๋ฌด ์์ ๋ ์ํํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ์์ ํ๊ธฐ ์ฝ์ง๋ง ์์ ํ๋ ์๋๋๋ค.
~/dev/ipython master [1]"!!" $ git diff
diff --git a/IPython/terminal/shortcuts.py b/IPython/terminal/shortcuts.py
index 22ad111..89713cd 100644
--- a/IPython/terminal/shortcuts.py
+++ b/IPython/terminal/shortcuts.py
@@ -54,6 +54,10 @@ def register_ipython_shortcuts(registry, shell):
registry.add_binding(Keys.ControlC, filter=HasFocus(DEFAULT_BUFFER)
)(reset_buffer)
+
+ registry.add_binding(Keys.Escape, filter=HasFocus(SEARCH_BUFFER)
+ )(reset_search_buffer)
+
registry.add_binding(Keys.ControlC, filter=HasFocus(SEARCH_BUFFER)
)(reset_search_buffer)
์๋ํ์ง๋ง ์ ํค๋ฅผ ๋๋ฅผ ๋๊น์ง I-search-backward:
๋ ๊ณ์ ํ์๋ฉ๋๋ค. ์ด ์ ํค๋ ์ญ๋ฐฉํฅ ๊ฒ์์ด ํด์ ๋ ๊ฒฝ์ฐ ์๋ํ์ง๋ง ๋งค์ฐ ์ด์ํ๊ฒ ๋๊ปด์ง๋๋ค.
์ด์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, @ivanov! ๋๋ ์ธ๋ถ ์ฌํญ์ ์ข ๋ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด๊ณ ์ด์ ๋ํ ๋ชฉ๋ก์ ๋ํ ๋ ๋ง์ ํผ๋๋ฐฑ์ ์ฅ๋ คํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ถ๋ช ํ ๊น๋ค๋ก์ด ๊ท ํ๊ณผ ๋ ผ์์ ์ฌ์ง๊ฐ ์์ผ๋ฏ๋ก ๋ ๋ง์ ๋ชฉ์๋ฆฌ๊ฐ ์ต์ํ ์ฐ๋ฆฌ์ ๊ฒฐ์ ๊ณผ์ ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ ์ข์ ์ ํธ์ ๋๋ค.
์ด ๋ ธ๋ ฅ์ ๋ํ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ฐ์ดํธ: ์ ๊ฑฐ๋ ์ฝ๋๋ฅผ IPython์ ์ ์ ํ๊ฒ ๊ฐ์ ธ์ค๋ ๋์ @Carreau ๋ Carreau/rlipython ์์ ์ด์ readline ๊ธฐ๋ฐ ์ฝ๋๋ก ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์๊ฐ ๋ค์์ ์ํํ ์ ์๋๋ก #10373์ ๋ง๋ค์์ต๋๋ค. ์ด ์กฐ๊ฐ์ ์ฌ์ฉ์ ์ ์ํ์ญ์์ค.
์ฐธ๊ณ : ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ์ค๋ช ๋ ๋ฌธ์ :
์ ์ด๋ SMC์์๋ ์ฌ๋ฌ ๋ฒ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก ๋ฌผ์ด๋ด ๋๋ค.
์ฒซ ๋ฒ์งธ ์ค์ ๋ถ์ฌ๋ฃ๊ณ ๋ชจ๋ ๊ฒ์ ์๋์ผ๋ก
(์ฆ, term.js). ํ์ง๋ง ์๋นํ ๋ต๋ตํฉ๋๋ค.
์ด๊ฒ์ ์ด ํฐ๋ฏธ๋์ด ๋ธ๋ํท ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ง์ํ์ง ์์์ ๋ํ๋
๋๋ค.
IMHO: ์์ฆ์๋ ๋ชจ๋ ํฐ๋ฏธ๋์์ https://cirw.in/blog/bracketed-paste ๋ฅผ ์ง์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
readline ์ง์์ ๋ค์ ์ถ๊ฐํ ๊ฐ์น๊ฐ ์์ง๋ง ์ธ๊ธ๋ ์ฌ๋ฌ ๋ฒ๊ทธ๊ฐ ์ด๋ฏธ ์์ ๋์๊ฑฐ๋ ์์ ๋ ์์ ์ ๋๋ค. ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์๋ง๋ Emacs ํฐ๋ฏธ๋(์ค์ ๋ก xterm ํธํ ํฐ๋ฏธ๋์ด ์๋๋ฉฐ ์ง์๋์ง ์์ ๊ฒ์)๊ณผ .inputrc ์ง์์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฐ๊ตญ์๋ ๋์ญํญ/์ฐ์ ์์ ๋ฌธ์ ๋ก ์ธํด ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.
์ด์จ๋ ์ฌ์ฉ์ ๊ฒฝํ ๋ฌธ์ ๋ฅผ ๊ณ์ ๋ณด๊ณ ํ์ญ์์ค. ์ด๊ฒ์ ์ค์ํฉ๋๋ค.
@pfmoore ์ข์ ์ง์ ์
๋๋ค. pyreadline์ด ์๋ Windows ํ๊ฒฝ์ ์์ฌ์ค๋ฝ์ต๋๋ค. readline UI๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๋ฉด IPython์ด๋ rlipython
ํจํค์ง์ด๋ 'true' readline์ ๋ํด์๋ง ์ด ์์
์ ์ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ๊ฒ์
๋๋ค.
๋ณ๋์ rlipython ํจํค์ง์ ํ ๊ฐ์ง ์ด์ ์ ๊ธฐ์กด IPython 5 ๋ฆด๋ฆฌ์ค์ ํจ๊ป ์ฌ์ฉํ ์ ์์ง๋ง IPython ์์ฒด์์ ์ํํ๋ ๊ฒ์ ๋ถ๋ช ํ ์ IPython ๋ฆด๋ฆฌ์ค์์๋ง ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค.
prompt_toolkit ๊ธฐ๋ณธ๊ฐ์ ๋ํ ๋ ๋ค๋ฅธ ๋ถํธํจ์ ์์ธ์ผ๋ก #9799๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ์ค์นํ ์ถ๊ฐ ์ธ๋ถ ํจํค์ง๊ฐ ์์ผ๋ฉด ์๋ฒฝํ๊ฒ ๋ง์กฑํ ๊ฒ์ ๋๋ค.
pyreadline์ Windows์์ ๋ฌธ์ ๊ฐ ๋์ง๋ง prompt-toolkit์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ 2๊ฐ์ ๋ถ๋ง์กฑ์ค๋ฌ์ด ์๋ฃจ์ ์ฌ์ด์์ "๊ธฐ์ ์ ๋ถ์ฑ"๊ฐ ๋ํ ์๋ฃจ์ ์ด ์ต์์ ์๋ฃจ์ ์ธ ํ๋กฌํํธ ํดํท์ฒ๋ผ ๋ณด์ ๋๋ค.
์์ ์ ์ด๋ค ์ฌ๋๋ค์๊ฒ๋ prompt_toolkit์ด ๋ ์ข๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ readline์ด ๋ ๋ซ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ ํผํ๊ธฐ ์ํด readline ์ฌ๋๋ค์ ๋์จํ๊ฒ ์๋ผ์ผ ํ๋ ๊ฒ์ ๋๋ค.
pyreadline์ Windows์์ ๋ฌธ์ ๊ฐ ๋์ง๋ง prompt-toolkit์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ 2๊ฐ์ ๋ถ๋ง์กฑ์ค๋ฌ์ด ์๋ฃจ์ ์ฌ์ด์์ "๊ธฐ์ ์ ๋ถ์ฑ"๊ฐ ๋ํ ์๋ฃจ์ ์ด ์ต์์ ์๋ฃจ์ ์ธ ํ๋กฌํํธ ํดํท์ฒ๋ผ ๋ณด์ ๋๋ค.
์์ ์ ์ด๋ค ์ฌ๋๋ค์๊ฒ๋ prompt_toolkit์ด ๋ ์ข๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ readline์ด ๋ ๋ซ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ ํผํ๊ธฐ ์ํด readline ์ฌ๋๋ค์ ๋์จํ๊ฒ ์๋ผ์ผ ํ๋ ๊ฒ์ ๋๋ค.
ํ์ฌ ์ฒจ๋ถ๋ PR(#10373)์ 4์ค๋ก ๊ตฌ์ฑ ์ต์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ๊ตฌ์ฑ ์ต์ ์ผ ๋ฟ์ ๋๋ค. readline ์ฝ๋๋ IPython์๋ ์๊ณ ํ์ฅ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค.
์ค์ ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ ๊ฒฝ์ฐ ๋ชจ๋ readline์ ๋ค์ IPython์ ์ข ์๋์ง ์์ต๋๋ค.
IPython์ ์ ์งํ๊ธฐ ๋ ๊ฐ๋จํ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ ์ํฅ์ ์ฃผ์ง๋ง ํ์ฌ ์ฃผ์ ๊ฒฝํฉ์ A ๋๋ B์ ๋๋ค.
emacs ์ชฝ์์๋ ๊ด์ฐฎ์ต๋๋ค. B๋ ์ฅ๊ธฐ์ ์ผ๋ก ๋ ์ ์ฐํด ๋ณด์ ๋๋ค.
readline์ ์ ํธํ๋ ์ฌ๋๋ค์๊ฒ๋ IPython ์๋ง์ ์ํ readline๋ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ B.
๋๋ ์ด๊ฒ์ ๋ํด ์ ์ ๋์ ์๊ฐํ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ฐธ์ฌํ ๊ธฐํ๊ฐ ์์๋ ํ์ ๋ช๋ช ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ์ ์๊ฒฌ์ ๋๋ค. ์์ง ์ต์ข ๊ฒฐ์ ์ ํธ์ถ ์๋์ง๋ง, ๋๋ ๊ฐ๊น์ด ํด์๋๋ก ์ฐ๋ฆฌ๋ฅผ ์ด๋ํ๋ คํฉ๋๋ค. BTW, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋๊ณ ํ๋์ ์ด๋ฉฐ ๊ณ ํ์ง์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ Prompt Toolkit ํ์ ๋งค์ฐ ๊ฐ์ฌํ๋ค๋ ์ ์ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค. ๋น๋ฉดํ ๋ฌธ์ ์ ๋ํด:
readline์ด ํ์ํ ์ฌ์ฉ์์ ์ฐ๋ ค๋ ๋งค์ฐ ํ์ค์ ์ด๋ฉฐ, ๋น์ฉ์ด IPython ๋ด๋ถ/์ฃผ๋ณ์ ์ฝ๊ฐ์ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ด๋ฐํ๋๋ผ๋ ์ง๊ธ ๊ทธ๋ค์ ์ํ ์ข์ ์๋ฃจ์ ์ ์ฐพ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ PT ํ๊ณผ ๊ณ์ ํ๋ ฅํ์ฌ ๋ฌธ์ ๊ฐ ๋๋ readline์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ๊ฐ์ ํ ๊ฒ์ ๋๋ค(RL์๋ ์๋ ๋ฐฉ๋ํ ๊ธฐ๋ฅ ๋ชจ์์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค).
PT๊ฐ ๋ ํฅ์๋๋๋ผ๋ ํ๋ฒํ ์ค๋๋ readline์ด ๊ฐ์น๊ฐ ์๋ ์ํฉ์ ์ฌ์ ํ ๋ณผ ์ ์์ต๋๋ค. PT๋ ์ ๊ตํจ์ผ๋ก ์ธํด Emacs ๋ด๋ถ์ ipython ์ ธ ๋ด์์ ssh๋ฅผ ํตํด tmux ๋ด๋ถ์์ ์คํํ ๋ ๋ ๋๋ฆฌ๊ฑฐ๋ ๋ ๋ถ์์ง๊ธฐ ์ฝ์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ ์ง์ํด์ผ ํ๊ณ ์์ ์ ์ฌ์ฉํ๋ ์ ํจํ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค.
์ด๋ฅผ ๊ฐ์ํ ๋ ์ข์ ํํ ์๋ฃจ์ ์ @Carreau ๊ฐ ์์ ์ PR์์ ์ ์ํ ๊ฒ๊ณผ
์ฐ๋ฆฌ๋ readline์ ์ง์ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ์ค์นํด์ผ ํ๋ ํ์ฌ ํจํค์ง๋ฅผ ํตํด์๋ง ์ง์ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฌ์ฉ์๋ ๊ตฌ์ฑ ํ์ผ์์ ์ด ํจํค์ง์ ์ฌ์ฉ์ ์ค์ ํ๊ฑฐ๋ ๋ช ๋ น์ค์์ ํธ์ถํ๊ฑฐ๋ ์ ธ ๋ณ์นญ ๋๋ ์์ ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์, ์ด ์ฝ๋ ์ผ์ด์ค์ ์ฌ์ฉ์ ์ธก์์ ์ฝ๊ฐ์ ์ถ๊ฐ ์์ ์ด ํ์ํ์ง๋ง ์ต์ํ์ ๋น์ฉ์ผ๋ก ๊นจ๋ํ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋ฐ๋ฉด PT๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์ค๋จ ์์ด ๊ณ์ ์ฌ์ฉํฉ๋๋ค. .
์ด๊ฒ์ ์ด ์ถ๊ฐ ํจํค์ง๋ฅผ ์ ์ ๋์ ์ง์ํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ง ๊ทธ๋ ๊ฒ ๋ง์ ์์ ์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค. ํด๋น ์ฝ๋๋ ๊ฝค ์ค๋ ์๊ฐ ๋์ ๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉฐ ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ธฐ์กด์ ๊ณผ๊ฑฐ ๊ธฐ์ค ๋์๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ด๊ฐ ๋ค์ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ํ ๊ฐ์ง ๋น์ฉ์ (@Carreau๊ฐ ์ธ๊ธํจ) ์ ๊ฑฐํ ์ ์๋๋ก ์ ๊ฑฐํ๋ ค๋ ์ฝ๋๊ฐ ์์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ ์ด๋ ํ์ฌ๋ก์๋ ์ฌ์ฉ์์ ์ด์ต์ ์ํด ์ง๋ถํด์ผ ํ๋ ๋๊ฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฏธ๋์ ์ธ์ ๊ฐ ์ฐ๋ฆฌ๊ฐ ์๊ฐํ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ PT๊ฐ RL์ 100% ๋์ฒดํ๋ ์ํฉ์ ์ฒํ๊ฒ ๋๋ค๋ฉด ๋ค์ ๋ฐฉ๋ฌธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ๋ก์๋ ์ผ๋ถ ์ฌ์ฉ์ ํ์ ์งํฉ์ ์ด์ต์ ์ํด ์ฝ๊ฐ ์ค๋๋ ํน์ ๋ชฉ์ ์ฝ๋๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ผ์ ๋๋ค. ์ง๋ ๋ช ๋ ๋์ ์ฐ๋ฆฌ๋ ์ฌ๋ฌ ์ข ๋ฅ์ ํน๋ณํ ๊ฒฝ์ฐ์ ์ฝ๋(windows, py2/3 ๋ฑ)๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ก๋ ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ฌ์ฉ์์ ์ํฌํ๋ก๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ฝ๋ ์ ๋ฆฌ๋ณด๋ค ์ฐ์ ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์ด ์ํฉ์์๋ ํฌ๊ด์ ์ธ ์ค๋ช ์ ํ์ง ์์).
์ด๋ป๊ฒ ๋ค๋ฆฌ๋์?
BTW, ๋๋ ์ด '์์ '์ด 5.x ์๋ฆฌ์ฆ๋ก ๋ฐฑํฌํ ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฝ ์๋ค๋ฉด, ์ฌ์ ํ python 2.x๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์ธ๊ตฌ๊ฐ ์ด์ ์๋ฒ์์ ์๊ฒฉ์ผ๋ก ์์ ํ๋ ์ฌ๋๋ค์ ์ธ๊ตฌ์ ๊ฒน์น๋ ๋ถ๋ถ์ด ๋ง๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ๋ด ํฌํ๋ ์ธ๋ถ ํจํค์ง๋ฅผ python 2-3๊ณผ ํธํ๋๋๋ก ๋ง๋ค๊ณ ์ฝ๋์ ipython ์ชฝ์ 5.x๋ก ๋ฐฑํฌํธํ๋ ๊ฒ์ ๋๋ค.
์๊ฐ์ ๋ด์ด ์๋ตํ๊ณ ํนํ ์ฌ๋ฌ ์ฌ๋์๊ฒ ์ฐ๋ฝํด ์ฃผ์ Fernando์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ด PR์ ์ฐ๋งํ๊ณ ๋ณํฉํ๊ณ 5.0์ผ๋ก ๋ฐฑํฌํธํ๊ฒ ์ต๋๋ค.
readline ์ธํฐํ์ด์ค๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๋ชจ๋ ์ฌ๋์ ์ํด GitHub์ rlipython ์ด ์์ต๋๋ค. ์ ์งํ์ง ์๊ณ PyPI์ ๊ฒ์ํ์ง๋ ์๊ฒ ์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ํ์ํฉ๋๋ค. ์กฐ์ง์ด ํ์ํ ๊ฒฝ์ฐ https://github.com/ipython-contrib ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. .
๊ฐ์ฌ ํด์ !
์ ๋ ์ค์ ๋ก ์ด๊ฒ์ ๋ฉ์ธ IPython ์กฐ์ง์์ ํธ์คํ ํ๊ณ pypi์ ๋ฃ์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ปค๋ฎค๋ํฐ์ ์ฝ๊ฐ ๋ ํ์ํ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ ๊ณผ๊ฑฐ ํธํ์ฑ๊ณผ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค(prompt-toolkit)๊ฐ ์ต์ ์ด ์๋ ํน์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ค์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๊ฒ ์ด์์ ์๋ฏธ ์๋ ๊ฐ๋ฐ์ ์์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ต์ ์ ์๋ฃจ์ ์ผ๋ก ์ด๊ฒ์ ์ ๊ณตํ ์ ์๋ ๋ฆฌ์์ค๋ง ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด ๋๊ตฌ์ ๋ํ ์ค์ํ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํตํด ์๋ ค์ฃผ์ญ์์ค. ๊ทธ๋ฌ๋ฉด ํจํค์ง์ ์ ์ง ๊ด๋ฆฌ ๊ถํ์ ๊ทํ์๊ฒ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณผ ์ ์์ต๋๋ค."
@ivanov ๊ฐ ์ด ๋ฐฉํฅ์ผ๋ก ๋ช ๋ฒ์ ์ฃผ๊ธฐ๋ฅผ ๊ฐ๋๋ค๋ฉด
์ฌ๊ธฐ ๊น์ง ์์ ์ ์ถ์งํด
rlipython
์ฌ๋ ค ์ฃผ์ @Carreau ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์
์ ์์ํ๊ณ ๋ชจ์์ ์ฑ์ฐ์งํ์ต๋๋ค. ๋๊ตฐ๊ฐ ๋์น ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ด์ ipython/rlipython ์๋์ ์์ต๋๋ค. ๋๋ ์์
์ ์์ํ๋ฉด์ ์์ผ๋ก 2์ฃผ ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ป์ผ๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์ด์ง๋ง ์ง๊ธ์ ํจ๊ณผ๊ฐ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค! ํ์ฌ ์๋ ค์ง ๋ฌธ์ ๊ฐ ํ๋ ์์ต๋๋ค. ์
๋ ฅ/์ถ๋ ฅ ํ๋กฌํํธ์ ์์์ด ์ง์ ๋์ง ์์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ipython/rlipython#3์์ ์ถ์ ํ๊ณ ์์ง๋ง ๊ทธ ์ธ์๋ ํ๋ฅญํด ๋ณด์
๋๋ค.
@ivanov , ๋์์ด ํ์ํ๋ฉด ์ ์๊ฒ
#10373์ ์ํด ํ์๋๊ณ #10463์ผ๋ก ๋ฐฑํฌํธ๋จ
์๋
ํ์ธ์, ์ด ๋ฌธ์ ๊ฐ ์ข
๋ฃ๋ ์ํ์์ prompt_toolkit
์์ ํ ๋นํ์ฑํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์๋ ํ์ธ์, ์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ํ์์ prompt_toolkit์ ์์ ํ ๋นํ์ฑํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์, ๊ตฌ์ฑ ํ์ผ์์ TerminalIPythonApp.interactive_shell_class
๋ฅผ rlipython ์ผ๋ก ์ค์ ํ๋ฉด prompt_toolkit์ ๊ฐ์ ธ์ค์ง ์์๋ ๋ฉ๋๋ค. rlipython์ readme๋ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์์ง ๊ตฌ๋
์ค์ธ ์ฌ๋์ ์ํด: ๋ฐฉ๊ธ rlipython
๋ฒ์ 0.1.0์ ์ถ์ pip install rlipython
์ ์๊ณ import rlipython; rlipython.install()
์ดํ IPython์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ๋ ์ด์ readline์ ์ป์ ์ ์์ต๋๋ค.
ํํฐ์ ๋ฆ์์ง๋ง ํ์ฌ RT๋ ๋ค์ค ์ค๋ ๋ ์ด๊ธฐํ์ฉ์ผ๋ก ์ค๊ณ๋์ง ์์ ๋ชจ๋์ด ์๋ ํ๋ก์ ํธ์ ๋ํด ๊ธ์ง๋์ด ์์์ ๋ฐ๋ณตํฉ๋๋ค(Sage์
๋ํ ํ์ฌ RT์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ํ ์ค๋ช : ํญ ์์ฑ์ ์ํํ๋ ๋์ Python ๋ชจ๋์ ๋ค์ค ์ค๋ ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์์ ํ์ง ๋งค์ฐ ์์ฌ์ค๋ฝ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ค์ํ ๊ฒ์ - IPython ํญ ์์ฑ์ผ๋ก ์ธํด segfault๊ฐ ๋ฐ์ํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋น๋ํํ ํ ์คํธ๋ฅผ ์ํ ์๋จ์ ์ด๋ป์ต๋๊น?
@jonathanslenders ๋ณ๋์ ์ค๋ ๋์์ ์๋ฃ ์คํ์ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ๋๊ธฐ์์ผ๋ก ์คํํ๋ ์ต์ ์ด ์์ต๋๊น?
์๋ ํ์ธ์ @takluyver ์ ๋๋ค .
๋ต๋ณ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ์ง๋ ๋ฌ์ ๊ฒฐํผํด์ ํ๋์ ์คํ๋ผ์ธ ์ํ์์ต๋๋ค. ;)
์ ๋ ์ด๋ฏธ ๋๊ธฐ(๋ฉ์ธ ์ค๋ ๋์์) ๋ฐ ๋น๋๊ธฐ(๋ค๋ฅธ ์ค๋ ๋์์) ์๋ฃ๋ฅผ ๋ชจ๋ ์ง์ํ๋ prompt_toolkit 2.0์์ ์์ ํ๊ณ ์์ต๋๋ค. ์ ๋ ๊ฑฐ์ 1๋ ๋์ 2.0์ ์์ ํด ์์ผ๋ฉฐ ๋ช ๋ฌ ์์ ๊ทธ๊ฒ์ ๋ฆด๋ฆฌ์คํ๊ธฐ๋ฅผ ํฌ๋งํฉ๋๋ค.
๋๊ธฐ์ ์๋ฃ์ ๊ฒฝ์ฐ ์๋ฃ์๊ฐ ์ด๊ณ ์์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋ ํค ์ ๋ ฅ ํ์ ์ง์ฐ์ด ๋ฐ์ํ๋ค๋ ์ ์ ์ผ๋์ ๋์ด์ผ ํฉ๋๋ค(ํ์ดํ ์ค ์๋ฃ๊ฐ ์ผ์ ธ ์๋ ๊ฒฝ์ฐ). ์๋ฅผ ๋ค์ด ์ ๋ค์ด๊ฐ ์ด๊ณ ์์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ๋น๋๊ธฐ ์๋ฃ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ฑ์๊ฐ ์ฒ์๋ถํฐ ๋ชจ๋ ์ค๋ ๋์์ ๊ฐ์ ธ์ฌ ์ ์๋์ง ํ์ธํ๋๋ก ๊ถ์ฅํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฏธ๋์๋ ์๋ฃ ๋๊ธฐํ ๋๋ ๋น๋๊ธฐ๋ฅผ ์คํํ๋ ์ต์ ์ ๋ง๋ค์ง๋ง ์ฌ์ ํ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋๊ธฐ ์๋ฃ๋ฅผ ์ ํธํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํจ์ฌ ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
2017๋ 10์ 21์ผ ํ ์์ผ ์คํ 2์ 47๋ถ, Jonathan Slenders < [email protected]
์ผ๋ค:
ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋น๋๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์์ฑ. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด ๋์๊ด์ ์ ์๋ค์ ๊ฒฉ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฒ์์ ๊ฐ์ ธ์ฌ ์ ์๋์ง ํ์ธํ์ญ์์ค.
์ค.IMHO ์ด๊ฒ์ ํญ์ ๋ฌ์ฑํ๊ธฐ ์ฝ๋ค๋ ํฌ๋ง์ ์ธ ์๊ฐ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋งค์ฐ ๋ณต์กํ 3rd๋ฅผ ๋ํํ๋ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
ํํฐ ์ฝ๋ ๋ฐ ์ค๋ ๋๋ก๋ถํฐ ์์ ํ ์ด๊ธฐํ์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ ์คํธ๋ฆผ ์๋ฃ.
์ฐ๋ฆฌ๊ฐ ๋จธ๋ฆฌ๋ฅผ ๋๋๋ฆฌ๋ ๊ตฌ์ฒด์ ์ธ ์
(Python์ ๋ด์ฅ๋) Lisp ์์คํ ECL์์ ์คํ๋๋ Maxima์ ๋๋ค.
ํ์๋ ๋ชจ๋ Lisp์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ ๊ธฐ ์์ง๊ธฐ๊ฐ ํ์ํ๋ฉฐ Boehm์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.GC . ์ผ๋ถ ํ๋ซํผ์์๋ ํ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
๋ฉ์ธ ์ค๋ ๋์์ ์ด๊ธฐํ --- ๋๋ ์์ ์๋ ์๋ฅผ ๋ค์ด
FreeBSD, ๋ด๊ฐ ์ง์ ํ๊ธฐ ์ ๊น์ง, ๊ทธ๊ฒ์ ๋นจ๋ฆฌ ๊ณ ์ณ ์ก์ต๋๋ค. ๋น์ ์ด ์์ํ ์ ์๋ฏ์ด, ๋ค๋ฅธ
์ ๋ฌธ๊ฐ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ์์ ์ผ๋ก ์์ ํ ์ด์ด ์ข์ง ์์ ์ ์์ต๋๋ค.
์๋นํ ๋ณต์กํ ์์คํ ์ ๋ํ ์ง์.
๊ทธ๋ฆฌ๊ณ ํด๊ฒฐํด์ผ ํ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค ํ๋๋
๋จ์ผ ์ค๋ ๋ ์๋๋ฆฌ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฒด ์ ํธ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ ์์ง๋ง
๋ค์ค ์ค๋ ๋ ์๋๋ฆฌ์ค์์๋ ์ ํธ ์ฒ๋ฆฌ๋ฅผ ์ค์ ์ง์คํํด์ผ ํฉ๋๋ค. NS
ํด๊ฒฐํ๊ธฐ ๋ ์ด๋ ค์ด ๋ค๋ฅธ ๋ฌธ์ ๋ ํ์ฌ ์ฝ๋๊ฐ
์ค๋ ๋๋ก๋ถํฐ ์์ ํฉ๋๋ค.
(์์ ์๋ก ๋์๊ฐ์ ์ด ๋ชจ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค...)
์ต์ ์ ์ ํ์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค
PT๊ฐ ๋ฉ์ธ ์ค๋ ๋์์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํํ๋ ค๋ฉด ---
ํ์ง๋ง ๊ตฌํํ๊ธฐ ์ฝ๊ฑฐ๋ ์คํ ๊ฐ๋ฅํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ฌ์ค์ PT๊ฐ ๋ค์ค ์ค๋ ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํํ๋ค๋ ์ ์ ์ง์ ํ๊ฒ ์ต๋๋ค.
๊ฐ์ ธ์ค๊ธฐ๋ ๋๊ท๋ชจ ์์คํ
์ ์์ ๋ณ๋ชฉ ํ์์ด๋ฏ๋ก ๋งค์ฐ
๋ค์ค ์ค๋ ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํ์ฉํ๋๋ก ์ ๋ํฉ๋๋ค.
CPython ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ๋งํ๋์ง ์ ๋ง ๋ฃ๊ณ ์ถ์ต๋๋ค. NS
ํ๋ฉด ์ ๋๋ค๋ ๋๋ต์ด ๋์ค๋ฉด ๋๋ผ์ง ์์ ๊ฒ์
๋๋ค.
์ถ์ . ์ ํผ์ฌํ์ ๋ง์น๋ ค๋ ๊ฒ์ด ์๋๋๋ค. ์ถํํฉ๋๋ค :-)
์ถํํฉ๋๋ค! ๋ฌผ๋ก ์ฌ๊ณผํ ํ์๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ๋ฉ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฌด๋ฃ๋ก ์ ๊ณตํฉ๋๋ค. ๊ทธ๋์ ๋ชจ๋ ์ง์์ ๋น์ ์๊ฒ ํธ๋ฆฌํ ์๊ฐ์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ๊ทํ์ ๊ทํ์ ํํธ๋์๊ฒ ํ์ด์ ๋น๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋๊ธฐ์ ์๋ฃ๋ก ์ ํํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ํธ ๋ฐฐํ์ ์ธ ํ์คํ ๋ฆฌ ๊ฒ์ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ๋๋ฌธ์ ์์ ํ ํ์์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ ์ ๋ํด ์์ง ๊ตฌ๋ ์ค์ธ ์ฌ๋์ ์ํด: ๋ฐฉ๊ธ
rlipython
๋ฒ์ 0.1.0์ ์ถ์pip install rlipython
์ ์๊ณimport rlipython; rlipython.install()
์ดํ IPython์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ๋ ์ด์ readline์ ์ป์ ์ ์์ต๋๋ค.