Estoy probando http://emacspeak.sourceforge.net ahora que lo tengo funcionando en Windows. Me gustaría usar emacs como algo más que un editor de texto plano y me preguntaba con qué extensiones/paquetes no podrían vivir todos. Los idiomas que uso más son Perl, Java y algo de C/C++.¿Debe tener extensiones Emacs?
Respuesta
Hay una configuración inicial muy buena en el EMACS Starter Kit. Si te gusta trabajar con texto sin formato, mira Org-Mode. Y por supuesto, explore el EMACS Wiki.
Me gusta color theme y, por supuesto, los modos para los idiomas que estoy usando.
Me gusta poder hacer que mi editor se comporte exactamente como yo quiero. En consecuencia, he escrito un montón de paquetes para ajustar las cosas a una pulgada de sus vidas. Enumeraré algunos en la parte inferior de la publicación. Los paquetes estándar que tendría problemas para vivir sin incluiría:
- ñus
- TNT - cliente de mensajería instantánea AOL (que ayudan a mantener)
- Jabber
- git-emacs
- camello caso
- swbuff (y mi extensión swbuff-consejos)
- DIRED
Y aquí hay algunos que escribí que yo podría nunca, nunca vivir sin (por eso las he escrito):
- conjunto de línea o de la región - cortar y pegar toda la línea, cuando la región no es definido
- cua-Lite - un paquete CUA lite-peso
- dired-sola - Restringir dired a una única memoria intermedia, reutilizable
- vagabundo - reemplazo de vagabundo, no está listo para el prime-time
UN Además, como Charlie menciona, solo eche un vistazo a EmacsWiki cada vez que se aburra. Siempre encontrarás algo nuevo para probar. Y leo gnu.emacs.sources para ver lo último y lo mejor que las personas tienen para ofrecer.
algunos trozos de mi excesivamente grandes fichero .emacs:
(setq inhibit-startup-message t)
;; window maximized
(when (fboundp 'w32-send-sys-command)
(w32-send-sys-command #xf030))
;; http://www.emacswiki.org/cgi-bin/wiki/DiredPlus
(load "dired+")
(load "w32-browser") ;; open file on current line (etc.)
;; dired stuff to open files a la Windows from Howard Melman
(defun dired-execute-file (&optional arg)
(interactive "P")
(mapcar #'(lambda (file)
(w32-shell-execute "open" (convert-standard-filename file)))
(dired-get-marked-files nil arg)))
(defun dired-mouse-execute-file (event)
"In dired, execute the file or goto directory name you click on."
(interactive "e")
(set-buffer (window-buffer (posn-window (event-end event))))
(goto-char (posn-point (event-end event)))
(if (file-directory-p (dired-get-filename))
(dired-find-file)
(dired-execute-file)))
(global-set-key [?\C-x mouse-2] 'dired-mouse-execute-file)
;; push current-line onto kill-ring
;; http://www.dotemacs.de/dotfiles/SteveMolitor.emacs.html
(defun push-line()
"Select current line, push onto kill ring."
(interactive)
(save-excursion
(copy-region-as-kill (re-search-backward "^") (re-search-forward "$"))))
(global-set-key "\C-cp" 'push-line)
;; default groups for ibuffer
;; http://www.shellarchive.co.uk/content/emacs_tips.html#sec17
(setq ibuffer-saved-filter-groups
(quote (("default"
("dired" (mode . dired-mode))
("perl" (mode . cperl-mode))
("java" (mode . java-mode))
("planner" (or
(name . "^\\*Calendar\\*$")
(name . "diary")))
("emacs" (or
(mode . help-mode)
(mode . occur-mode)
(mode . Info-mode)
(mode . bookmark-bmenu-mode)
(name . "^\\*Apropos\\*$")
(name . "^.emacs$")
(name . "el$")
(name . "^\\*scratch\\*$")
(name . "^\\*Messages\\*$")
(name . "^\\*Completions\\*$")))
("vb" (or
(mode . visual-basic-mode)
(mode . vb-project)))
("BugTracker" (name . ".*btnet.*"))
("gnus" (or
(mode . message-mode)
(mode . bbdb-mode)
(mode . mail-mode)
(mode . gnus-group-mode)
(mode . gnus-summary-mode)
(mode . gnus-article-mode)
(name . "^\\.bbdb$")
(name . "^\\.newsrc-dribble")))))))
;; ibuffer, I like my buffers to be grouped
(add-hook 'ibuffer-mode-hook
(lambda()
(ibuffer-switch-to-saved-filter-groups
"default")))
;; http://www.emacswiki.org/cgi-bin/wiki/CPerlMode
;; http://www.khngai.com/emacs/perl.php
;; Use cperl-mode instead of the default perl-mode
(add-to-list 'auto-mode-alist '("\\.\\([pP][Llm]\\|al\\)\\'" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))
;; daily-tip (or whenever Emacs is launched)
;; http://emacs.wordpress.com/2007/06/21/tip-of-the-day/
(defun totd()
(interactive)
(random t) ;; seed with time-of-day
(with-output-to-temp-buffer "*Tip of the day*"
(let* ((commands (loop for s being the symbols
when (commandp s) collect s))
(command (nth (random (length commands)) commands)))
(princ
(concat "Your tip for the day is:\n"
"========================\n\n"
(describe-function command)
"\n\nInvoke with:\n\n"
(with-temp-buffer
(where-is command t)
(buffer-string)))))))
;; swap slashes and backslashes in current line -- useful for converting paths to be Windows-readable
;;http://www.xsteve.at/prg/emacs/.emacs.txt
(defun xsteve-exchange-slash-and-backslash()
"Exchanges/with \ and in the current line or in the region when a region-mark is active."
(interactive)
(save-match-data
(save-excursion
(let ((replace-count 0)
(eol-pos (if mark-active (region-end) (progn (end-of-line) (point))))
(bol-pos (if mark-active (region-beginning) (progn (beginning-of-line) (point)))))
(goto-char bol-pos)
(while (re-search-forward "/\\|\\\\" eol-pos t)
(setq replace-count (+ replace-count 1))
(cond ((string-equal (match-string 0) "/") (replace-match "\\\\" nil nil))
((string-equal (match-string 0) "\\") (replace-match "/" nil nil)))
(message (format "%d changes made." replace-count)))))))
(global-set-key (kbd "M-\\") 'xsteve-exchange-slash-and-backslash)
Salida: dotfiles.org/.emacs
algunos otros paquetes no se hace referencia más arriba: Elscreen - W3m (navegador basado en texto emacs-friendly)
- 1. Objeto nullable debe tener un valor?
- 2. Comenzando con los rieles? Debe tener gemas?
- 3. ¿Qué valor debe tener el servicio Nombreprincipal?
- 4. ¿Qué tipo debe tener Struts ActionForm?
- 5. objeto anulable debe tener un valor
- 6. La interfaz no debe tener propiedades?
- 7. ¿Cómo puedo tener un Emacs portátil?
- 8. declarando el modo un archivo emacs debe abrirse en
- 9. ¿Qué prácticas de codificación OOP siempre debe tener en cuenta?
- 10. Objeto nullable debe tener un valor - ¿por qué?
- 11. ataques a aplicaciones web y debe tener métodos de defensa
- 12. ASP MVC ChildAction Solo debe tener el enrutamiento
- 13. mensaje de error anulable objeto debe tener un valor
- 14. matriz C++ - la expresión debe tener un valor constante
- 15. Cada tabla derivada debe tener su propio error de alias
- 16. AJAX: ¿qué tipo de contenido debe tener datos codificados JSON?
- 17. ¿Debe una propiedad tener el mismo nombre que su tipo?
- 18. advertencia 10: esta expresión debe tener unidad de tipo
- 19. ¿Debe una API tener números de versión en ella?
- 20. ¿Cuánta separación de directorios debe tener mi framework?
- 21. ¿Qué características debe tener un analizador C# /. NET?
- 22. ¿Debe una clase abstracta tener al menos un método abstracto?
- 23. operador de sobrecarga == quejándose de 'debe tener exactamente un argumento'
- 24. ¿El orden por columna debe tener índice o no?
- 25. operador << debe tener exactamente un argumento
- 26. ¿Qué permisos de archivos debe tener el contenido de $ GIT_DIR?
- 27. Lo que debe tener cuidado al pasar a iOS 5
- 28. executeFetchRequest: error: Una solicitud de búsqueda debe tener una entidad
- 29. ¿Cómo puedo tener pliegues para C++/Java en Emacs?
- 30. ¿Está utilizando extensiones paralelas?
Utilicé el tema de color por un tiempo, también, pero encontré algunas ralentizaciones bizarras en modo cperl. Desactivar el tema de color se deshizo de él (puede haber sido una complicada interacción de terceros, ¡quién sabe!). –