3

我正在使用 pdl2 shell,如何列出我的所有命令历史记录?

4

2 回答 2

3

您可以在 $HOME/.perldl_hist 中找到您的历史记录

这可能取决于也可能不取决于是否安装了 Term::ReadLine::Gnu(我默认安装了)。

如果您想在 中访问您的历史记录pdl,则只需使用向上箭头键执行前面的命令,或输入 ^R (control-r) 然后输入您要搜索的文本(重复按 ^r 以获取更远的匹配项) .

$ pdl
perlDL shell v1.354
...blah blah blah...
pdl> print 1+1
2
pdl> print 2+2
4
pdl> quit

$ cat ~/.perldl_hist 
print 1+1
print 2+2
$ 

编辑:要从内部 pdl查找历史记录,请执行以下操作:

$ pdl
pdl> print join "\n", $PERLDL::TERM->GetHistory

返回当前历史记录的$PERLDL::TERM->GetHistory数组。它只是一个常规数组,所以你可以用它做任何你喜欢的事情。例如,要查找所有最近涉及名为 的 piddle 的直方图操作mypdl,您可以执行以下操作:

pdl> print join "\n", grep { /histogram/ && /mypdl/ } $PERLDL::TERM->GetHistory
于 2011-07-10T07:22:21.960 回答
1

从 PDL 文档(即,pdldoc perldl):

History mechanism
  If you have the perl modules ReadLines and ReadKeys installed, then
  perldl supports a history and line-editing mechanism using editing keys
  similar to emacs. The last 500 commands are always stored in the file
  .perldl_hist in your home directory between sessions. Set
  $PERLDL::HISTFILESIZE to change the number of lines saved. The command
  "l [number]" shows you the last "number" commands you typed where
  "number" defaults to 20.
于 2012-04-22T04:54:53.877 回答