跳转到主要内容

Vim和Pdb集成

项目描述

摘要

本软件包提供Python调试器 pdb 与VIM编辑器的集成。

用法

Python代码

使用 vimdb 很简单 - 只需在代码中插入对 set_trace 的调用,几乎和通常一样

import vimpdb; vimpdb.set_trace()

然后启动您的Python应用程序/脚本。

当Python解释器执行到该行时,vimpdb将启动一个VIM实例。VIM应该获得焦点;它将在正确的行加载源文件。

VIM命令

在VIM中,您现在可以使用以下命令

vimpdb命令

Ex命令

快捷键

详细信息

:PDBNext

n

pdb(n)ext

:PDBStep

s

pdb(s)tep

:PDBArgs

a

pdb(a)rgs

:PDBUp

u

pdb(u)p

:PDBDown

d

pdb(d)own

:PDBReturn

r

pdb(r)eturn

:PDBContinue

c

pdb(c)ontinue

:PDBBreak

b

在光标所在的行设置一个断点;类似于pdb b(reak)

:PDBClear

B

清除光标所在的行上的断点;类似于pdb cl(ear)

:PDBWord

w

评估光标所在标识符的值。

:PDBEval

?

在询问后评估Python表达式。

:PDBReset

x

切换回使用标准pdb的shell中的正常调试。

N/A

v(im)

切换回vimpdb;仅在纯pdb中。

标准 pdb 钩子

如果您发现很难改变习惯并继续输入

import pdb; pdb.set_trace()

您可以在家目录中的.pdbrc文件中添加以下行

import vimpdb; vimpdb.hookPdb()

这样,上述提到的v(im)命令就被添加到了您的标准pdb中,您可以在任何时候切换到vimpdb

需求

vimpdb在Linux、Mac OSX和Windows下已成功使用。

它与Python 2.7、2.6、2.5和2.4兼容。它与Python 3.1(3.0也应如此)不兼容。

vimpdb需要一个同时支持pythonclientserver选项的VIM安装。

通过在VIM提示符下发出以下命令来找出是否是这种情况

:version

如果支持选项,您将在输出中看到+clientserver+python。相反,您将看到-clientserver-python

在Linux和Windows上,默认的VIM构建应该已经启用了服务器功能。

在Windows上,VIM中编译的python选项依赖于特定的Python版本。通过在VIM提示符下发出以下命令来找出该特定版本是否已安装并在VIM中工作

:python import sys; print sys.version

在Mac OSX上,您需要使用MacVIM。MacVIM默认也编译了python选项。

安装

使用easy_install进行标准安装

$ easy_install vimpdb

您显然也可以使用pip

如果您查看包内部,您将看到一个VIM脚本文件:vimpdb.vim。请不要将其移动到VIM配置目录(如~/.vim/plugin)。vimpdb知道如何使脚本对VIM可用。

配置

简短故事

vimpdb试图避免依赖于任何用户配置。如果它无法自动检测正确的配置,它将询问一些问题,您应该能够轻松回答。

长篇故事

启动时,vimpdb会查找其RC文件:~/.vimpdbrc。如果找不到它,vimpdb会从默认值创建该文件。

vimpdb 尝试一组默认值,这些值应该能够工作。它会检查这些默认值是否合适。如果默认值不起作用,vimpdb 将交互式地询问其他值,直到确认提供的值确实有效。

以下是每个操作系统对应的默认值。

对于 Linux

vim_client_script = vim
vim_server_script = gvim
server_name = GVIM
port = 6666

对于 MacOSX

vim_client_script = mvim
vim_server_script = mvim
server_name = VIM
port = 6666

对于 Windows

vim_client_script = vim.exe
vim_server_script = gvim.exe
server_name = VIM
port = 6666

下面详细说明了每个选项。

显然,您可以创建和调整该 RC 文件。不过,RC 文件应包含所有 4 个选项的值。如果其中一个选项缺失,vimpdb 将会中断并相应地报错。

VIM客户端脚本 - vim_client_script

为了与调试发生的 VIM 实例通信,vimpdb 需要启动另一个客户端模式的 VIM 实例。

vim_client_script 选项包含用于启动带有 clientserver 支持的 VIM 实例的脚本。

在 Windows 上,它应该包含 vim.exe不要 使用 gvim.exe。此外,请不要在值中包含引号,以处理路径中的空格。

VIM服务器脚本 - vim_server_script

如果没有 VIM 实例正在运行,vimpdb 将以服务器模式启动一个 VIM 实例。

vim_server_script 选项包含用于启动带有 clientserver 支持的 VIM 实例的脚本。由于 VIM 实例中的调试是用 python 编写的,因此该实例必须支持 python

