问题标签 [editline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
183 浏览

php - 如何让 php readline() 默认为 Vim 模式?

这是在 CentOS 7.2,PHP 版本 5.6.20 上。根据 readline_info():

好的,所以 readline() 正在使用 EditLine。我创建了一个 ~/.editrc 文件:

权限是664。然后我尝试了:

但它似乎没有读取文件,而且它不在 Vim 模式下。执行 Alt-X 后跟“bind -v”的手动命令会将其置于 Vim 模式,所以我知道它具有 Vim 模式。

我在其他地方读到我可能需要在环境变量中手动设置路径。所以尝试设置完整路径:

依然没有。我还看到“export EL_EDITOR=vi”应该可以工作,但仍然无法工作。

有没有人有办法使这项工作?我真的需要 Vim 模式才能工作。

0 投票
4 回答
2972 浏览

c - 致命错误:editline/readline.h:没有此类文件或目录编译终止

致命错误

我正在制作 makeyourownlisp,其中必须将 editline/readline.h 和 editline/history.h 添加到程序中。以下是代码片段

我已经安装了 libedit-20170329-3.1(包含上面提到的头文件),但是如何使用这些文件并让代码滚动是我需要帮助的事情。

0 投票
1 回答
30 浏览

python - 为什么 editText 不显示 Python 类中的用户输入?

我有一个 Python 类,它显示一个包含 2 个文本字段和 2 个按钮的窗口。

用户在第一个编辑文本中输入字符串并单击(打开按钮)时,第二个编辑文本将显示用户输入。

问题是单击按钮时,文本字段中没有显示任何内容。

代码:

0 投票
3 回答
4045 浏览

mysql - 如何在Mysql中存储大于24小时的时间?

我需要创建一个列(比如idletime)来存储小时数小于或大于 24 的时间值。当我尝试插入大于 24 的值时(例如 '80:00:00'、'129:23:12'等),我收到以下错误代码:

我在网上搜索了一下,发现 TIME 数据类型的范围是 00:00:00 到 23:59:59,没有达到 24:00:00。

有什么解决方案可以解决我的问题吗?我正在存储过程中执行此插入查询。

0 投票
0 回答
309 浏览

python - macOS、.editrc 和 vi 模式

根据man editrc,您必须放入bind -v文件~/.editrc以在使用editline. 这反过来将允许您按<Esc>v那里启动 vi 本身。

但是是否有可能告诉一个 REPL(如果这很重要,我正在谈论 python)在那个按键上启动Vim ,而不是vi?我有一个旧版本的 Vim 7.3 别名为vi,这些天这并不是很有帮助,但我仍然想保持这种方式......

(以防万一,在 Bash 中,它$EDITOR 在启动编辑器时使用变量,因此工作得很好。)

0 投票
1 回答
323 浏览

c - 如何在编辑行中附加历史记录?

我正在尝试将历史追加添加到 MacPorts shell。MacPorts 当前使用类似 bash 的历史记录,其中历史记录是在会话结束后写入的。如果会话崩溃,这可能会出现问题,所以我试图让 MacPorts shell 遵循 zsh 的示例。即,在执行时将每个历史记录项附加到文件中。

GNU readline 中,这个功能对于函数来说是微不足道的append_history但是, MacPorts依赖于 Apple 的编辑线。editline 库似乎没有等效项,append_history所以我有点迷失了如何将历史记录附加到文件中。我曾想过使用像fopenand这样的旧标准函数fprintf,但我意识到 editline 对历史字符串使用自己的编码(例如,空格字符被转换为八进制\040)。MacPorts 需要与该编码兼容,因为在多个地方使用了 editline。我假设使用了这种编码,因为空格被用作历史分隔符。

我可以尝试编写自己的函数来兼容这种编码,但这似乎充满了不必要的困难。我觉得我一定是错过了什么。有没有一种简单的方法可以将历史记录附加到带有编辑行的文件中?

0 投票
0 回答
91 浏览

c - C 中的 Editline/readline 函数在使用西里尔字母时为输入添加了额外的换行符

我正在编写一个程序,在该程序中我使用 editline C 库来接收用户输入。

我正在尝试使程序能够处理西里尔文文本。我已经将程序语言环境设置为塞尔维亚西里尔文,它似乎处理得很好。

然而,当使用“editline/readline.h”头文件中的 readline 函数来处理文本时,会发生一个奇怪的运行时错误。

也就是说,只要输入的行包含一个西里尔字符,readline 函数就会在字符串末尾添加一个通常不存在的额外换行符。

我在 while 循环中插入了一个粗略的检查,以测试这实际上是 readline 函数的问题。

正如预期的那样,它给出了以下结果:

我的问题是,这个额外的换行符是从哪里来的,我是否滥用了这个函数,如果是,我该如何解决这个问题,或者如果不是这样,我是否只需检查每一行的额外字符我得到并摆脱它。似乎应该有一种更清洁的方法来摆脱这个问题,但我不知道如何。

只是为了清楚起见,我使用的是已经设置 sr_RS.utf8 语言环境的 Linux Mint。

0 投票
0 回答
69 浏览

perl - 为 XS 函数伪造标准输入

我正在尝试通过将标准输入重定向到从文件中读取来测试从标准输入读取的函数,或多或少地按照此处的建议

这是脚本:

它正在使用Term::Editline您必须先安装。在这种情况下,它不是从(伪造的)标准输入中读取,而是让我进入提示符。输入被设计成最后一个,exit,将发出退出信号(如上面的命令所示)。但是,它根本不从重定向句柄中获取输入。它可能gets实际上是在 XS 中定义的一个函数,但它可能是完全不同的东西。任何帮助将不胜感激。

0 投票
0 回答
36 浏览

python - QLineEdit 只接受整数

我已经尝试过 QIntvalidator 和 QRegExp,但它们不适用于我的应用程序。我不知道问题所在。

这是我在 QIntvalidator 中的代码:

这是我尝试 QRexExp 的代码:

0 投票
1 回答
402 浏览

debugging - 通过类似于 GDB readline 的起始字符搜索 LLDB 命令历史记录?

有没有办法在 bash 和 GDB 中搜索类似于 readline 库的history-search-backward的 LLDB 命令?

我希望能够输入一些字符,并使用向上箭头循环浏览以这些字符开头的所有命令。