ГлавнаяОперационные системыLinux5 скрытых функций, которые можно использовать для улучшения Emacs

5 скрытых функций, которые можно использовать для улучшения Emacs

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

1. Создание нового окна

Одной из наиболее полезных функций Emacs является возможность разделить окно . Используя Ctrl+

Contents

1. Создание нового окна

trl+ x, 3, вы можете легко дублировать текущий буфер как по горизонтали, так и по вертикали. Это может быть особенно полезно, если вы работаете с разными частями одного файла.

5 приемов Emacs 02. Разделенный экран

Зная это, вы также можете использовать эту парадигму Ctrl+ x, чтобы разделить окно для нового файла. По умолчанию обычные команды Emacs занимают окно, в котором вы сейчас находитесь. Например, если вы нажмете Ctrl+ x, fи откроете файл, этот файл займет весь экран.

Однако, нажав Ctrl+ x, 4, а затем f. Вы можете указать Emacs открыть этот файл в отдельном буфере. Это может быть невероятно полезно, если вы хотите проверить новый файл, но при этом хотите сохранить буфер, над которым вы сейчас работаете.

5 приемов Emacs 18. Переключение в новое окно

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

5 приемов Emacs 03. Переключение в окно буфера

Читайте также: Как использовать Emacs для RSS с Elfeed

2. Эмуляторы терминала

По умолчанию Emacs поставляется с двумя встроенными оболочками. Первый — это собственный интерпретатор команд, написанный на Emacs Lisp, под названием «eshell». Это текстовая оболочка, которую вы можете использовать для запуска UNIX-команды прямо из Emacs.

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

5 хаков Emacs 05 Eshell

Из-за особенностей eshell он не может запускать какие-либо сложные программы пользовательского интерфейса терминала (TUI). Для этого Emacs также поставляется с эмулятором Терминал VT100 term.

Подобно обычному терминалу Linux, term эмулирует все функции VT100, включая его escape-последовательности. Это означает, что вы можете запустить любое приложение TUI в Emacs. Например, в настоящее время я использую вим в Emacs в течение срока.

2. Эмуляторы терминалаm внутри Emacs">

При этом вы можете запустить как eshell, так и term, нажав Alt+ x. Это откроет буфер команд Emacs. Отсюда вы можете либо ввести eshell, чтобы загрузить текстовый терминал, либо ввести term, чтобы загрузить эмулятор VT100.

Важно отметить, что термин также имеет ограниченный режим «только текст», доступ к которому можно получить, нажав Control+ c, j.

5 хаков Emacs 07. Режим терминальной линии 1

Это переведет текущий сеанс термина в «строчный режим», в котором вы сможете легко копировать и вставлять команды в командную строку и из нее. Отсюда вы можете вернуться в обычный режим терминала, нажав Ctrl+ c, k.

Читайте также: Как управлять Git в Emacs с помощью Magit

3. Доступ к удаленным файлам в Emacs

Еще одна блестящая встроенная программа в Emacs — Прозрачный удаленный доступ к файлам, несколько протоколов (TRAMP). Это простая программа, которая позволяет вам беспрепятственно получить доступ к любому файлу через любой протокол в Emacs.

5 хаков Emacs 08 Пример бродяги

Он работает с помощью вспомогательных программ, таких как ssh, rlogin и su, для подключения пользователя к удаленному компьютеру. Оттуда TRAMP монтирует файлы удаленного компьютера на локальный компьютер пользователя. Это, в свою очередь, заставляет эти файлы выглядеть локальными.

Зная это, вы можете использовать TRAMP, нажав Ctrl+ x, fи Ctrl+ Backspace, чтобы очистить подсказку о файле. Далее вам нужно ввести определенный формат пути, чтобы Emacs использовал TRAMP:

/protocol:address:/path/to/your/file

Например, я ввел следующий путь TRAMP для подключения к моему файловому серверу через SSH:

/sshx:myfileserver.net:/home/ramces/documents/myfile.txt

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

Чтобы получить доступ к привилегированному файлу через TRAMP, вам необходимо использовать suв качестве протокола:

/su::/etc/yggdrasil.conf

В этом примере я редактировал файл конфигурации Иггдрасиль через TRAMP. Поскольку я получил доступ к файлу только локально, мне не нужно было указывать адрес su.

Как только я нажал Enter, TRAMP запросил мой пароль пользователя. После этого файл загружается в буфер Emacs, как если бы это был просто непривилегированный файл.

5 приемов Emacs 09. Привилегированный файл в Emacs

Читайте также: 3. Доступ к удаленным файлам в Emacsдать красивые слайды Beamer с помощью Emacs">Как создать красивые слайды Beamer с помощью Emacs

4. Выполнение нечеткого поиска в Emacs

Emacs функция поиска по умолчанию довольно неуклюж. Вы можете нажать Ctrl+ Sдля поиска вперед и Ctrl+ Rдля поиска в обратном направлении. Однако эта форма поиска строго ограничена поиском конкретной строки.

Это означает, что все, что вы вводите в поле поиска, будет точно соответствовать, включая пробелы. В большинстве случаев это не проблема, поскольку большинство текстовых запросов состоят только из отдельных слов и коротких фраз.

5 хаков Emacs 10 Пример поиска

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

Например, используя поиск Emacs по умолчанию, невозможно выполнить поиск по фразе «hello world», просто указав «he ld» в поле поиска.

5 хаков Emacs 11 примеров регулярного поиска

Чтобы это стало возможным, вам нужно добавить в файл init.el следующий код Lisp:

