Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,15 @@ Or in Atom:

There's no need to restart Atom.

Use shift-ctrl-space to activate/deactivate emacs key bindings.

There is a setting to control whether emacs bindings are active when Atom starts.

## Commands

### Activation
'shift-ctrl-space': 'atomic-emacs:toggle'

### Navigation

'ctrl-b': 'atomic-emacs:backward-char'
Expand Down
45 changes: 24 additions & 21 deletions keymaps/atomic-emacs.cson
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
'atom-workspace':
'shift-ctrl-space': 'atomic-emacs:toggle'

'atom-workspace.atomic-emacs':
'ctrl-g': 'core:cancel'
'alt-x': 'command-palette:toggle'
'ctrl-x ctrl-c': 'application:quit'
Expand All @@ -11,28 +14,28 @@
'ctrl-x 1': 'atomic-emacs:close-other-panes'
'ctrl-x o': 'window:focus-next-pane'

'body.platform-darwin':
'body.platform-darwin .atomic-emacs':
'cmd-x': 'atomic-emacs:cut'
'cmd-c': 'atomic-emacs:copy'

'body.platform-linux':
'body.platform-linux .atomic-emacs':
'shift-delete': 'atomic-emacs:cut'
'ctrl-insert': 'atomic-emacs:copy'
'ctrl-x': 'atomic-emacs:cut'
'ctrl-c': 'atomic-emacs:copy'

# For command palette, buffer switcher, etc. on Linux.
'body.platform-linux .select-list atom-text-editor.mini':
'body.platform-linux .atomic-emacs .select-list atom-text-editor.mini':
'ctrl-p': 'core:move-up'
'ctrl-n': 'core:move-down'

'body.platform-win32':
'body.platform-win32 .atomic-emacs':
'shift-delete': 'atomic-emacs:cut'
'ctrl-insert': 'atomic-emacs:copy'
'ctrl-x': 'atomic-emacs:cut'
'ctrl-c': 'atomic-emacs:copy'

'atom-workspace atom-text-editor':
'atom-workspace.atomic-emacs atom-text-editor':
# Navigation
'ctrl-b': 'atomic-emacs:backward-char'
'left': 'atomic-emacs:backward-char'
Expand Down Expand Up @@ -107,7 +110,7 @@
'ctrl-x ctrl-w': 'core:save-as'
'alt-.': 'symbols-view:go-to-declaration'

'atom-text-editor:not(.autocomplete-active):not(.mini)':
'.atomic-emacs atom-text-editor:not(.autocomplete-active):not(.mini)':
# Navigation
'ctrl-p': 'atomic-emacs:previous-line'
'up': 'atomic-emacs:previous-line'
Expand All @@ -126,55 +129,55 @@
'ctrl-d': 'core:delete'
'ctrl-e': 'editor:move-to-end-of-screen-line'

'.platform-linux atom-workspace atom-text-editor:not([mini]),
.platform-win32 atom-workspace atom-text-editor:not([mini])':
'.platform-linux atom-workspace.atomic-emacs atom-text-editor:not([mini]),
.platform-win32 atom-workspace.atomic-emacs atom-text-editor:not([mini])':
'ctrl-j': 'editor:newline'

'.platform-linux atom-workspace atom-text-editor:not(.autocomplete-active):not([mini]),
.platform-win32 atom-workspace atom-text-editor:not(.autocomplete-active):not([mini])':
'.platform-linux atom-workspace.atomic-emacs atom-text-editor:not(.autocomplete-active):not([mini]),
.platform-win32 atom-workspace.atomic-emacs atom-text-editor:not(.autocomplete-active):not([mini])':
'ctrl-/': 'core:undo'

'.platform-win32 atom-workspace.atomic-emacs atom-text-editor':
'ctrl-d': 'core:delete'
'ctrl-e': 'editor:move-to-end-of-screen-line'
'ctrl-k ctrl-k': 'editor:cut-to-end-of-line'

'atom-workspace .find-and-replace atom-text-editor':
'atom-workspace.atomic-emacs .find-and-replace atom-text-editor':
'ctrl-s': 'find-and-replace:confirm'
'ctrl-r': 'find-and-replace:show-previous'

'.go-to-line atom-text-editor[mini] input':
'.atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'.tree-view-dialog atom-text-editor[mini]':
'.atomic-emacs .tree-view-dialog atom-text-editor[mini]':
'ctrl-g': 'core:cancel'

'atom-panel.left, atom-panel.right':
'.atomic-emacs atom-panel.left, atom-panel.right':
'ctrl-g': 'tool-panel:unfocus'

'.platform-linux atom-workspace, .platform-win32 atom-workspace':
'.platform-linux atom-workspace.atomic-emacs, .platform-win32 atom-workspace.atomic-emacs':
'alt-g g': 'go-to-line:toggle'
'alt-g alt-g': 'go-to-line:toggle'
'ctrl-g': 'core:cancel'

'.platform-win32 .go-to-line atom-text-editor[mini] input':
'.platform-win32 .atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'.platform-darwin':
'.platform-darwin .atomic-emacs':
'alt-g g': 'go-to-line:toggle'
'alt-g alt-g': 'go-to-line:toggle'
'ctrl-g': 'core:cancel'

