4

在 gnuplot 中,我输入

gnuplot> set style data lines

然后我运行其他几行:

gnuplot> plot "./data/traj1.dat" u 1:4, "" u 1:6, "" u 1:9, "" u 1:11, "" u 1:13, "" u 1:15
gnuplot> plot "./data/traj2.dat" u 1:4, "" u 1:6, "" u 1:9, "" u 1:11, "" u 1:13, "" u 1:15
gnuplot> plot "./data/traj3.dat" u 1:4, "" u 1:6, "" u 1:9, "" u 1:11, "" u 1:13, "" u 1:15

现在我想改变风格。我从

gnuplot> set

我想按例如 ctrl-r ( http://www.bigsmoke.us/readline/shortcuts ) 并完成命令

gnuplot> set style data lines

然后我可以更改linespoints例如。

如何使这种自​​动完成发生?

4

2 回答 2

4

部分解决方案确实是编译带有 readline 支持的 gnuplot。你提到这是你在评论中的最后一个选择,但我认为如果你不想自己编写一个 gnuplot 前端,这是你唯一的选择。也许知道从 ubuntu 源代码编译 gnuplot 真的很容易会有所帮助。我自己在 <10 分钟内完成了这个。只需运行(在您选择的目录中)命令

sudo apt-get purge gnuplot
sudo apt-get build-dep gnuplot
cd `mktemp -d`
apt-get source gnuplot
cd gnuplot*
./configure --with-readline=gnu
make
sudo make install

写完前几个字母后按 Tab 键将完成当前单词,如果按两次 Tab 键,它将打印您从 gnu-shell 中知道的建议列表。不幸的是,并非所有的 readline 功能似乎都适用于当前的 gnuplot(我知道他们曾经这样做过)。例如,用于反向搜索的 Ctrl+r(对 gnuplot 非常有用)对我不起作用。希望这会有所帮助,尽管诚然,这可能只是您的部分解决方案。

于 2013-05-15T17:01:03.623 回答
1

您可以使用rlwrap来获得此功能(使用CTRL+ R、文件名和关键字完成的历史搜索),而无需编译任何内容。如果您使用 Ubuntu,请通过运行以下命令从Universe存储库安装它:

sudo apt-get install rlwrap

使用以下命令运行 gnuplot:

rlwrap -a -N -c -b \' -D 2 -s 1000 gnuplot

where-a -N覆盖 gnuplot 内置的 readline 支持,-c为您提供文件名完成,-b \'让您完成类似的内容plot 'incomp[TAB]lete'-D 2从历史记录中删除重复项并-s 1000从默认的 300 增加历史记录大小。

或者将此行添加到您的启动脚本(即 , .bashrc.zshrc中,这样您就可以使用 gnuplot 而无需任何额外的输入:

alias gnuplot="rlwrap -a -N -c -b \' -D 2 -s 1000 gnuplot"

此外,可以通过在文件中列出所有关键字来完成关键字$RLWRAP_HOME/gnuplot_completions。但是,使用 rlwrap 不可能完成上下文相关的完成。

您可能希望将您的 gnuplot 命令历史导出到 rlwrap(因此您不必从头开始),如下所示:

tail -n +2 ~/.gnuplot_history | while read -r; do print $REPLY; done > $RLWRAP_HOME/gnuplot_history

tail摆脱 gnuplot 的标题并print转换转义字符(我想知道为什么 gnuplot 的历史记录是这样存储的)。

于 2015-10-08T07:51:54.380 回答