Jack Kamm <jackk...@gmail.com> writes: >> What might be more robust is to provide an explicit "start session >> from Org Src buffer" command for ob-python and re-bind `run-python' to >> this command in Org Src buffers. > > We could refactor `org-babel-python-initiate-session-by-key' to call a > separate `org-babel-python-run-python' interactive command that wraps > `run-python', and then rebind `run-python' to it in a local minor mode > for ob-python Src buffers, which could be started in > `org-babel-edit-prep:python'. > > But I'm not sure if it's worth the hassle, or if d0d838b02 already > addresses the concern sufficiently?
For ob-python, there is little difference. I am thinking in a more general context of all the babel backends that support sessions. python.el is convenient as it allows setting the session buffer name in advance via buffer-local variable. Then, all the normal python-mode commands, including `run-python' or `python-shell-send-region' will work as expected. However, other babel backends like ob-R do not have such a luxury (see the dance with renaming R process buffer in `org-babel-R-initiate-session'). That's why I thought about remapping `run-python' and all the equivalent commands for other backends. However, as in the above example, `run-python' is not the only mean to initiate session in various major modes - sending a line or region at point is another common command; and they might be others. Not to mention that re-binding is not panacea - people may still run the original commands via M-x. So, re-binding is probably not the best idea. In other words, `org-babel-python-run-python' is not necessary. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>