[содержание]   [назад]   [предыдущий]   [вверх]   [следующий]   [вперед]  


Команды для исправления опечаток

В этой главе мы описываем команды, которые особенно полезны в тех случаях, когда вы обнаружили в вашем тексте ошибку сразу после того, как вы ее допустили, или если вы изменили ваши намерения во время сочинения текста.

Наиболее фундаментальная команда для исправления ошибочного редактирования -- это команда отмены, C-x u или C-_. Эта команда отменяет одну команду (как правило), часть команды (в случае query-replace) или несколько самовставляющихся знаков подряд. Последовательное повторение команд C-_ или C-x u отменяет все более ранние изменения до конца доступной информации отмены. Смотрите раздел Отмена сделанных изменений, для получения дальнейших сведений.

Уничтожение ваших ошибок

DEL
Удалить последний знак (delete-backward-char).
M-DEL
Уничтожить последнее слово (backward-kill-word).
C-x DEL
Уничтожить все до начала предложения (backward-kill-sentence).

Символ DEL (delete-backward-char) -- наиболее важная команда исправления. Она удаляет знак перед точкой. Когда ее используют после самовставляющейся знаковой команды, ее можно рассматривать как отмену этой команды. Но избегайте ошибочной мысли, что DEL -- это универсальный способ отменить команду!

Когда ваша ошибка длиннее, чем пара знаков, то может оказаться более удобным использовать M-DEL или C-x DEL. M-DEL уничтожает все знаки назад до начала последнего слова, а C-x DEL уничтожает назад до начала последнего предложения. C-x DEL особенно полезна в случае, когда вы меняете свое мнение о формулировке текста, который вы пишите. M-DEL и C-x DEL записывают уничтоженный текст для восстановления с помощью C-y и M-y. Смотрите раздел Восстановление.

M-DEL часто полезна, даже когда вы набрали всего несколько ошибочных знаков, если вы знаете, что запутались и не уверены точно, что именно вы набрали. В этом случае вы не можете исправлять с помощью DEL, не изучая экран, чтобы увидеть, что же вы сделали. Часто уничтожение всего слова и его повторный набор потребует меньших раздумий.

Перестановка текста

C-t
Переставить два знака (transpose-chars).
M-t
Переставить два слова (transpose-words).
C-M-t
Переставить два сбалансированных выражения (transpose-sexps).
C-x C-t
Переставить две строки (transpose-lines).

Распространенная ошибка перестановки двух знаков может быть исправлена, если они являются соседними, с помощью команды C-t (transpose-chars). Обычно C-t переставляет два знака, стоящие по обе стороны от точки. Когда она дается в конце строки, то вместо того, чтобы поменять местами последний знак символ и перевод строки, что было бы бесполезно, C-t переставляет последние два знака на строке. Так, если вы отловили вашу ошибку перестановки сразу, вы можете исправить ее просто с помощью C-t. Если вы отловили ее не так быстро, вы должны перевести курсор назад и установить его между двумя переставленными знаками. Если вы переставили пробел и последний знак в слове перед ним, то команды движения по словам служат удобным способом добраться до этого места. Однако, обратный поиск (C-r) часто бывает самым лучшим способом. Смотрите раздел Поиск и замена.

M-t (transpose-words) переставляет слово перед точкой со словом после нее. Она двигает точку вперед через слово, также перемещая вперед слово, предшествующее точке или содержащее ее. Знаки пунктуации между словами не двигаются. Например, `FOO, BAR' превращается в `BAR, FOO', а не в `BAR FOO,'.

C-M-t (transpose-sexps) -- аналогичная команда для перестановки двух выражений (смотрите раздел Списки и s-выражения), а C-x C-t (transpose-lines) меняет местами строки. Они работают так же, как M-t, за исключением определения деления текста на синтаксические единицы.

Числовой аргумент для команд перестановки работает как счетчик повторений: он указывает команде перестановки передвинуть знак (слово, строку, выражение) перед точкой или содержащий ее через несколько других знаков (слов, строк, выражений). Например, C-u 3 C-t передвигает знак перед точкой вперед через три других знака. Это эквивалентно трехкратному повторению C-t. C-u - 4 M-t двигает слово перед точкой назад через четыре слова. C-u - C-M-t отменила бы действие простой C-M-t.

Числовому аргументу, равному нулю, придается специальное значение (так как в противном случае команды с нулевым счетчиком повторов должны были бы ничего не делать): переставить знак (слово, выражение, строку), оканчивающийся после точки, со знаком (словом, выражением, строкой), оканчивающимся после метки.

Изменение регистра

M-- M-l
Перевести последнее слово в нижний регистр. Отметим, что Meta-- означает Meta-минус.
M-- M-u
Перевести последнее слово в верхний регистр.
M-- M-c
Перевести последнее слово в нижний регистр с первой заглавной буквой.

Набор слова в неправильном регистре -- очень распространенная ошибка. Поэтому команды изменения регистра M-l, M-u и M-c обладают специальным свойством, когда используются с отрицательным аргументом: они не передвигают курсор. Как только вы увидите, что последнее слово набрано неправильно, вы можете просто изменить в нем регистр и продолжать набор. Смотрите раздел Команды преобразования регистра.

Поиск и исправление орфографических ошибок

Этот раздел описывает команды для проверки правописания отдельного слова или части буфера. Эти команды работают с программой проверки правописания Ispell, которая не является частью Emacs.