在 MacOSX 和 Linux 上,vim_server_scriptvim_client_script 可以具有相同的值。

在 Windows 上,只能使用图形 VIM 作为服务器,这是为什么上面有两个不同的默认值。

服务器名称 - server_name

服务器模式的 VIM 实例有一个名称。

默认情况下,vimpdb 使用名为 VIM 的服务器进行通信,这是 VIM 默认的 servername

如果您想 vimpdb 使用另一个服务器名称,请修改 server_name 选项。它应该包含您想要用于调试的 VIM 服务器的名称。

您可以使用以下命令列出当前运行的 VIM 服务器:

$ vim --serverlist
VIM

或者在 Mac 上

$ /Applications/MacVim.app/Contents/MacOS/Vim --serverlist
VIM

当运行带有 clientserver 支持的 VIM 实例时,您可以在 VIM 提示符中输入以下命令来找到其实例名称:

:echo v:servername

UDP端口 - port

VIM 通过 UDP 套接字与 vimpdb 通信。默认情况下,套接字在端口 6666 上打开。

如果您的系统上没有可用的该套接字,您可以使用 port 选项指定一个可用的端口号。

已知问题

目前没有。

向后兼容性

在版本 0.4.1 之前,vimpdb RC 文件 (~/.vimpdbrc) 有一个单独的 script 选项。该选项已转换为 vim_client_script 选项。升级应该是透明的。

在版本 0.4.0 之前,vimpdb 通过环境变量进行配置。如果您已有工作配置,升级应该是透明的。环境变量 VIMPDB_SERVERNAMEVIMPDB_VIMSCRIPT 的值已在 RC 文件 (~/.vimpdbrc) 中设置。它们分别放置在 server_namescript 选项中。

修复的问题

变更日志

致谢

变更日志

0.4.5 (2011-04-28)

  • 修复当前行的突出显示。

0.4.4 (2010-11-29)

  • 测试清理:移除辅助类和函数。

  • 代码清理:改进导入风格。

  • 在c(ontinue)之后,按键映射又出错了(:-()。

0.4.3.2 (2010-11-27)

  • 修复文档中的Linux默认值。

  • 记录PDBxx命令。

  • 减少VIM命令行的噪音。

  • 改进当前行的突出显示。

0.4.3 (2010-11-26)

  • 修复VIM服务器启动时服务器名称冲突的问题(如VIM和GVIM)。

  • 修复VIM支持检测。

  • 修复vimpdb缓冲区创建。

  • 修复和调整Linux默认值。

0.4.2 (2010-11-26)

  • PDBEval(映射到?键)以请求评估Python表达式。

  • PDBClear(映射到B键)以清除先前设置的断点。

  • 只有当VIM中已打开文件时才打开新标签页。

  • continuec)、resetx)或退出(q)时关闭vimpdb缓冲区。

  • 即使另一个服务器正在运行,也要启动VIM服务器。

0.4.1.2 (2010-11-26)

  • 完善文档。

0.4.1.1 (2010-11-26)

  • 调整文档。

0.4.1 (2010-11-26)

  • 检查pythonclientserver支持;如果支持缺失,则提供正确配置的机会。

  • 尝试启动VIM服务器实例,如果尚未运行。

0.4.0 (2010-07-29)

  • 在Python 2.7上进行了测试。

  • UDP端口现在是可选项。

  • 通过~/.vimpdbrc进行配置,而不是环境变量。

0.3.8 (2010-06-17)

0.3.7 (2010-05-20)

0.3.6 (2010-04-17)

0.3.5 (2010-03-22)

  • 更好的文档,特别是Windows。

  • 修复:Python 2.5和2.6的输出捕获出错了。

  • Windows兼容性(至少XP)

0.3.4 (2010-03-15)

  • 关闭套接字,以便可以再次开始调试会话。

0.3.3 (2010-03-04)

  • 避免在调试的缓冲区中留下映射。

0.3.2 (2010-03-03)

  • 更多文档

0.3.1 (2010-03-02)

  • 修复setup.py元数据,使其不包含非ASCII字符。这避免了实际发布到PyPI。

0.3 (2010-03-02)

  • 完全重写。

0.2.1 (2008-06-27)

  • 添加vimpdb脚本。

  • 添加“退出”回调。

0.2 (2008-06-17)

  • 首次发布到PyPI。

待办事项

按优先级排序

  • 添加监视窗口。

  • 突出显示断点

  • 条件断点

  • 在VIM关闭调试时将调试状态保存在VIM中,以便将vimpdb切换回pdb。

  • vimpdb缓冲区中的按键绑定。

  • 启用按键绑定的自定义。

等等...

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

vimpdb-0.4.5.tar.gz (20.1 kB 查看哈希值)

上传于

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面