четверг, 25 декабря 2014 г.

"Ненужные" приложения

Помнится писал я про DiffMerge, и вроде еще не писал про Glogg [достаточно продвинутый просмотрщик лог-файлов]. Дальше будет неоригинально: они ненужны, если 1. установлен Emacs и 2. юзер хоть немного умеет им пользоваться. Даже так: нет никакой необходимости прыгать из первого во второе, когда все можно сделать в одном приложении, причем сделать не менее удобно.

Мой ~/.emacs, поблочно с комментариями

Используются только стандартные "расширения", уже идущие в комплекте Emacs-24.4.

1. Определение функций пользователя

 1 (defun open-cfg ()
 2   "Правка основного конфига"
 3   (interactive)
 4   (if (equal (buffer-name) ".emacs")
 5     (load "~/.emacs")
 6     (find-file "~/.emacs")))
 7 (defun insert-date ()
 8   "Insert current date yyyy-mm-dd H:M:S."
 9   (interactive)
10   (insert (format-time-string "%a %d.%m %H:%M")))
 Здесь определены 2 функции, которые я использую наиболее часто: открытие основного [этого] конфигурационного файла для правки и перезагрузки*, и формат timestamp`а.
  • После правки конфигов их нужно перезагрузить, чтобы изменения применились в текущей сессии. Или перезапустить редактор, но это чато неудобно и совсем по ламерски :)

2. Клавиатура

 Клавиатурные сокращения, можно ничего не менять и использовать стандартную схему Emacs, а можно сделать удобнее.
11 (global-set-key (kbd "<escape>") 'keyboard-escape-quit)
12 (global-set-key (kbd "<f1>") 'open-cfg)
13 (global-set-key (kbd ""<f3>") 'next-match)
14 (global-set-key (kbd "<f9>") 'shell)
15 (global-set-key (kbd "<f12>") 'kill-emacs)
16 (global-set-key (kbd "C-f") 'isearch-forward-regexp) 
17 (global-set-key (kbd "C-а") 'isearch-forward-regexp)
18 (global-set-key (kbd "C-z") 'undo)
19 (global-set-key (kbd "C-я") 'undo)
20 (global-set-key [mode-line mouse-5] 'next-buffer)
21 (global-set-key [mode-line mouse-4] 'previous-buffer)
22 (global-set-key [C-tab] 'delete-window)
  • Комбинации клавиш чувствительны к текущей раскладке,   поэтому некоторые команды для удобства продублированы рус/енг.
  • Клавиши-модификаторы Ctrl, Alt принято записывать как "C" и "M" соответственно.
  • Неплохо использовать Esc для отмены/завершения текущей команды, дополнительно к стандартной комбинации, а F12 в этом конфиге просто закрывает редактор, ничего не сохраняя и не запрашивая никаких подтверждений (!)

3. Тема оформления

Настройки внешнего вида, шрифта и пр.
23 (load-theme ' fogus t)
24 (custom-set-faces
25  '(default ((t (:family "Droid Sans" :height 150)))))
26 (custom-set-variables
27  '(delete-selection-mode nil)
28  '(desktop-save-mode nil)
29  '(double-click-time 1000)
30  '(inhibit-startup-buffer-menu t)
31  '(inhibit-startup-screen t))
Выбран шрифт-по-умолчанию "Droid Sans 15" и тема "Fogus".

4. Прочие настройки 

32 (kill-buffer "*scratch*")
33 (kill-buffer "*Messages*")
34 (windmove-default-keybindings 'meta)
35 (fset 'yes-or-no-p 'y-or-n-p)
62 (setq make-backup-files nil)
63 (setq auto-save-default nil)
Отучаем Emacs от излишеств и навязчивости ;) Кажется, все понятно без комментариев.

5. Алиасы 

Обычные сокращения команд, как и в shell. Про них тут.
64 (defalias 'dec 'org-decrypt-entry)
65 (defalias 'lf 'load-file)
66 (defalias 'lm 'list-matching-lines)
67 (defalias 'tag 'org-set-tags-command)
68 (defalias 'sel 'org-tags-sparse-tree)
69 (defalias 'abb 'abbrev-mode)
70 (defalias 'gt 'goto-line)

6. Modeline

Внешний вид "строки состояния".
71 (setq default-mode-line-format
72  (list ""
73  'mode-line-buffer-identification
74  'mode-line-modes
75  " | Cut: Ctrl+w Paste: Ctrl+y  Goto [gt]"
76  ))
Опять же убран ненужная мне индикация положения курсора ("точки" по терминологии Emacs) в документе и на первое время добавлена справка по клавиатурным комбинациям, которые я постоянно забывал))

* Меню пользователя

Собственный пункт в главном меню, отображается перед "File" - тоже весьма удобно на первое время, да и потом тоже не мешает. Состав меню естественно может быть абсолютно произвольным.
(require 'easymenu)
(easy-menu-define words-menu global-map
"Меню пользователя"
'("[Actions]"
        ["Decrypt" org-decrypt-entry]
        ["+ Tag" org-set-tags-command]
        ["Tag =" org-tags-sparse-tree]
        ["Вставить дату" insert-date]
        ["Быстрый поиск" isearch-forward-regexp]
        ["Орфография" flyspell-mode]
        ["Cтроки содержащие" list-matching-lines]
))

Update 01.2015:  добавил пару функций - быдлокод конечно: я-незнаю-лиспа, но работает.

вторник, 9 декабря 2014 г.

Авто-скрытие панели закладок в Firefox

Просто и элегантно:
/* Auto-hide bookmarks toolbar */
#PersonalToolbar {
visibility: collapse !important;
}
#navigator-toolbox:hover > #PersonalToolbar {
visibility: visible !important;
}
Добавить в файл ~/.mozilla/firefox/<profile-name>/chrome/userChrome.css
Протестировано на последней версии (v.34) Firefox.

Следующие Предыдущие Главная страница

Blogger Template by Blogcrowds