在I
Python笔记本中使用键盘快捷键会很棒,这样可以在外部编辑器(例如gvim)中编辑当前单元格的内容.也许只需将当前单元格的内容复制到临时文件中,在其上启动gvim,并在每次保存文件时更新当前单元格(并在退出gvim时删除临时文件).此外,如果从浏览器编辑单元格,也可以更新临时文件,以便gvim知道文件已更改.
我知道像vim-ipython和ipython-vimception这样的项目,但它们并不符合我的需求.我认为浏览器足以满足简单的需求,但是当需要更强大的编辑功能时,无需重新发明轮子.
谢谢.
解决方法
这就是我提出的.我添加了2个快捷方式:
>’g’用当前单元格的内容启动gvim(你可以用你喜欢的任何文本编辑器替换gvim).
>’u’用gvim保存的内容更新当前单元格的内容.
因此,当您想使用首选编辑器编辑单元格时,点击“g”,对单元格进行所需的更改,将文件保存在编辑器中(并退出),然后点击“u”.
只需执行此单元格即可启用以下功能:
%%javascript IPython.keyboard_manager.command_shortcuts.add_shortcut('g',{ handler : function (event) { var input = IPython.notebook.get_selected_cell().get_text(); var cmd = "f = open('.toto.py','w');f.close()"; if (input != "") { cmd = '%%writefile .toto.py\n' + input; } IPython.notebook.kernel.execute(cmd); cmd = "import os;os.system('gvim .toto.py')"; IPython.notebook.kernel.execute(cmd); return false; }} ); IPython.keyboard_manager.command_shortcuts.add_shortcut('u',{ handler : function (event) { function handle_output(msg) { var ret = msg.content.text; IPython.notebook.get_selected_cell().set_text(ret); } var callback = {'output': handle_output}; var cmd = "f = open('.toto.py','r');print(f.read())"; IPython.notebook.kernel.execute(cmd,{iopub: callback},{silent: false}); return false; }} );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。