solovyov.net

Emacs

3 min read · software, emacs

UPD: Вряд ли кто сюда доберётся, но если что - конфиг мой лежит на гитхабе.

Ясное дело, любой человек, который достаточно плотно общается с компами - ищет себе подходящий редактор. Но если у большинства людей эта проблема не стоит достаточно остро, у программистов вообще IDE обычно есть, то для никсового админа редактор - основной инструмент производства. И лидером у большинства из них является vim, который хоть и модальный, но зато после небольшого разбирательства очень простой и лёгкий (быстро запускающийся) редактор. Есть, конечно, некоторое количество отступников - которые используют, к примеру, joe (превед, Антонз ;), или там еще какой jed/nano/etc.

Особняком стоит Emacs, который создавался как инструмент для программиста - но в действительности он содержит столько удобных вещей, что является реально удобным инструментом. Раньше я его использовал в основном только как почтовый клиент да xml-редактор, а потом забросил - уж больно тяжко запускался. Но тут пришлось редактировать файлики с кодом, а нормальных редакторов на замену найти не могу (из лучшего - EmEditor и SCiTE, но они оба и в подмётки :)), потому достал емаксище с полки.

Ну и заодно зашёл на emacswiki.org, который, как оказалось, достаточно сильно обновился. Ну я и решил сюда позаписывать на всякий случай всякие удобные фичи.


Немножко о GnuServ’е. Это такая дрянь, которую я не знаю, где скачать, и у меня сильно дурной инет, для того чтобы выкладывать. Называется gnuserv.exe и gnuclientw.exe. Плюс gnuserv.el.

В .emacs пишется (require 'gnuserv), и Емакс запускается программой gnuclientw.exe. Теперь будет один емакс, а всё остальное - его фреймы. Что быстро. ;)

Плюс можно сделать так, чтоб не появлялось их большое количество, а всё открывалось в одном (первом) фрейме.

(defadvice server-find-file (before server-find-file-in-one-frame activate)
	"Make sure that the selected frame is stored in `gnuserv-frame', and raised."
	(setq gnuserv-frame (selected-frame))
	(raise-frame))

(defadvice server-edit (before server-edit-in-one-frame activate)
	"Make sure that the selected frame is stored in `gnuserv-frame', and lowered."
	(setq gnuserv-frame (selected-frame))
	(lower-frame))

Эти функции заодно и поднимают его окошко наверх, когда в каком-то тотале его повесишь на F4. И нажмёшь эту кнопку. ;)


Теперь - парочка полезных комбинаций клавиш.


Всякая фигня, которую я написал, чтоб было веселее жить. ;)

;; kill current buffer
(defun prh:kill-current-buffer ()
	(interactive)
	(kill-buffer (current-buffer)))

(global-set-key (kbd "C-x w") 'prh:kill-current-buffer)

;; set right ;) font and maximizes
(defun prh:ajust-frame ()
  "Ajusts current frame to display properties"
  (interactive)
  (set-default-font "-outline-Unifont-normal-r-normal-normal-16-120-96-96-c-*-*")
  (w32-send-sys-command 61488))

(global-set-key [C-f12] 'prh:ajust-frame)

И собственно разные неочевидные фичи.


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

If you like what you read — subscribe to my Twitter, I always post links to new posts there. Or, in case you're an old school person longing for an ancient technology, put a link to my RSS feed in your feed reader (it's actually Atom feed, but who cares).

Other recent posts

History snapshotting in TwinSpark.js
Code streaming: hundred ounces of nuances
Useful shell prompt
API pagination design
ElasticSearch query builder