'.platform-darwin .go-to-line atom-text-editor[mini] input':
'.platform-darwin .atomic-emacs .go-to-line atom-text-editor[mini] input':
'ctrl-g': 'core:cancel'

'atom-text-editor.autocomplete-active':
'.atomic-emacs atom-text-editor.autocomplete-active':
'ctrl-g': 'autocomplete-plus:cancel'

'atom-text-editor !important, atom-text-editor[mini] !important':
'.atomic-emacs atom-text-editor !important, .atomic-emacs atom-text-editor[mini] !important':
'ctrl-g': 'editor:consolidate-selections'

'atom-workspace .atomic-emacs.search atom-text-editor':
'atom-workspace.atomic-emacs .atomic-emacs.search atom-text-editor':
'enter': 'atomic-emacs:isearch-exit'
'ctrl-m': 'atomic-emacs:isearch-exit'
'escape': 'atomic-emacs:isearch-cancel'
Expand Down
9 changes: 8 additions & 1 deletion lib/atomic-emacs.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ module.exports =
State: State

config:
aastartWithEmacsBindings:
type: 'boolean',
default: true,
title: 'Turn on emacs bindings when Atom starts'
useAdvancedOpenFile:
type: 'boolean',
default: true,
Expand Down Expand Up @@ -78,11 +82,14 @@ module.exports =

State.initialize()
@search = new SearchManager(plugin: @)
document.getElementsByTagName('atom-workspace')[0]?.classList?.add('atomic-emacs')
if atom.config.get('atomic-emacs.aastartWithEmacsBindings')
document.getElementsByTagName('atom-workspace')[0]?.classList?.add('atomic-emacs')
@disposable = new CompositeDisposable
@disposable.add atom.commands.onWillDispatch (event) -> beforeCommand(event)
@disposable.add atom.commands.onDidDispatch (event) -> afterCommand(event)
@disposable.add atom.commands.add 'atom-text-editor',
# Activation
"atomic-emacs:toggle": (event) -> atom.workspace.element.classList.toggle('atomic-emacs')
# Navigation
"atomic-emacs:backward-char": (event) -> getEditor(event).backwardChar()
"atomic-emacs:forward-char": (event) -> getEditor(event).forwardChar()
Expand Down
62 changes: 1 addition & 61 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,68 +1,8 @@
{
"name": "atomic-emacs",
"main": "./lib/atomic-emacs",
"version": "0.15.0",
"version": "0.15.1",
"description": "An atomic implementation of emacs keybindings",
"activationCommands": {
"atom-text-editor": [
"atomic-emacs:backward-char",
"atomic-emacs:forward-char",
"atomic-emacs:backward-word",
"atomic-emacs:forward-word",
"atomic-emacs:backward-sexp",
"atomic-emacs:forward-sexp",
"atomic-emacs:backward-list",
"atomic-emacs:forward-list",
"atomic-emacs:previous-line",
"atomic-emacs:next-line",
"atomic-emacs:backward-paragraph",
"atomic-emacs:forward-paragraph",
"atomic-emacs:back-to-indentation",
"atomic-emacs:backward-kill-word",
"atomic-emacs:kill-word",
"atomic-emacs:kill-line",
"atomic-emacs:kill-region",
"atomic-emacs:copy-region-as-kill",
"atomic-emacs:append-next-kill",
"atomic-emacs:yank",
"atomic-emacs:yank-pop",
"atomic-emacs:yank-shift",
"atomic-emacs:cut",
"atomic-emacs:copy",
"atomic-emacs:delete-horizontal-space",
"atomic-emacs:delete-indentation",
"atomic-emacs:open-line",
"atomic-emacs:just-one-space",
"atomic-emacs:transpose-chars",
"atomic-emacs:transpose-words",
"atomic-emacs:transpose-lines",
"atomic-emacs:downcase-word-or-region",
"atomic-emacs:upcase-word-or-region",
"atomic-emacs:capitalize-word-or-region",
"atomic-emacs:dabbrev-expand",
"atomic-emacs:dabbrev-previous",
"atomic-emacs:isearch-forward",
"atomic-emacs:isearch-backward",
"atomic-emacs:isearch-exit",
"atomic-emacs:isearch-cancel",
"atomic-emacs:isearch-repeat-forward",
"atomic-emacs:isearch-repeat-backward",
"atomic-emacs:isearch-toggle-case-fold",
"atomic-emacs:isearch-toggle-regexp",
"atomic-emacs:isearch-yank-word-or-character",
"atomic-emacs:set-mark",
"atomic-emacs:mark-sexp",
"atomic-emacs:mark-whole-buffer",
"atomic-emacs:exchange-point-and-mark",
"atomic-emacs:recenter-top-bottom",
"atomic-emacs:scroll-down",
"atomic-emacs:scroll-up"
],
"atom-workspace": [
"atomic-emacs:find-file",
"atomic-emacs:close-other-panes"
]
},
"consumedServices": {
"file-icons.element-icons": {
"versions": {
Expand Down