我是VIM的新手,并且正在使用此命令保存并运行Python脚本:
:w !python
但是,我不能上下移动来读取输出。我给出的唯一选择是按回车或输入命令。我试图猛拉(:%y+
)所有内容,但实际代码被拉出而不是输出。我希望能够读取VIM中显示的所有输出,更好的是打开带有输出的新选项卡,并能够搜索和读取所有输出。
答案 0 :(得分:2)
您可以像往常一样使用重定向将运行脚本的python输出写入不同的文件。例如:
:w !python > temp
然后
:tabnew temp
不确定是否有办法将输出直接写入另一个缓冲区。
另一种选择是将脚本保存到文件(例如“script.py”),然后切换到要查看输出的其他缓冲区,然后将其过滤为:
:%!python script.py
它将用脚本的输出替换缓冲区的全部内容。
答案 1 :(得分:0)
将此功能放在vimrc中。 它将打开一个窗口,其中包含捕获的输出(对于任何命令,而不仅仅是python)。
function! Redir(cmd)
for win in range(1, winnr('$'))
if getwinvar(win, 'scratch')
execute win . 'windo close'
endif
endfor
if a:cmd =~ '^!'
let output = system(matchstr(a:cmd, '^!\zs.*'))
else
redir => output
execute a:cmd
redir END
endif
botright vnew
let w:scratch = 1
setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
call setline(1, split(output, "\n"))
endfunction
"`:Redir` followed by either shell or vim command
command! -nargs=+ -complete=command Redir silent call Redir(<q-args>)
也在vim中执行:help python
。
也有python插件。