Emacs/Konfiguracja
Z Wikibooks, biblioteki wolnych podręczników.
The big problem is that you have to become a .emacs programmer before you can start coding. [1]
Spis treści |
[edytuj] Sprawdzanie i ustalanie zmiennych bezpośrednio w programie
VAR zmienna, VALUE wartość, RET klawisz Enter
1. Wyświetlenie wartości zmiennej oraz dokumentacji
C-h v VAR RET
2. Ustawienie zmiennej VAR na wartość VALUE
M-x set-variable RET VAR RET VALUE RET
3. Sprawdzenie, co jest przypisane do danej kombinacji klawiszy
C-h k wciskamy kombinację klawiszy
4. Sprawdzenie jaka kombinacja klawiszy uruchamia daną funkcję, np. kill-sexp
C-h w kill-sexp RET
[edytuj] Znajdywanie błędów w pliku .emacs
M-x set-variable debug-on-error t M-x load-file ~/.emacs
Inną metodą jest uruchomienie Emacsa w taki sposób
emacs --debug-init
[edytuj] .emacs
Poniższą zawartość można bezpośrednio skopiować do ~/.emacs.
;; podwójne średniki do komentarzy, pojedyncze do wyłączania opcji
;; Wczytujemy konfig klawiszem F9, nie trzeba wychodzić z Emacsa
(defun load-my-config ()
(interactive)
(load-file "~/.emacs"))
(global-set-key (kbd "<f9>") 'load-my-config)
(add-to-list 'load-path "~/elisp")
(setq inhibit-splash-screen t) ; nie pokazuje ekranu startowego
(setq make-backup-files nil) ; nie robi backupow
(menu-bar-mode -1) ; wylaczamy menubar na gorze
(transient-mark-mode t) ; widoczne co zaznaczylismy
;; Funkcja i bindowanie do zamkniecia okna i buforu jednoczesnie
;; thanks to piranha from #emacs at freenode
(defun kill-and-close-buffer () (interactive) (kill-buffer nil) (delete-window))
(global-set-key (kbd "C-x x") 'kill-and-close-buffer)
;; http://www.emacswiki.org/cgi-bin/wiki/InteractivelyDoThings
;; dopelnia wewnatrz nazw nie tylko poczatki, np przy otwieraniu plikow
;; #emacs@freenode 2008-03-06
;; [11:26] <bob2> rofrol: I like it because it completes on strings
;; within the names, not just at the beginning
(require 'ido)
(ido-mode t)
;; otwieranie w textmate jest w fuzzy mode, co to jest?
;; http://groups.google.com/group/comp.emacs/msg/444300433515472b?dmode=source
;; opcja odpowiadająca to
; http://groups.google.com/group/comp.emacs/msg/444300433515472b?dmode=source
; (setq ido-enable-flex-matching t)
;; http://www.codecoffee.com/tipsforlinux/articles/033.html
;; Changes all yes/no questions to y/n type
(fset 'yes-or-no-p 'y-or-n-p)
;;Plynne przewijanie po jednej linii
(setq scroll-step 2)
;;alternatywnie mozna ustawic dwie zmienne
;;http://www.emacswiki.org/emacs-en/SmoothScrolling
;scroll-step 1
;scroll-conservatively 10000
;;jesli potrzeba ustawic margines dla przewijania
;;http://emacs.wordpress.com/2007/09/10/smooth-scrolling/
;;Utrzymywanie kursora w tej samej pozycji podczas przewijania stron
(setq scroll-preserve-screen-position t)
;; "http://snarfed.org/space/emacs page up page down"
;; page down przesuwa takze kursor, jesli dojedzie do konca strony
;; Page down/up move the point, not the screen.
;; In practice, this means that they can move the
;; point to the beginning or end of the buffer.
(global-set-key [next]
(lambda () (interactive)
(condition-case nil (scroll-up)
(end-of-buffer (goto-char (point-max))))))
(global-set-key [prior]
(lambda () (interactive)
(condition-case nil (scroll-down)
(beginning-of-buffer (goto-char (point-min))))))
;; pokaz nie widoczne znaki na końcu linii
;; http://trey-jackson.blogspot.com/2008/03/emacs-tip-12-show-trailing-whitespace.html
(setq-default show-trailing-whitespace t)
;; włączanie outline-mode dla plików o nazwie TODO
;; * to poziom 1, ** to poziom 2, jeśli wykonane to dajemy spację przed gwiazdką
;; from Teach Yourself Emacs in 24 hours
;; http://edward.oconnor.cx/2006/03/poor-mans-todo-list
;; http://www.emacswiki.org/cgi-bin/wiki/OutlineMode
(setq auto-mode-alist (cons '("TODO" . outline-mode)auto-mode-alist))
;; utf-8
;; http://gentoo-wiki.com/HOWTO_Make_your_system_use_unicode/utf-8#Editors
(setq locale-coding-system 'utf-8)
(setq terminal-coding-system 'utf-8)
(setq keyboard-coding-system 'utf-8)
(setq selection-coding-system 'utf-8)
(setq prefer-coding-system 'utf-8)
;; http://www.xsteve.at/prg/emacs/.emacs.txt
;;http://www.bazon.net/mishoo/.emacs
;; dziala zwykle global
;(global-set-key "\M-g" 'newline-and-indent)
;; nie dziala zwykle local
;(local-set-key "\M-g" 'newline-and-indent)
;; dziala kbd
;(define-key global-map (kbd "M-g") 'newline-and-indent)
;; nie dziala kbd local
;(define-key local-map (kbd "M-g") 'newline-and-indent)
;; podobno enter jest zasloniety lokalna definicja, ale ponizsze nie dzial
;(local-set-key (kbd "C-m") 'newline-and-indent
;; za to to dziala
;(global-set-key "\C-m" 'newline-and-indent)
;; Przydatne do pisania programów
(global-set-key (kbd "C-m") 'newline-and-indent)
[edytuj] adresy dotyczące konfiguracji
http://www.debianusers.pl/articles/39 Podstawy składni pliku konfiguracyjnego
http://www.emacsblog.org/2007/10/07/declaring-emacs-bankruptcy/#more-105 Podział pliku konfiguracyjnego na mniejsze
http://www.dotemacs.de/ zbiór plików konfiguracyjnych
http://www.dotemacs.de/recovery.html Testowanie kodu przed wrzuceniem do konfiguracji
http://tiny-tools.sourceforge.net/emacs-keys.html Bardzo obszerny poradnik