emacs, linux
  • reangd

Emacs как IDE для Go

(оригинал: ReanGDblog)

Цель статьи дать обзор инструментов в Emacs для работы с Go кодом. Настроить горячие клавиши, возможно добавить алиасы и сделать их удобнее для повседневного использования - на вашей совести. Хочу отметить, что поддержка языка в Emacs - на высоком уровне: подсветка кода, автодополнение, сниппеты, рефакторинг, подсветка ошибок, отображение документации, тестирование, компиляция и многое другое. Сразу оговорюсь, что проверял я только под Linux, под альтернативные OS могут быть особенности, которые тут не освещены.
Read more...Collapse )
emacs, linux
  • reangd

Мой первый пакет для Emacs: multi-compile

(оригинал: ReanGDblog)
Я часто пишу заметки о Emacs, в формате: скопируйте вот эти строки подкорректируйте под себя, вставьте в конфиг, установите ещё вот этот плагин и т.п. Сегодня решил выйти на "новый уровень" и сделал полноценный пакет для Emacs и что бы нанести пользу максимально большой аудитории - разместил его в melpa. Конечно подготовить его несколько сложнее, чем просто пример конфига для блога, но для меня это своеобразное возвращение долгов за используемые мной open-source решения.

Read more...Collapse )
emacs, linux
  • reangd

Двуязычная проверка орфографии в Emacs


(оригинал: ReanGDblog)
Я в последнее время почти полностью перешёл на Emacs, как универсальный редактор для всего, в связи с чем часто пишу там тексты. А поскольку уроки русского языка со школы уже основательно позабылись, то текст приходится часто копировать в LibreOffice для проверки орфографии, что надо признать жутко неудобно. Плюс ко всему я в текстах использую и английские слова, поэтому хотелось бы проверять сразу 2 языка. Найти готовую инструкцию по проверке орфографии в Emacs для такого случая не получилось. Поэтому пришлось разбираться со всем самостоятельно.

Read more...Collapse )
emacs, linux
  • reangd

Emacs как IDE для Rust

rust_logo.png(оригинал: ReanGDblog)
Многие слышали про такой язык программирования как Rust, это чрезвычайно, на мой взгляд, перспективный и интересный язык от Mozilla, про него сейчас часто пишут и говорят. Он пока еще очень молод (в данный момент доступна только beta версия), в связи с чем поддержки в модных и популярных IDE для него нет или она очень слабая, а попробовать и составить мнение о языке хочется. Как обычно, в таких случаях на помощь нам приходит emacs, в нем относительно легко можно настроить подсветку синтаксиса, компиляцию, автодополнение и т.п.
Read more...Collapse )
emacs, linux
  • reangd

Умное назначение горячих клавиш в Emacs

(оригинал: ReanGDblog)

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

(global-set-key (kdb "C-a") 'mark-whole-buffer)



Это какое-то время работает, пока не находится плагин, который переопределяет выбранное сочетание на что-то свое...
Read more...Collapse )
emacs, linux
  • reangd

Авто установка пакетов в Emacs

(оригинал: ReanGDblog)
Все наверное знают про возможность установки плагинов в Emacs, "M-x package-list-packages" и вперед - выбираем, устанавливаем, удаляем что не нужно. Это возможно удобно, когда мы экспериментируем с плагинами, играемся с новыми. Но допустим синхронизировать подобным образом плагины на всех своих машинах - уже желания никакого нет. Хочется прописать в конфиг названия всех используемых пакетов, а Emacs, пусть сам при загрузке проверит недостающие и доставит их. К сожалению, встроенной функциональности для этого в Emacs нет, однако добавить такую возможность, как и все остальное, в Emacs не сложно...
Read more...Collapse )
juri
  • link0ff

Хорошие новости

Сразу несколько хороших новостей:

1. Вышла новая версия. Полный список изменений: http://www.gnu.org/software/emacs/news/NEWS.24.4

2. На Stack Exchange создан отдельный раздел, посвященный вопросам использования Емакса: http://emacs.stackexchange.com/

3. Репозиторий переводится с Bzr на Git, что делает его доступным более широкому кругу разработчиков.

4. ...
lem

Исправление russian-keyboard для MacBook Pro

Если вы набираете русский текст в Emacs и используете для этого

`C-\'
     Enable or disable use of the selected input method
     (`toggle-input-method').

`C-x  C-\ METHOD '
     Select a new input method for the current buffer
     (`set-input-method').
, то вы могли обнаружить, что некоторые символы в русской раскладке (`russian-computer') не соответствуют их расположению на клавиатуре MacBook.

Я вчера разобрался, как это исправить:
https://github.com/vvv/dotfiles/commit/b0292c6aea8ff856f40b932210a888d68b1a90d3

Вдруг кому пригодится. :-)

juri

Автоматическая кодировка для команд

Что делать, если есть файлы в разной кодировке (например, `utf-8' и `koi8-r') и их нужно сравнивать командами `dired-diff' или `dired-backup-diff'? Приходится открывать файл, смотреть, какую кодировку он использует, а потом вручную указывать кодировку через `C-x RET c' перед запуском `dired-diff'. Слишком много движений, поэтому через defadvice можно навесить определение кодировки файлов и запуск команды с нужной кодировкой (дополнительно рекомендуется использовать UniCAD):

;; Get coding from the file, so diff will output in the correct coding:
(defadvice dired-backup-diff (around my-dired-backup-diff act)
  (let* ((filename (dired-get-filename t))
         (coding-system (with-temp-buffer
                          (insert-file-contents filename nil 0 1024)
                          buffer-file-coding-system))
         (coding-system-for-read coding-system)
         (coding-system-for-write coding-system))
    ad-do-it))

;; Get coding from the file, so diff will output in the correct coding:
(defadvice dired-diff (around my-dired-diff act)
  (let* ((filename (dired-get-filename t))
         (coding-system (with-temp-buffer
                          (insert-file-contents filename nil 0 1024)
                          buffer-file-coding-system))
         (coding-system-for-read coding-system)
         (coding-system-for-write coding-system))
    ad-do-it))


Аналогичная проблема существует также для `grep'. Как автоматически указать правильную кодировку перед запуском грепа, чтобы он искал в файлах с этой кодировкой. Я пока не нашел решения этой проблемы. Есть идеи, как это сделать?
jurta

Три основных принципа EMACS

Три основных принципа EMACS:

  1. 3 года гарантии.
    Каждая следующая версия выходит не реже, чем через 3 года разработки. В марте в честь юбилея RMS вышла новая версия 24.3. Гарантируется исправление ошибок в версии не старше, чем 3 года - просто опишите найденную ошибку в письме и отправьте по адресу bug-gnu-emacs@gnu.org. Если используете старую версию, рекомендуется обновиться до самой новой (оптимальный вариант - установка snapshot).

  2. Настоящая мощность.
    Вдобавок к большому количеству встроенных пакетов, в emacs 24 также добавился менеджер пакетов, позволяющий устанавливать еще большее количество внешних пакетов, обеспечивающих настоящую мощность, недостижимую в других редакторах. Существует даже возможность использования бабочек для изменения нужного бита.

  3. Подлинная безопасность.
    Весь код выполняется в виртуальной среде, основанной на интерпретаторе Лиспа. Безопасность обеспечивается рядом встроенных возможностей, в том числе safe-local-variable и т.д. Поэтому не существует вирусов, распространяющихся через файлы Emacs Lisp.