In a previous post I mentioned that I upgraded my homebrew install of Emacs after Emacs 26.2 was released, and noticed that I had lost its GUI functionality. That’s a pretty serious restriction for me as I usually end up with multiple frames across my desktop. I did end up installing the homebrew Emacs for Mac tap which restored the GUI functionality. It had have one niggling problem for me, though. My muscle memory says that I use Shift-Meta-7 (aka Meta-/ ) for keyword expansion as I use a German keyboard layout most of the time. Unfortunately, with Meta mapped to the Apple Command key, Shift-Meta-7 is a menu shortcut. Instead of expanding keywords, I kept opening menus. That clearly wouldn’t do.
You can use a OSX GUI Emacs in the form of Aquamacs which is configured to be more OSX like it its key commands and menus and integrates with the OS. One appeal of emacs is because emacs is mainly written in the language (e-lisp) that users can use to extend it there are a lot of scripts that add all sorts of functionality to the editor making it nearly as powerful as an ide. Emacs Mac Port is a patch set for GNU Emacs proper for better OS X integration. Note that GNU Emacs itself has native OS X support as well, but lacks the OS X specific additions, which this patch set provides. Notably: Core Text for text rendering, which improves text appearance and Unicode support.
Malcolm Purvis had been kind enough to point out in a comment to my original homebrew Emacs post that Davide Restivo had created a brew tap that brings the necessary –with-cocoa
build option back. He just upgraded it to Emacs 26.2, so this morning I rebuild my Emacs on OSX again and ended up where I wanted to be, with the latest version of Emacs, keyword expansion as I expected it to work, and a working GUI. Thanks, Davide!
Tested on OS X 10.11 El Capitan, with Homebrew Emacs and Spacemacs config. Why Emacs Daemon, why this post. Installing Emacs on a Mac in and of itself is not that much of a problem - there are several options, ranging from Homebrew and Macports to Emacs for Mac OS X, Emacs Mac Port and Aquamacs. The last two in this list have some OS X.
Emacs Tutorial Mac Os X
And yes, it might come across as silly to rebuilding the editor just to get my preferred key combination back. It probably is – after all, I could’ve just remapped the key combination in my .emacs. I tend to run Emacs across a myriad of platforms (Linux, OSX, Windows, FreeBSD to just list a few) and having a “stock” Emacs experience on all of these platforms means that my .emacs has only a minimal amount of OS-based conditionals in it. For example, it has the following OS X specific combo:
In fact, the above block is the only OS-specific configuration in my whole .emacs file. I’d like to keep it that way.
Emacs Mac Os X Transparency
Related
Emacs Mac Os X Curly Brackets
- iOS
- macOS
- watchOS
- tvOS
- Swift
- Man Pages
- .NET Framework
- ActionScript
- Akka
- Android
- Angular
- Ansible
- Apache
- Appcelerator Titanium
- AppleScript
- Arduino
- Backbone
- Bash
- Boost
- Bootstrap
- Bourbon
- Bourbon Neat
- C
- C++
- CakePHP
- Cappuccino
- Chai
- Chef
- Clojure
- CMake
- Cocos2D
- Cocos2D-X
- CodeIgniter
- CoffeeScript
- ColdFusion
- Common Lisp
- Compass
- Cordova
- Corona
- CouchDB
- Craft
- CSS
- D3.js
- Dart
- Django
- Docker
- Doctrine ORM
- Dojo Toolkit
- Drupal
- Elasticsearch
- Elixir
- Emacs Lisp
- Ember.js
- Emmet.io
- Erlang
- Express.js
- Expression Engine
- ExtJS
- Flask
- Font Awesome
- Foundation
- GLib
- Go
- Gradle
- Grails
- Groovy
- Grunt
- Gulp
- Haml
- Handlebars
- Haskell
- HTML
- Ionic
- Jasmine
- Java SE
- Java EE
- JavaScript
- Jekyll
- Jinja
- Joomla
- jQuery
- jQuery Mobile
- jQuery UI
- Julia
- Knockout.js
- Kobold2D
- Laravel
- LaTeX
- Less
- lodash
- Lua
- Marionette.js
- Matplotlib
- Meteor
- Mocha
- MomentJS
- MongoDB
- Mongoose
- Mono
- MooTools
- MySQL
- Nginx
- Node.js
- NumPy
- OCaml
- OpenCV
- OpenGL
- Pandas
- Perl
- Phalcon
- PhoneGap
- PHP
- PHPUnit
- Play Framework
- Polymer.dart
- PostgreSQL
- Processing.org
- Prototype
- Pug
- Puppet
- Python
- Qt
- R
- Racket
- React
- Redis
- RequireJS
- Ruby
- Ruby on Rails
- Rust
- Sails.js
- Sass
- SaltStack
- Scala
- SciPy
- Semantic UI
- Sencha Touch
- Sinon
- Smarty
- Sparrow
- Spring Framework
- SproutCore
- SQLAlchemy
- SQLite
- Statamic
- Stylus
- Susy
- SVG
- Symfony
- Tcl
- Tornado
- Twig
- Twisted
- TypeScript
- TYPO3
- Underscore.js
- Unity 3D
- Vagrant
- Vim
- VMware vSphere
- Vue.js
- WordPress
- Xamarin
- Xojo
- XSLT
- Yii
- YUI
- Zend Framework
- Zepto.js