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. И нажмёшь эту кнопку. ;)
Теперь - парочка полезных комбинаций клавиш.
- M-z - спрашивает символ, и удаляет до его первого появления в тексте дальше. С префиксом - удаляет до н-ного (соответственно, можно и до негативного - удалить назад).
- C-M-k - удаляет так сказать завершённую фразу. Ну, к примеру, от кавычки до соответствующей кавычки. Или от открывающей скобки до соответствующей ей закрывающей скобке.
- C-u M-! - вставляет результат исполнения шелл-команды в текущий буфер.
- C-u M-| - берёт выделенный регион как stdin для программы, и заменяет его её stdout’ом.
Всякая фигня, которую я написал, чтоб было веселее жить. ;)
;; 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)
И собственно разные неочевидные фичи.
- Всякие замены при выделенном регионе производятся конкретно над ним.
Позже, может, еще допишу. Да и выложу конфиги + всякую всячину.