(setq search-whitespace-regexp ".*")
(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace nil)
  • Первая функция, search-whitespace-regexpзаменяет пробел на любой символ (.*) при использовании текстового поиска.
  • Вторая функция, isearch-lax-whitespace, включает несколько совпадений пробелов при поиске одного пробела. Использование этой функции в сочетании с первой функцией позволяет выполнить нечеткий поиск.
  • Наконец, третья функция, isearch-regexp-lax-whitespace, гарантирует, что вам нужно будет использовать только один пробельный символ для сопоставления и создания нечеткого поиска.

Зная это, теперь вы можете перезагрузить свой клиент Emacs и проверить, работает ли нечеткий поиск. В моем случае мне удалось найти фразу «привет, мир», просто набрав «he ld».

5 приемов Emacs 12 примеров нечеткого поиска

Читайте также: Как управлять своими финансами с помощью режима книги в Emacs

5. Редактирование буфера Dired

Диред — файловый менеджер Emacs по умолчанию. По своей сути он позволяет вам легко просматривать файловую систему вашего компьютера и открывать любой файл прямо в буфере Emacs. Вы можете легко получить доступ к Dired, нажав Ctrl+ x, dили Ctrl+ x, f.

5 хаков Emacs 13 Пример Dired

Однако одна из основных проблем Dired заключается в том, что сложно изменить любой файл в его буфере. Например, если вы хотите переименовать файл в Dired, вам нужно сделать две вещи:

  • Сначала вам нужно отметить файл, который вы хотите отредактировать, выделив его и нажав M.
  • Оттуда вам нужно нажать Shift+ R, чтобы переименовать и указать новое имя для вашего файла.
5 хаков Emacs 14. Обычное переименование Dired

Хотя переименования файла таким спос

4. Выполнение нечеткого поиска в Emacs

енение нескольких файлов может оказаться сложной задачей.

Чтобы справиться с этим, в Emacs также предусмотрена возможность редактировать буфер Dired непосредственно как текст. Это позволит вам не только переименовать несколько файлов , но и изменить их биты разрешения .

Для этого можно нажать Ctrl+ x, Ctrl+ q. Это включит режим «Редактируемый Dired». Отсюда вы теперь можете редактировать буфер Dired, и после его сохранения эти изменения будут применены к вашим файлам.

Например, если вы хотите переименовать несколько файлов, вы можете просто ввести текущие имена файлов и написать новые. После этого просто нажмите Ctrl+ C, Ctrl+ C, чтобы сохранить изменения, и эти файлы будут переименованы.

5 хаков Emacs 15 редактируемых Dired

Изменение прав доступа к файлу с помощью Dired

Как обсуждалось выше, еще одна вещь, которую вы можете сделать в Editable Dired, — это обновить настройки разрешений файлов. Для этого вам нужно добавить в файл init.el следующую строку:

(setq wdired-allow-to-change-permissions t)
5 хаков Emacs 16 Init El Config

Теперь вы можете редактировать биты разрешений файлов непосредственно из Editable Dired. Например, рассмотрим следующий файл:

-rw-r--r--  1 ramces ramces   8316 Mar 11 10:53 test.txt

Первый столбец текста указывает, что этот файл имеет для меня права на чтение и запись (rw-). Кроме того, он также имеет оба разрешения на чтение для всех остальных (r–r–).

5 хаков Emacs 17 бит разрешения Dired

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

-rw-rw-rw-  1 ramces ramces   8316 Mar 11 10:53 test.txt

С другой стороны, чтобы отменить это действие, вы можете нажать -для любого бита разрешения, и разрешение для этого поля будет очищено:

-r--r--r--  1 ramces ramces   8316 Mar 11 10:53 test.txt

Вот и все, теперь вы знаете 5 скрытых функций стандартного Emacs, которые можно использовать для улучшения процесса редактирования!

Читайте также: Как использовать IRC в Emacs с ERC

Часто задаваемые вопросы

1. Можно ли создать новое окно для других пакетов Emacs?

К сожалению, нет. Команда Ctrl+ x, 4работает только для открытия новых файлов, аналогичных Ctrl+ x, fи открытие буферов аналогично Ctrl+ x, b.

Один из способов обойти это ограничение — открыть пакет обычным способом с помощью Alt+ x. Отсюда вы можете вернуть предыдущий буфер, нажав Ctrl+ x, 4, b.

2. Могу ли я использовать другую оболочку для эмулятора VT100?

Да! Когда вы запускаете команду term, используя Alt+ x, Emacs предложит вам указать оболочку, которую вы хотите использовать. По умолчанию он добавит оболочку по умолчанию для вашей системы. Это означает, что если ваша оболочка

5. Редактирование буфера Dired

в этом приглашении «/bin/bash».

Чтобы использовать другую оболочку, вам необходимо заменить это значение путем к оболочке, которую вы хотите использовать. Например, если вы хотите использовать ksh в term, вам нужно написать /bin/ksh, когда term предложит вам терминал, который вы хотите использовать.

3. Могу ли я отменить изменения в буфере Dired?

И да, и нет. Вы можете отменить все изменения, внесенные вами в Editable Dired, нажав Ctrl+ c, ESC. Однако это сработает только в том случае, если вы еще не сохранили изменения на диске.

Как только вы нажмете Ctrl+ C, Ctrl+ C, Emacs запишет все внесенные вами изменения. сделал. К тому времени единственный способ отменить это — снова отредактировать файлы вручную.

Изображение предоставлено: Unsplash

Изменение прав доступа к файлу с помощью Dired

Часто задаваемые вопросы

1. Можно ли создать новое окно для других пакетов Emacs?

2. Могу ли я использовать другую оболочку для эмулятора VT100?

3. Могу ли я отменить изменения в буфере Dired?

ПОХОЖИЕ СТАТЬИ

Популярные записи