在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
然后我可以将lines
更改为points
。
如何进行自动完成?
答案 0 :(得分: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非常有用)对我不起作用。希望这有助于尽管这可能只是你的部分解决方案。
答案 1 :(得分:1)
您可以使用rlwrap来获取此功能(使用 CTRL + R 进行历史记录搜索,文件名和关键字完成),而无需编译任何内容。如果您使用Ubuntu,请通过运行
从 universe 存储库安装它sudo apt-get install rlwrap
使用以下命令运行gnuplot:
rlwrap -a -N -c -b \' -D 2 -s 1000 gnuplot
其中-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的历史会像这样存储)。