--- description: 'Configuração usada nos editores de textos do Projeto de Documentação do FreeBSD' next: books/fdp-primer/see-also path: /books/fdp-primer/ prev: books/fdp-primer/writing-style showBookMenu: 'true' tags: ["editor", "configuration", "vim", "emacs", "FreeBSD"] title: 'Capítulo 12. Configuração do Editor' weight: 13 --- [[editor-config]] = Configuração do Editor :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 12 :partnums: :source-highlighter: rouge :experimental: :images-path: books/fdp-primer/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] Ajustar a configuração do editor de texto pode tornar o trabalho nos arquivos da documentação mais rápido e fácil, além de ajudar os documentos a ficarem em conformidade com as diretrizes do projeto. [[editor-config-vim]] == Vim Instale-o a partir de package:editors/vim[], package:editors/vim-console[], ou package:editors/vim-tiny[] e siga as instruções de configuração em <>. [[editor-config-vim-use]] === Uso Pressione kbd:[P] tpara reformatar parágrafos ou texto selecionado no modo Visual. Pressione kbd:[T] para substituir grupos de oito espaços por um tab. [[editor-config-vim-config]] === Configuração Edite o [.filename]#~/.vimrc#, adicionando estas linhas ao final do arquivo: [.programlisting] .... if has("autocmd") au BufNewFile,BufRead *.sgml,*.ent,*.xsl,*.xml call Set_SGML() au BufNewFile,BufRead *.[1-9] call ShowSpecial() endif " has(autocmd) function Set_Highlights() "match ExtraWhitespace /^\s* \s*\|\s\+$/ highlight default link OverLength ErrorMsg match OverLength /\%71v.\+/ return 0 endfunction " Set_Highlights() function ShowSpecial() setlocal list listchars=tab:>>,trail:*,eol:$ hi def link nontext ErrorMsg return 0 endfunction " ShowSpecial() function Set_SGML() setlocal number syn match sgmlSpecial "&[^;]*;" setlocal syntax=sgml setlocal filetype=xml setlocal shiftwidth=2 setlocal textwidth=70 setlocal tabstop=8 setlocal softtabstop=2 setlocal formatprg="fmt -p" setlocal autoindent setlocal smartindent " Rewrap paragraphs noremap P gqj " Replace spaces with tabs noremap T :s/ /\t/ call ShowSpecial() call Set_Highlights() return 0 endfunction " Set_SGML() .... [[editor-config-emacs]] == Emacs Instale-o a partir de package:editors/emacs[] ou package:editors/emacs-devel[]. [[editor-config-emacs-validation]] === Validação O modo nxml do Emacs usa esquemas NG relax compacto para validar o XML. Um esquema NG relax compacto para a extensão do FreeBSD para DocBook 5.0 está incluído no repositório de documentação. Para configurar o modo nxml para validar usando este esquema, crie [.filename]#~/.emacs.d/schema/schemas.xml# e adicione estas linhas ao arquivo: .... locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0" documentElement localName="section" typeId="DocBook" documentElement localName="chapter" typeId="DocBook" documentElement localName="article" typeId="DocBook" documentElement localName="book" typeId="DocBook" typeId id="DocBook" uri="/usr/local/share/xml/docbook/5.0/rng/docbook.rnc" locatingRules .... [[editor-config-emacs-igor]] === Revisão Automatizada com Flycheck e Igor O pacote Flycheck está disponível no Emacs Lisp Package Archive da Milkypostman (MELPA). Se a MELPA ainda não estiver nos repositórios de pacotes do Emacs, ele pode ser adicionado executando .... (add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t) .... Adicione a linha ao arquivo de inicialização do Emacs (qualquer um deles, [.filename]#~/.emacs#, [.filename]#~/.emacs.el#, ou [.filename]#~.emacs.d/init.el#) para tornar esta alteração permanente. Para instalar o Flycheck, execute .... (package-install 'flycheck) .... Crie um verificador Flycheck para package:textproc/igor[] executando .... (flycheck-define-checker igor "FreeBSD Documentation Project sanity checker. See URLs https://www.freebsd.org/docproj/ and http://www.freshports.org/textproc/igor/." :command ("igor" "-X" source-inplace) :error-parser flycheck-parse-checkstyle :modes (nxml-mode) :standard-input t) (add-to-list 'flycheck-checkers 'igor 'append) .... Novamente, adicione essas linhas ao arquivo de inicialização do Emacs para tornar as mudanças permanentes. [[editor-config-emacs-specifc]] === Configurações Específicas da Documentação do FreeBSD Para aplicar configurações específicas para o projeto de documentação do FreeBSD, crie o arquivo [.filename]#.dir-locals.el# no diretório raiz do repositório de documentação e adicione estas linhas ao arquivo: .... ;;; Directory Local Variables ;;; For more information see (info "(emacs) Directory Variables") ((nxml-mode (eval . (turn-on-auto-fill)) (fill-column . 70) (eval . (require 'flycheck)) (eval . (flycheck-mode 1)) (flycheck-checker . igor) (eval . (add-to-list 'rng-schema-locating-files "~/.emacs.d/schema/schemas.xml")))) .... [[editor-config-nano]] == nano Instale o aplicativo partir de package:editors/nano[] ou package:editors/nano-devel[]. [[editor-config-nano-config]] === Configuração Copie o arquivo com a amostra da regra para realce da sintaxe XML para o diretório inicial do usuário: [source, shell] .... % cp /usr/local/share/nano/xml.nanorc ~/.nanorc .... Use um editor para substituir as linhas do [.filename]#~/.nanorc# referentes ao bloco `syntax "xml"` por estas regras: .... syntax "xml" "\.([jrs]html?|xml|xslt?)$" # trailing whitespace color ,blue "[[:space:]]+$" # multiples of eight spaces at the start a line # (after zero or more tabs) should be a tab color ,blue "^([TAB]*[ ]{8})+" # tabs after spaces color ,yellow "( )+TAB" # highlight indents that have an odd number of spaces color ,red "^(([ ]{2})+|(TAB+))*[ ]{1}[^ ]{1}" # lines longer than 70 characters color ,yellow "^(.{71})|(TAB.{63})|(TAB{2}.{55})|(TAB{3}.{47}).+$" .... Processe o arquivo para criar guias incorporadas: [source, shell] .... % perl -i'' -pe 's/TAB/\t/g' ~/.nanorc .... [[editor-config-nano-use]] === Uso Especifique opções úteis adicionais ao executar o editor: [source, shell] .... % nano -AKipwz -r 70 -T8 _index.adoc .... Usuários do man:csh[1] podem definir um alias em [.filename]#~/.cshrc# para automatizar estas opções: .... alias nano "nano -AKipwz -r 70 -T8" .... Depois que o alias é definido, as opções serão adicionadas automaticamente: [source, shell] .... % nano _index.adoc ....