在vim中运行代码块

2024-04-24 00:43:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在.vimrc中添加了以下代码:

" Runs python inside vim
  autocmd FileType python nnoremap <buffer> <F9> :exec '!clear; python' shellescape(@%, 1)<cr>

这允许我在按下F9键时从vim内部运行整个python脚本。然而,有几次我不想运行整个python脚本,而只想运行一行甚至一块行。我在谷歌上搜索这些行为,但没有找到任何有效的解决方案,至少对我来说是这样。在

有人能帮我吗?在

谢谢


Tags: 代码脚本bufferrunsvimvimrccrexec
1条回答
网友
1楼 · 发布于 2024-04-24 00:43:38

首先,您应该创建一个函数来获取可视选定的文本。我从https://stackoverflow.com/a/6271254/3108885拿来的:

function! s:GetVisualSelection()
  let [lnum1, col1] = getpos("'<")[1:2]
  let [lnum2, col2] = getpos("'>")[1:2]
  let lines = getline(lnum1, lnum2)
  let lines[-1] = lines[-1][:col2 - (&selection == 'inclusive' ? 1 : 2)]
  let lines[0] = lines[0][col1 - 1:]
  return join(lines, "\n")
endfunction

然后,为视觉模式添加一个autocmd。在

^{pr2}$

请注意,<C-U>用于在视觉模式下按:时清洁'<,'>事物。我们还使用python -c将程序作为字符串传递。在

相关问题 更多 >