1. Abrindo um arquivo para edição

Na opção 2 do Primary Menu, o ISPF pede o nome do dataset que você quer editar:

Edit Entry Panel Command ===> _ ISPF Library: Project . . LC001 Group . . . COBOL Type . . . . SOURCE Member . . . CALCFOL (Blank or pattern for member list) Other Partitioned or Sequential Dataset: Name . . . . 'LC001.COBOL.SOURCE(CALCFOL)' Volume Serial (If not cataloged)

Você pode especificar o dataset de duas formas:

  • ISPF Library: campos Project/Group/Type/Member são concatenados para formar o nome completo — ex: LC001.COBOL.SOURCE(CALCFOL)
  • Other Dataset: digita o nome completo entre aspas simples diretamente

✅ Aspas simples são obrigatórias no nome completo

Quando digitar o nome no campo "Other Dataset", sempre use aspas simples: 'LC001.COBOL.SOURCE(CALCFOL)'. Sem aspas, o ISPF adiciona seu userid como prefixo e vai procurar LC001.LC001.COBOL.SOURCE — que não existe.

2. Anatomia da tela do editor

Depois de abrir o arquivo, a tela do editor tem três áreas principais:

File Edit Edit_Settings Menu Utilities Compilers Test Help ──────────────────────────────────────────────────────────────────────────────── EDIT LC001.COBOL.SOURCE(CALCFOL) Columns 00001 00072 Command ===> find 'MOVE' Scroll ===> CSR ──────────────────────────────────────────────────────────────────────────────── ****** ***************************** Top of Data ****************************** 000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. CALCFOL. 000003 * 000004 ENVIRONMENT DIVISION. 000005 DATA DIVISION. 000006 WORKING-STORAGE SECTION. 000007 01 WS-SALDO PIC 9(10)V99. ****** **************************** Bottom of Data ****************************
  • Linha de título: mostra o dataset aberto e as colunas visíveis
  • Command: onde você digita comandos primários (FIND, CHANGE, SAVE…)
  • Scroll: define quanto a tela rola por vez (CSR = até o cursor; PAGE = uma página; HALF = meia página; número = linhas fixas)
  • Área de edição: os números de linha (em azul/ciano) são a coluna de comandos de linha

3. Comandos primários

Comandos primários são digitados no campo Command ===> e agem sobre o arquivo inteiro ou uma região. Os mais importantes:

ComandoForma curtaO que faz
FIND stringF stringLocaliza a próxima ocorrência de string; PF5 repete
FIND string PREVF string PLocaliza a ocorrência anterior
FIND string ALLF string ALLDestaca todas as ocorrências
CHANGE old newC old newSubstitui a próxima ocorrência; PF6 repete
CHANGE old new ALLC old new ALLSubstitui todas as ocorrências
SAVESalva as alterações sem sair do editor
CANCELCANSai do editor descartando alterações
ENDou PF3Sai salvando as alterações
SUBMITSUBSubmete o JCL atual como job
LOCATE nL nVai para a linha número n
CAPS ONConverte tudo que você digitar para maiúsculas
CAPS OFFDesativa a conversão automática
HEX ONMostra o conteúdo em hexadecimal (útil para debug)
NUMS ON/OFFMostra/oculta os números de linha COBOL (colunas 1–6)

✅ FIND com delimitadores

Para encontrar uma palavra exata (não como parte de outra), use aspas: F 'MOVE' encontra MOVE mas não REMOVE. Você também pode combinar: F 'WS-' NEXT ou F 'MOVE' WORD para buscar palavras completas.

4. Comandos de linha

Comandos de linha são digitados no lugar do número de linha para agir em linhas específicas. Basta sobreescrever os dígitos com a letra do comando e pressionar Enter.

000006 WORKING-STORAGE SECTION. i 01 WS-NOME PIC X(30). ← digitei 'i' no lugar do número → insere linha abaixo 000007 01 WS-SALDO PIC 9(10)V99.
ComandoO que fazExemplo
IInsere uma linha em branco abaixoSobrescrever número com i
InInsere n linhas em brancoi5 = insere 5 linhas
DDeleta a linhaSobrescrever com d
DnDeleta n linhasd3 = deleta 3 linhas
RRepete (duplica) a linhaSobrescrever com r
RnRepete a linha n vezesr3 = cria 3 cópias
CCopia a linha (use com A ou B)c + a em outra linha
MMove a linha (use com A ou B)m + b em outra linha
ADestino: depois desta linha (after)Usado com C ou M
BDestino: antes desta linha (before)Usado com C ou M
XExclui a linha da exibição (não deleta)Útil para ocultar linhas temporariamente
( / )Desloca o conteúdo 2 colunas à esquerda/direitaIndentar ou desindentar

🦕 Analogia — comandos de linha como post-its

Pense nos números de linha como post-its colados do lado do texto. Você "raspa" o número e escreve sua instrução no lugar: d para apagar, i para inserir, c para copiar. Quando pressiona Enter, o ISPF lê todos os post-its e executa as instruções na ordem.

5. Operações com blocos

Para operar em várias linhas de uma vez, use os comandos de bloco — letras duplicadas que marcam o início e o fim de um bloco:

000010 PROCEDURE DIVISION. cc MOVE ZEROS TO WS-SALDO. ← início do bloco de cópia 000012 MOVE SPACES TO WS-NOME. cc PERFORM CALCULAR. ← fim do bloco de cópia 000014 STOP RUN. a DISPLAY WS-SALDO. ← destino: colar depois desta linha
ComandoO que faz
CCCCCopia um bloco de linhas (marque início e fim)
MMMMMove um bloco de linhas
DDDDDeleta um bloco de linhas
RRRRRepete um bloco de linhas
(( ((Desloca bloco para a esquerda
))))Desloca bloco para a direita

⚠️ Marque sempre início e fim do bloco

Se você digitar CC em uma linha e Enter sem marcar o fim do bloco com outro CC, o ISPF vai exibir a mensagem "INVALID — Block not complete". Sempre marque os dois extremos do bloco antes de pressionar Enter.

6. SUBMIT e salvar

Quando você está editando um membro JCL, pode submetê-lo como job sem sair do editor:

Command ===> sub ← pressione Enter JOB CALCJOB(JOB01234) SUBMITTED

O ISPF mostra na linha de mensagem o nome do job e o número atribuído pelo JES. Você pode então ir ao SDSF (=10) para acompanhar a execução.

Para salvar sem sair:

  • Digite SAVE na linha de comando → salva e permanece no editor
  • Pressione PF3 (END) → salva e sai do editor
  • Digite CANCEL → sai sem salvar

💗 PF3 salva automaticamente

Diferente de editores modernos onde Ctrl+S salva e sair fecha sem perguntar, no ISPF PF3 salva E sai ao mesmo tempo. Se quiser sair sem salvar, use CANCEL. Isso surpreende quem vem de ambientes onde sair sempre pergunta "deseja salvar?".

7. UNDO — desfazer alterações

O ISPF Editor tem um mecanismo de desfazer. Digite UNDO na linha de comando para reverter a última alteração. Cada UNDO adicional volta uma alteração a mais. Para refazer, use REDO.

⚠️ UNDO não funciona em todos os ambientes

O UNDO do ISPF depende do parâmetro de perfil RECOVERY ON. Se estiver OFF, não há desfazer. Para verificar e ativar, digite RECOVERY ON na linha de comando. Alguns sites mantêm isso desativado por padrão para economizar espaço de trabalho.