Capítulo 11 Usando sgml-mode com o Emacs

As versões recentes do Emacs ou XEmacs (disponível na coleção dos ports) contêm um pacote muito útil chamado PSGML (ele pode ser instalado pelo editors/psgml). Ele é automaticamente invocado quando um arquivo com a extensão .xml é carregado, ou executando M-x sgml-mode, ele é a modalidade principal para tratar dos elementos e dos atributos de um arquivo SGML.

Compreender alguns dos comandos fornecidos por esta modalidade pode tornar o trabalho com os documentos em SGML, tais como o Handbook, muito mais fácil.

C-c C-e

Executa o sgml-insert-element. Você será questionado sobre o nome do elemento que deseja inserir no ponto atual. Você pode usar a tecla TAB para completar o elemento. Os elementos que são inválidos no ponto atual não serão permitidos.

As tags de abertura e de fechamento para o elemento serão inseridas. Se o elemento contiver outro, obrigatórios, os elementos destes também serão inseridos.

C-c =

Executa o sgml-change-element-name. Coloque o cursor dentro de um elemento e execute este comando. Você será questionado sobre o nome do elemento para o qual você deseja mudar. As tags de abertura e de fechamento do elemento atual serão alterados para o novo elemento.

C-c C-r

Executa o sgml-tag-region. Selecione algum texto (posicione o cursor no começo do texto, de C-espaço, agora posicione o cursor no final do texto, de C-espaço) e execute então este comando. Você será questionado sobre o nome do elemento que deseja inserir. Este elemento será inserido então imediatamente antes e depois da região marcada.

C-c -

Executa o sgml-untag-element. Coloque o cursor dentro da tag de abertura ou de fechamento do elemento que você quer remover, e execute este comando. As tags de abertura ou de fechamento do elemento serão removidas.

C-c C-q

Executa o sgml-fill-element. Irá reformatar recursivamente o elemento atual. A reformatação afetará o conteúdo em que os espaços em branco são significativos, como dentro de elementos <programlisting>, assim utilize este comando com cuidado.

C-c C-a

Executa o sgml-edit-attributes. Abre um segundo buffer que contém uma lista de todos os atributos e valores atuais para o elemento mais próximo. Use a tecla TAB para navegar entre os atributos, utilize C-k para remover um valor existente e para substituí-lo com um novo, utilize C-c C-c para fechar este buffer e para retornar ao documento principal.

C-c C-v

Executa o sgml-validate. Você será questionado se deseja salvar o documento atual (se necessário) e então executa uma validação do SGML. A saída da validação é capturada em um novo buffer, e você poderá então navegar de um foco de problema para outro, corrigindo os erros de marcação durante este processo.

C-c /

Executa sgml-insert-end-tag. Insere a tag de fechamento para o elemento atual que está aberto.

Sem dúvida há outras funções úteis desta modalidade, mas estas são as que você irá utilizar com mais frequência.

Você também pode usar as seguintes entradas no .emacs para ajustar o espaçamento apropriado, a identação, e a largura de coluna para trabalhar com o projeto de documentação.

    (defun local-sgml-mode-hook
      (setq fill-column 70
            indent-tabs-mode nil
            next-line-add-newlines nil
            standard-indent 4
            sgml-indent-data t)
      (auto-fill-mode t)
      (setq sgml-catalog-files '("/usr/local/share/xml/catalog")))
    (add-hook 'psgml-mode-hook
      '(lambda () (local-psgml-mode-hook)))

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.