$ pkg install vale
Глава 13. Настройка редактора
Этот перевод может быть устаревшим. Для того, чтобы помочь с переводом, пожалуйста, обратитесь к Сервер переводов FreeBSD.
Содержание
Настройка конфигурации текстового редактора может ускорить и упростить работу с документами, а также помочь им соответствовать рекомендациям FDP.
13.1. Vim
Установите из editors/vim, затем следуйте инструкциям по настройке в разделе Конфигурация. Более опытные пользователи могут использовать полноценный линтер, например Ale, который также может работать как клиент Language Server Protocol для Vim.
13.1.1. Использование
Создатели страниц Справочника могут использовать следующие сочетания клавиш для переформатирования:
Нажмите P, чтобы переформатировать абзацы или выделенный текст в режиме Visual.
Нажмите T, чтобы заменить группы из восьми пробелов на табуляцию.
В документацию добавлен линтер Vale для проверки грамматических и стилистических ошибок. Vale поддерживает различные редакторы и IDE.
Vale может быть уже установлен как зависимость мета-порта textproc/docproj. Если нет, установите textproc/vale с помощью:
Установите Ale для интеграции в editors/vim, чтобы использовать textproc/vale.
% mkdir -p ~/.vim/pack/vendor/start
% git clone --depth 1 https://github.com/dense-analysis/ale.git ~/.vim/pack/vendor/start/ale
Пользователи, использующие менеджеры плагинов для editors/vim, не нуждаются в вышеописанном и должны следовать инструкциям своего менеджера плагинов для установки Ale.
В данный момент из-за ошибки в Vale необходимо скопировать конфигурацию Vale в домашний каталог. Учитывая, что репозиторий был склонирован в ~/doc, скопируйте следующим образом:
% cp -R ~/doc/.vale* ~/
13.1.2. Конфигурация
Отредактируйте файл ~/.vimrc, добавив следующие строки в конец файла:
~/.vimrc
if has("autocmd")
au BufNewFile,BufRead *.adoc call Set_ADOC()
au BufNewFile,BufRead *.[1-9] call Set_MAN()
endif " has(autocmd)
function Set_Highlights()
"match ExtraWhitespace /^\s* \s*\|\s\+$/
return 0
endfunction " Set_Highlights_Adoc()
function Set_Highlights_MAN()
highlight default link OverLength ErrorMsg
match OverLength /\%71v.\+/
return 0
endfunction " Set_Highlights_MAN()
function ShowSpecial()
setlocal list listchars=tab:>>,trail:*,eol:$
hi def link nontext ErrorMsg
return 0
endfunction " ShowSpecial()
function Set_COMMON()
setlocal number
setlocal shiftwidth=2
setlocal tabstop=8
setlocal softtabstop=2
setlocal formatprg="fmt -p"
setlocal autoindent
setlocal smartindent
call ShowSpecial()
call Set_Highlights()
return 0
endfunction " Set_COMMON()
function Set_ADOC()
setlocal syntax=asciidoc
setlocal filetype=asciidoc
call Set_COMMON()
return 0
endfunction " Set_ADOC()
function Set_MAN()
setlocal syntax=man
setlocal filetype=man
setlocal textwidth=70
" Rewrap paragraphs
noremap P gqj
" Replace spaces with tabs
noremap T :s/ /\t/<CR>
call Set_COMMON()
call Set_Highlights_MAN()
return 0
endfunction " Set_Man()
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\}
let g:ale_linters = {
\ 'asciidoc': ['vale'],
\}
let g:ale_fix_on_save = 1
Приведённая выше конфигурация автоматически удалит конечную строку, конечные пробелы и множественные пробелы, которые могут отображать дополнительные нежелательные изменения в выводе |
13.2. Emacs
Установка из editors/emacs или editors/emacs-devel.
13.2.1. Автоматизированная проверка правописания с Flycheck и Igor
Пакет Flycheck доступен из Milkypostman’s Emacs Lisp Package Archive (MELPA). Если MELPA ещё не добавлен в packages-archives Emacs, его можно добавить, выполнив
(add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t)
Добавьте строку в файл инициализации Emacs (один из ~/.emacs, ~/.emacs.el или ~/.emacs.d/init.el), чтобы сделать это изменение постоянным.
Для установки Flycheck выполните
(package-install 'flycheck)
Создайте проверяющий модуль Flycheck для textproc/igor с помощью выполнения
(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)
Еще раз, добавьте эти строки в файл инициализации Emacs, чтобы изменения стали постоянными.
13.2.2. Специфичные настройки документации FreeBSD
Чтобы применить настройки, специфичные для проекта документации FreeBSD, создайте файл .dir-locals.el в корневом каталоге репозитория документации и добавьте в него следующие строки:
;;; 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"))))
13.3. nano
Установка из editors/nano.
13.3.1. Конфигурация
В текущей версии nano нет файла подсветки синтаксиса для adoc/asciidoc. Поэтому создадим его с нуля, используя текстовый редактор для создания нового файла или добавления строк в ~/.nanorc со следующим содержимым:
~/.nanorc
syntax "asciidoc" "\.(adoc|asc|asciidoc)$"
# main header
color red "^====+$"
# h1
color red "^==[[:space:]].*$"
color red "^----+$"
# h2
color magenta "^===[[:space:]].*$"
color magenta "^~~~~+$"
# h4
color green "^====[[:space:]].*$"
color green "^\^\^\^\^+$"
# h5
color brightblue "^=====[[:space:]].*$"
color brightblue "^\+\+\+\++$"
# attributes
color brightgreen ":.*:"
color brightred "\{[a-z0-9]*\}"
color red "\\\{[a-z0-9]*\}"
color red "\+\+\+\{[a-z0-9]*\}\+\+\+"
# Paragraph Title
color yellow "^\..*$"
# source
color magenta "^\[(source,.+|NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]"
# Other markup
color yellow ".*[[:space:]]\+$"
color yellow "_[^_]+_"
color yellow "\*[^\*]+\*"
color yellow "\+[^\+]+\+"
color yellow "`[^`]+`"
color yellow "\^[^\^]+\^"
color yellow "~[^~]+~"
color yellow "'[^']+'"
color cyan "`{1,2}[^']+'{1,2}"
# bullets
color brightmagenta "^[[:space:]]*[\*\.-]{1,5}[[:space:]]"
# anchors
color brightwhite "\[\[.*\]\]"
color brightwhite "<<.*>>"
# 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}"
Обработать файл для создания встроенных табуляций:
% perl -i'' -pe 's/TAB/\t/g' ~/.nanorc
13.3.2. Использование
Укажите дополнительные полезные опции при запуске редактора:
% nano -AKipwz -T8 _index.adoc
Пользователи csh(1) могут определить алиас в ~/.cshrc, чтобы автоматизировать эти параметры:
alias nano "nano -AKipwz -r 70 -T8"
После определения псевдонима параметры будут добавлены автоматически:
% nano _index.adoc
Изменено: 20 сентября 2025 г. by Vladlen Popolitov