ISPF中使用Ctrl+Z来执行UNDO命令
今天研究的成果,教你们如何在大机上用Windows下用惯了的Ctrl+Z来执行UNDO
命令。
首先,ISPF里面UNDO
命令默认是没有开启的。我们需要自己写一个Edit Initial Macro
来默认开启。方法如下:
step1:在usrid.REXX.EXEC
下面新建一个宏EDITMAC
,内容如下,保存退出。
/*****************************REXX***********************************/
/* This macro load automaticly when you open a dataset for edit. */
Address ispexec
"ISREDIT MACRO"
"ISREDIT RECOVERY ON"
exit
step2: 随便Edit ...
more ...ISPF-只显示含关键字的所有行
命令:
X ALL; FIND keyword ALL;
比如,只显示所有含DT0907
的行,可以这么做,先X ALL
;再FIND DT0907 ALL
;
VIEW IBMUSER.TESTJCL(TESTJOB) - 01.9 4 CHARS 'DT0907'
Command ===> find dt0907 all Scroll ===> CSR
****** ***************************** Top of Data ******************************
- - - - - - - - - - - - - - - - - - 524 Line(s) not Displayed
000525 //SORTOUT DD DSN=IBMUSER.CREATERT.FILEOUTS.DT0907,DISP ...
ISPF下如何去掉程序的第72至80列
个人不是很喜欢ISPF 3.13
提供的两个Dataset比较的功能,总觉得看得不是很直观。平时还是比较习惯用windows下面的winmerge这个软件来比较。但是有个问题,就是比较的两个程序经常在第72列至80列的行号不一致,导致没法比较。所以这里就来总结一下如何去掉DATASET的中烦人的第72列至80列内容。
方法一:直接在ISPF下面用命令去掉
这是最直接最快的办法。去掉第72列至80列的命令有下面两个:
NUM ON; UNNUMB
C P'^' ’ ’ 73 80 ALL /* Changes all non-space characters to spaces in col 73 to 80*/
方法二:用第三方脚本实现
上面的方法如果是只有少数几个程序,那么手动命令去掉第72列至80列没什么。但是如果你一下子需要对几百个dataset或者同一个PDS下面的所有member去掉第72列至80列,则最好最快的办法是将所有代码通过FTP下载到本地,然后用第三方脚本语言(如VB,Phthon,Ruby,JS等)来解决。
这里是一段自己的Ruby脚本,作用是将C:\prod ...
介绍几个比较有用的ISPF命令(续一)
接上次讲的,这里继续介绍几个常用的有用的命令。
COMP
这是比较文件的命令,功能类似于ISPF 3.13
选项。如果你正打开自己PDS下面的DMSID01.TESTLIB.PRGM(MYPGM01)
编辑,你想跟你同事(DMSID02)PDS下面的一个MYPGM02比较看看有什么不同的话,你可以直接在Command栏上输入命令:
COMP 'DMSID02.TESTLIB.PRGM(MYPGM02)'
COMP EXC
这是COMP
的高级选项,再后面加上EXC让比较结果中只显示不同的行。当然,为了不失关联性和便于理解,它还额外保留了不同处的前后各5行,显得特别人性化。可以简化成'COMP X'
F1 twice
很经常会有你想编辑某个DATASET或者Member的时候提示"Member in use"
,这时候你可以连续按两次F1,就能知道谁当前正在使用这个DATASET或者Member了。
HEX ON/OFF
文件中经常有些字符在普通的View ...
介绍几个有用的ISPF命令(续二)
M+F7 和 M+F8
命令行上输M
,接着按F7
, 表示回到文件最顶端
命令行上输M
,接着按F8
, 表示回到文件最低端
COL
显示列号,这个命令特别是在对齐的时候很有用。因为在JCl语法中,很多关键字必须规定从第几列开始写,不然会出错的,比如JCLLIB ORDER一定要从第四列开始写,所以用COL
命令显示行号是很有必要的。
HI
语法高亮用HI,比如可以用HI PLI
来高亮PL/I代码,用HI COBOl
高亮COBOl代码,用HI JCL
来高亮JCL语法,用HI REXX
来高亮REXX语法,用HI ASM来高亮汇编代码,一共支持18种语言。可以HI ...
常见的TSO ISPF命令
几个概念
TSO
TSO(Time Sharing Option),时分操作,可以同时让多个用户登录到大机上。一般我们认为的TSO是命令行模式,像一些LOGON,LOGOFF,之类的命令与大机交互。
ISPF
ISPF(Interactive System Programming Facility),它提供了一个menu菜单系统来与大机交互,可以说就是一个简单的menu system。
好了,言归正传。下面是必须知道的ISPF命令:
ISPF功能键
PF1: HELP帮助键
PF2: SPLIT键,改变分屏位置
PF3: END键,结束并退回上级菜单
PF4: RETURN键,结束并退回主菜单
PF5: REFIND键,重复最近一次FIND命令
PF6: RECHANGE键,重复最近一次CHANGE命令
PF7: UP键,向上滚屏
PF8: DOWN键,向下滚屏
PF9: SWAP键 ...
介绍几个比较有用的ISPF命令
上一篇讲的是常见的TSO/ISPF命令,这篇来讲讲我收集到的日常比较有用的ISPF命令。
HRECALL
大机上的Dataset比较久了没有被访问的话会自动被迁移(migrate)到tape中保存的,根据时间的长短,Dataset会被migrate到不同的level,比如MIGRAT1,MIGRAT2等等。这时,如果你想把这个Dataset 召(Recall)回来的话,平常我们都在这个Dataset前面打个Call
命令。这样做有个不好的地方,就是如果这个Dataset需要很长时间才能被RECALL回来的话(比如30分钟),那这30分钟之内你只能看着屏幕发呆而啥都干不了了。所以这种情况下你可以试试后台Call的命令HRECALL
,它在后台操作,结束后会有提示,完全不影响你做其他事情
NUM OFF
有时你在编辑一个Dataset的行末尾的时候,每次保存都会提示:Some input data
ignored。这时因为默认情况下末尾的行号显示是开着占了8位,这8位是不可修改的,这时你可以试试在命令行上打个NUM OFF
把行号显示关了。
XDC
这是一个SDSF(系统显示与查询工具 的命令,如果你想把一个JOB的输出Log保存到某个地方,比如自己的PDS,那么你可以在SDSF里面在这个JOB的Log前面打上XDC,然后写上你要保存的地方即可 ...
more ...