2013-01-23 52 views
1

只是覺得應該記錄此(自回答如下):用戶定義的命令,如gdb的define,用於gnuplot終端中的多個命令?

當與終端gnuplot工作,可以使用上下鍵盤上的箭頭通過類型化的迭代命令歷史 - 就像在gdb

但是,有時可能會有一系列我經常重複的命令 - 我想通過發出一個命令來調用。例如,一個在gnuplot中與交互式x11終端一起工作,並且想要以png格式獲得「截圖」。這要求將終端改爲png,設置輸出,發出plot,終端恢復爲x11;或:

set terminal png 
set output 'gnuplot.png' 
replot 
set terminal x11 

我想這個序列用一個命令調用 - 儘管我知道,這可能適合在一行上,用分號作爲分隔符:

set terminal png ; set output 'gnuplot.png' ; replot ; set terminal x11 

gdb,有一個命令,define,它允許user-defined commands;一個簡單的問題在gdb終端:

(gdb) define fn 
> finish 
> next 
> end 

...並從這一點上,可以在終端上鍵入fn調用finishend序列。

有沒有類似於gnuplot的東西?

回答

1

是的,似乎有 - 有一個稱爲宏(help macrosgnuplot)的設施,其中一個字符串變量可以通過將@(「at」字符)添加到它的名稱來擴展。

默認情況下,此功能處於禁用狀態,因此需要考慮啓用它。這就是爲什麼它的最好保存在一個init腳本文件序列,命名例如init.gp

print "" 
print "init.gp starting" 

set terminal x11 

# define capt string variable as sequence 
# of commands, semicolon separated 

capt = "print 'Saving...' ; set terminal png ; set output 'gnuplot.png' ; replot ; set terminal x11" 

print "macros state: " 
show macros 

print "enabling macros state:" 
set macros 
show macros 

print "The @capt command should be available now." 
print "" 
print "init.gp ending" 
print "" 

那麼就可以做這樣的終端會話中gnuplot

$ gnuplot 

    G N U P L O T 
    [...] 

Terminal type set to 'wxt' 

gnuplot> load "init.gp" 

init.gp starting 
macros state: 

    command line macros will not be expanded 

enabling macros state: 

    command line macros will be expanded 

The @capt command should be available now. 

init.gp ending 

gnuplot> plot sin(x) 

gnuplot> @capt 
Saving... 
Terminal type set to 'png' 
Options are 'nocrop font /usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf 12 size 640,480 ' 
Terminal type set to 'x11' 
Options are ' nopersist' 

gnuplot> plot cos(x) 
Closing gnuplot.png 

gnuplot> exit 

$ identify gnuplot.png 
gnuplot.png PNG 640x480 640x480+0+0 8-bit PseudoClass 102c 5.58KB 0.000u 0:00.000 

好了,希望這幫助別人,
乾杯!

+0

作爲一個附註,gnuplot在開始以交互模式工作時會在用戶的主目錄中查找'.gnuplot'(在* NIX - 不知道窗口上的文件是什麼)。該腳本將自動加載。還有一個環境變量'GNUPLOT_LIB',它是'load'將搜索請求文件的目錄。 – mgilson