Aaron Bello: "GNU Emacs As a Tool For Drupal Website Development and Management"
Thursday, October 15, 2015 - 6:30pm to 8:30pm
Davenport Conference Room
25 1st Street
Cambridge, MA 02141
GNU Emacs (a.k.a. An editor of a Lifetime) is more than an editor, a powerful tool for all programmers. It is extensible, customizable, self-documenting real-time display editor. Beyond just being able to edit files, Emacs includes special features to help you write in many different human languages and programming/markup languages. It can functions as well as tools for compiling, running, and testing programs.
This presentation will demonstrate how to use Emacs in your day to day Drupal development projects.
- Emacs is a file manager
- Emacs can read news, mail, and RSS feeds
- Emacs can be use as a tool for playing game
- Emacs can be use to read PDF files, Play Videos, Browse url etc
- Emacs can be use for ssh acess to your drupal site
You might see now why some people consider Emacs to be not merely a text editor but almost a complete operating system. Some users find that they can do almost all of their work from within Emacs.
Why Use Emacs for your Drupal projects?
Emacs helps you be productive in your drupal development by providing an integrated environment for many different kinds of tasks:
- All of the basic editing commands in your drupal project
- All the tools Emacs provides for opening, saving, searching, and processing text (and more) are available to you no matter what you're doing.
- This uniformity means that working within Emacs is often easier than learning to use a separate program, especially when that program is liable to have its own set of editing capabilities and shortcuts.
You can switch modes in an existing buffer by using M-x and the name of the mode:
- M-x calculator: A simple calculator.
- M-x calendar: A calendar.
- M-x org-mode: task management
- M-x phases-of-moon: Shows upcoming quarters of the moon.
- M-x java-mode: Mode for editing Java files
- M-x python-mode: Mode for editing Python files
- M-x text-mode: Mode for editing text files
- M-x fundamental-mode: Mode with no specializations at all
If Emacs doesn't work the way you'd like, you can use the Emacs Lisp (Elisp) language to customize. Emacs, automate common tasks, or add new features. Elisp is very easy to get started with and yet remarkably powerful: you can use it to alter and extend almost any feature of Emacs. You can make Emacs whatever you want it to be by writing Elisp code; one testament to this is the fact that all of the features pictured above (and many more described later in this tour) are written in Elisp.
Emacs is also portable. You can use the same editor (with the same configuration) on many platforms, including GNU/Linux, BSD and other Unix derivatives, and some proprietary operating systems such as Microsoft Windows.
Emacs can edit remote files transparently (as if they were local) using a feature called Tramp. Whenever Emacs asks for a file, you can indicate a remote file like so: /myname@remotehost:/remote/path/to/file. Emacs retrieves the file over SSH, FTP, or another method and takes care of saving it when you're done. With Tramp you can edit files on different computers using a single Emacs session, even if Emacs is not installed on the remote side.
Aaron Bello is a seasoned Entrepreneur, Engineer, eCommerce Expert and Computer Programmer. He is the founder and CEO of Hosttor Inc., a technology and consulting company based in Boston, Massachusetts. He has worked on various projects with Universities, Governments, Corporations and Organizations.
He started his IT journey at a local computer workshop in 1998. When he was in University, he developed interest in programming languages after taking Basic, Cobol, Fortran, Pascal, C and C++, VB etc classes. He now use and live in GNU Emacs daily for note taking, to-do lists, time tracking, chat on IRC, twitter, creating documents with LaTex and org-mode, check mail, news, RSS feeds, write article and post to PBN, play chess game, develop and manage all websites projects with HTML, CSS, PHP, JS, Python, Django, API, SSH, FTP, SCP, Drupal and other CMS Framework, Vagrant, Web-server and many more.