加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim – 在外部编辑器中编辑IPython单元格

发布时间:2020-12-15 22:46:01 所属栏目:安全 来源:网络整理
导读:在I Python笔记本中使用键盘快捷键会很棒,这样可以在外部编辑器(例如gvim)中编辑当前单元格的内容.也许只需将当前单元格的内容复制到临时文件中,在其上启动gvim,并在每次保存文件时更新当前单元格(并在退出gvim时删除临时文件).此外,如果从浏览器编辑单元格,
在I Python笔记本中使用键盘快捷键会很棒,这样可以在外部编辑器(例如gvim)中编辑当前单元格的内容.也许只需将当前单元格的内容复制到临时文件中,在其上启动gvim,并在每次保存文件时更新当前单元格(并在退出gvim时删除临时文件).此外,如果从浏览器编辑单元格,也可以更新临时文件,以便gvim知道文件已更改.

我知道像vim-ipython和ipython-vimception这样的项目,但它们并不符合我的需求.我认为浏览器足以满足简单的需求,但是当需要更强大的编辑功能时,无需重新发明轮子.

你知道IPython笔记本中是否存在这样的功能吗?

谢谢.

解决方法

这就是我提出的.我添加了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.pyn' + 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;
    }}
);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读