M-x flyspell-mode
Включает режим Flyspell, который выделяет все неправильно написанные слова.
M-$
Проверяет и исправляет написание слова в точке (ispell-word).
M-TAB
Завершает слово перед точкой, основываясь на орфографическом словаре (ispell-complete-word).
M-x ispell-buffer
Проверяет и исправляет написание всех слов в буфере.
M-x ispell-region
Проверяет и исправляет написание всех слов в области.
M-x ispell-message
Проверяет и исправляет написание всех слов в черновике почтового сообщения, за исключением цитируемого материала.
M-x ispell-change-dictionary RET словарь RET
Перезапускает процесс Ispell, используя словарь в качестве словаря.
M-x ispell-kill-ispell
Уничтожает подпроцесс Ispell.

Режим Flyspell предоставляет полностью автоматический способ проверить правописание во время редактирования в Emacs. Он работает путем проверки слов по мере того, как вы изменяете или вставляете их. Когда он находит нераспознанное слово, он выделяет его. Это не влияет на ваше редактирование, но когда вы видите выделенное слово, вы можете переместиться к нему и исправить. Чтобы включить этот режим в текущем буфере, наберите M-x flyspell-mode.

Когда режим Flyspell выделяет неправильно написанное слово, вы можете щелкнуть на этом слове Mouse-2, чтобы получить меню возможных исправлений и действий. Вы также можете исправить слово, отредактировав его вручную любым способом, который вам нравится.

Другие возможности Emacs по проверке правописания проверяют или ищут слова, когда вы даете явную команду для этого. Проверка всего или части буфера полезна, когда у вас есть текст, который был написан не в данном сеансе Emacs и может содержать любое число ошибок.

Для проверки орфографии в слове вокруг точки или после нее и, возможно, для его исправления, используйте команду M-$ (ispell-word). Если слово написано неправильно, эта команда предложит вам несколько вариантов действий.

Чтобы проверить правописание во всем текущем буфере, запустите команду M-x ispell-buffer. Используйте M-x ispell-region для проверки только текущей области. Чтобы проверить орфографию в почтовом сообщении, которое вы пишите, используйте M-x ispell-message; она проверяет весь буфер, но не трогает материал, в котором сделан отступ, или который процитирован из других сообщений.

Каждый раз, когда эти команды встречают неправильно написанное слово, они спрашивают вас о дальнейших действиях. Они показывают список вариантов, обычно включающий несколько "похожих слов" -- которые близки по написанию с проверяемым словом. Затем вы должны напечатать один знак. Вот допустимые варианты ответа:

SPC
Пропустить это слово -- продолжать считать это слово неправильным, но не изменять его здесь.
r новое RET
Заменить это слово (только в этом месте) на новое.
R новое RET
Заменить это слово на новое и выполнить query-replace, чтобы вы могли заменить его во всех других местах буфера, если хотите.
цифра
Заменить это слово (только в этом месте) на одно из показанных похожих слов. Каждое похожее слово перечисляется с цифрой; чтобы выбрать его, наберите эту цифру.
a
Принять неправильное слово -- считать его правильным, но только в этом сеансе редактирования.
A
Принять неправильное слово -- считать его правильным, но только в этом сеансе редактирования и для этого буфера.
i
Вставить это слово в ваш личный файл словаря, чтобы Ispell отныне считал его правильным даже в будущих сеансах.
u
Вставить это слово в нижнем регистре в ваш личный файл словаря.
m
Как i, но вы также можете указать сведения о завершении для словаря.
l слово RET
Поискать в словаре слова, сопоставляющиеся со словом. Эти слова становятся новым списком "похожих слов"; вы можете выбрать для замены одно из них, набрав цифру. Вы можете использовать в слове знак `*' для описания шаблона.
C-g
Выйти из интерактивной проверки правописания. Вы можете перезапустить ее позже с помощью C-u M-$.
X
То же, что и C-g.
x
Выйти из интерактивной проверки правописания и переместить точку назад, где она была, когда вы запустили проверку.
q
Выйти из интерактивной проверки правописания и уничтожить процесс Ispell.
C-l
Перерисовать экран.
C-z
Этот ключ имеет свое обычное значение (приостановить Emacs или минимизировать этот фрейм).

Команда ispell-complete-word, которая привязана к ключу M-TAB в режиме Text и родственных с ним режимах, показывает список завершений, основываясь на исправлении орфографии. Вставьте начало слова, а затем напечатайте M-TAB; эта команда отобразит окно со списком завершений. Чтобы выбрать одно из перечисленных завершений, щелкните на нем Mouse-2 или переместите к нему курсор и нажмите RET. Смотрите раздел Режим Text.

Однажды будучи запущенным, подпроцесс Ispell продолжает работать (ожидать какой-либо работы), чтобы последующие команды проверки правописания завершались быстрее. Если вы хотите избавиться от процесса Ispell, воспользуйтесь M-x ispell-kill-ispell. Обычно это не так необходимо, поскольку этот процесс не занимает время, когда вы не проводите проверку правописания.

Ispell использует два словаря: стандартный и ваш личный. Переменная ispell-dictionary задает имя используемого файла стандартного словаря. Значение nil говорит, что нужно использовать словарь по умолчанию. Команда M-x ispell-change-dictionary устанавливает эту переменную и затем перезапускает подпроцесс Ispell, чтобы он использовал другой словарь.


[содержание]   [назад]   [предыдущий]   [вверх]   [следующий]   [вперед]