mirror of
https://git.FreeBSD.org/doc.git
synced 2026-06-02 11:25:20 +00:00
c5eba003d3
Obtained from: The FreeBSD German Documentation Project
271 lines
9.9 KiB
XML
271 lines
9.9 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
$FreeBSD$
|
|
$FreeBSDde$
|
|
basiert auf: r49220
|
|
-->
|
|
|
|
<!-- Copyright (c) 2013 Warren Block
|
|
All rights reserved.
|
|
|
|
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
|
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
|
modification, are permitted provided that the following conditions
|
|
are met:
|
|
|
|
1. Redistributions of source code (SGML DocBook) must retain the above
|
|
copyright notice, this list of conditions and the following
|
|
disclaimer as the first lines of this file unmodified.
|
|
|
|
2. Redistributions in compiled form (transformed to other DTDs,
|
|
converted to PDF, PostScript, RTF and other formats) must reproduce
|
|
the above copyright notice, this list of conditions and the
|
|
following disclaimer in the documentation and/or other materials
|
|
provided with the distribution.
|
|
|
|
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
|
POSSIBILITY OF SUCH DAMAGE.
|
|
-->
|
|
|
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
|
xml:id="editor-config">
|
|
|
|
<info><title>Editor-Konfiguration</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
|
</authorgroup>
|
|
</info>
|
|
|
|
<para>Die korrekte Konfiguration Ihres Texteditors macht die Arbeit
|
|
an der Dokumentation einfacher und schneller und hilft Ihnen dabei,
|
|
die <acronym>FDP</acronym>-Richtlinien einzuhalten.</para>
|
|
|
|
<sect1 xml:id="editor-config-vim">
|
|
<title><application>Vim</application></title>
|
|
|
|
<para>Installieren Sie entweder das Paket
|
|
<package>editors/vim</package> oder
|
|
<package>editors/vim-lite</package>, danach folgen Sie den
|
|
Anweisungen in
|
|
<xref linkend="editor-config-vim-config"/>.</para>
|
|
|
|
<sect2 xml:id="editor-config-vim-use">
|
|
<title>Verwendung</title>
|
|
|
|
<para>Drücken Sie die Taste <keycap>P</keycap>, um Absätze
|
|
oder Text, den Sie im visuellen Modus ausgewählt haben,
|
|
zu formatieren. Drücken Sie die Taste
|
|
<keycap>T</keycap>, um 8 Leerzeichen durch einen Tabulator
|
|
zu ersetzen.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="editor-config-vim-config">
|
|
<title>Konfiguration</title>
|
|
|
|
<para>Fügen Sie die folgenden Zeilen am Ende der Datei
|
|
<filename>~/.vimrc</filename> ein:</para>
|
|
|
|
<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
|
|
|
|
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/<CR>
|
|
call ShowSpecial()
|
|
call Set_Highlights()
|
|
return 0
|
|
endfunction " Set_SGML()</programlisting>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="editor-config-emacs">
|
|
<title><application>Emacs</application></title>
|
|
|
|
<para>Installieren Sie entweder das Paket
|
|
<package>editors/emacs</package> oder
|
|
<package>editors/emacs-devel</package>.</para>
|
|
|
|
<sect2 xml:id="editor-config-emacs-validation">
|
|
<title>Validierung</title>
|
|
|
|
<para>Der xnml-Modus von Emacs verwendet ein kompaktes
|
|
RELAX-NG (<quote>Regular Language Description for XML
|
|
New Generation</quote>)-Schema, um XML zu validieren. Ein
|
|
solches, an DocBook 5.0 von FreeBSD angepasstes Schema ist
|
|
im Dokumentationsrepository bereits vorhanden. Damit der
|
|
nxml-Modus dieses Schema verwendet, müssen Sie die Datei
|
|
<filename>~/.emacs.d/schema/schemas.xml</filename> anlegen und
|
|
folgende Zeilen in die Datei einfügen:</para>
|
|
|
|
<programlisting><tag class="starttag">locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0"</tag>
|
|
<tag class="starttag">documentElement localName="section" typeId="DocBook"</tag>
|
|
<tag class="starttag">documentElement localName="chapter" typeId="DocBook"</tag>
|
|
<tag class="starttag">documentElement localName="article" typeId="DocBook"</tag>
|
|
<tag class="starttag">documentElement localName="book" typeId="DocBook"</tag>
|
|
<tag class="starttag">typeId id="DocBook" uri="/usr/local/share/xml/docbook/5.0/rng/docbook.rnc"</tag>
|
|
<tag class="endtag">locatingRules</tag></programlisting>
|
|
|
|
</sect2>
|
|
|
|
<sect2 xml:id="editor-config-emacs-igor">
|
|
<title>Automatisches Gegenlesen mit Flycheck und Igor</title>
|
|
|
|
<para>Das Flycheck-Paket ist über <quote>Milkypostman's
|
|
Emacs Lisp Package Archive</quote> (<acronym>MELPA</acronym>)
|
|
erhältlich. Ist <acronym>MELPA</acronym> noch nicht in
|
|
packages-archives von Emacs eingetragen, muss dies manuell
|
|
durch das Ausführen der folgenden Emacs-Anweisung
|
|
erfolgen:</para>
|
|
|
|
<programlisting>(add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t)</programlisting>
|
|
|
|
<para>Um die Änderung permanent zu machen, müssen Sie diese Zeile
|
|
in die Initialisierungsdatei von Emacs aufnehmen, konkret in eine
|
|
der folgenden Dateien: <filename>~/.emacs</filename>,
|
|
<filename>~/.emacs.el</filename> oder
|
|
<filename>~.emacs.d/init.el</filename>.</para>
|
|
|
|
<para>Um Flycheck zu installieren, führen Sie folgende Anweisung
|
|
aus:</para>
|
|
|
|
<programlisting>(package-install 'flycheck)</programlisting>
|
|
|
|
<para>Legen Sie einen Flycheck-Prüfer für
|
|
<package>textproc/igor</package> an, indem Sie die folgende
|
|
Anweisung ausführen:</para>
|
|
|
|
<programlisting>(flycheck-define-checker igor
|
|
"FreeBSD Documentation Project sanity checker.
|
|
|
|
See URLs http://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)</programlisting>
|
|
|
|
<para>Wie bei MELPA müssen Sie auch diese Anweisung in die
|
|
Initialisierungsdatei von Emacs aufnehmen, um sie permanent
|
|
zu aktivieren.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="editor-config-emacs-specifc">
|
|
<title>FreeBSD-Dokumentationsspezische Einstellungen</title>
|
|
|
|
<para>Um FreeBSD-spezifische Einstellungen zu aktivieren, legen
|
|
Sie die Datei <filename>.dir-locals.el</filename> im
|
|
Wurzelverzeichnis des Dokumentationsrepositories an und fügen
|
|
die folgenden Zeilen in diese Datei ein:</para>
|
|
|
|
<programlisting>;;; 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"))))</programlisting>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="editor-config-nano">
|
|
<title><application>nano</application></title>
|
|
|
|
<para>Installieren Sie das Paket <package>editors/nano</package>
|
|
oder <package>editors/nano-devel</package>.</para>
|
|
|
|
<sect2 xml:id="editor-config-nano-config">
|
|
<title>Konfiguration</title>
|
|
|
|
<para>Kopieren Sie die Syntaxhighlighting-Datei für
|
|
<acronym>XML</acronym> in ihr Homeverzeichnis:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cp /usr/local/share/nano/xml.nanorc ~/.nanorc</userinput></screen>
|
|
|
|
<para>Fügen Sie die folgenden Zeilen in die Datei
|
|
<filename>~/.nanorc</filename> ein:</para>
|
|
|
|
<programlisting>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}).+$"</programlisting>
|
|
|
|
<para>Verarbeiten Sie diese Datei, um eingebettete Tabulatoren
|
|
zu erzeugen:</para>
|
|
|
|
<screen>&prompt.user; <userinput>perl -i'' -pe 's/TAB/\t/g' ~/.nanorc</userinput></screen>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="editor-config-nano-use">
|
|
<title>Verwendung</title>
|
|
|
|
<para>Starten Sie Nano mit zusätzlichen hilfreichen
|
|
Parametern:</para>
|
|
|
|
<screen>&prompt.user; <userinput>nano -AKipwz -r 70 -T8 <replaceable>chapter.xml</replaceable></userinput></screen>
|
|
|
|
<para>Verwenden Sie &man.csh.1;, können Sie in
|
|
<filename>~/.cshrc</filename> einen Alias für diese Parameter
|
|
anlegen:</para>
|
|
|
|
<programlisting>alias nano "nano -AKipwz -r 70 -T8"</programlisting>
|
|
|
|
<para>Nachdem der Alias definiert wurde, werden diese Parameter
|
|
künftig automatisch angewendet:</para>
|
|
|
|
<screen>&prompt.user; <userinput>nano <replaceable>chapter.xml</replaceable></userinput></screen>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|