在vim中保存选定的行以便在conque中运行

时间:2014-04-08 18:56:03

标签: vim

我已经开始使用conque + ipython + vim进行python开发,我想做的一件事就是能够直接从vim运行大块文本。当要复制的代码有空行或多个缩进级别时,使用<F9>经常会失败。

我试图编写一个vim函数:

  1. 从当前选定的行中删除任何常见的初始缩进(不在缓冲区中修改它们),然后
  2. 将这些修改过的行保存到临时文件中,然后
  3. %run file \n写入conque缓冲区
  4. 但我之前从未编写过vimscript,而且我对vim内部的理解是不完整的。

    到目前为止,我已经把它放在一起了:

    fun! runlines()
        let selectedlines = getbufline('%', line('<'), line('>'))
    
        " TODO : delete any initial indentation shared by all lines
    
        let temp = tempname().".py"
        call writefile(selectedlines, temp)
    
        " TODO: load into the conque buffer 
    
        au VimLeave * exe "!rm -f" temp
    endfun
    

    我认为如果有人可以提供有关如何完成TODO块的指导,这应该有用。

1 个答案:

答案 0 :(得分:0)

你试过https://github.com/ivanov/vim-ipython吗? 它能够以可视模式发送行或块。