Reputation: 2029
I've started using Atom with a Macbook and I wanted to create a keybinding so that alt-up arrow would be page up and alt-down arrow for page down, I've tried a bunch of options and I'm not having much luck.
I'm not sure what the difference between
'atom-text-editor':
and
'atom-text-editor:not([mini])':
is and which one to use. I also have a package called emmet installed which is using alt-up and it always overrides what I'm trying, however I thought the keymap.cson file should override all 3rd party packages.
Upvotes: 1
Views: 1194
Reputation: 56508
The mini
scope is for single-line inputs. For example, the "Find" or "Find in Project" panels use mini
editors to accept input. The not([mini])
selector excludes those, so that your binding is only used in code editor windows/panes.
In this specific case, in practice it probably doesn't matter a lot, as the mini editors won't do anything with page-up
or page-down
anyway. But in general, I think it is better to scope the key bindings correctly instead of just making it global. It's a good habit.
You already have a good selector (atom-text-editor:not([mini])
). In the comments you asked what other selectors are (in particular, atom-workspace
and ::shadow
). I don't have a great explanation of ::shadow
but you might read a bit including here.
atom-text-editor
is scoped to, as you'd expect, text editor panes. Whereas atom-workspace
is a bit wider scope: it is scoped to the entire window, which might include things like the tree view, tabs, status bars, etc.
In order to make a key binding, you need three things:
atom-text-editor:not([mini])
alt-up
and alt-down
.Every Atom command should be available in the Command Palette (CmdShiftP). In your case, you can trigger the palette and search for something like "page".
You can see two matching commands, "Core: Page Up" and "Core: Page Down". To turn these into usable commands, you reformat them like so:
Remove the space after the colon
Replace spaces with hyphens
Lowercase everything
That leaves you with core:page-up
and core:page-down
.
In some cases, you want to take a command already mapped to a key, and map it to another key. In those cases you can locate the command using Atom's Key Binding Resolver.
Activate the resolver by pressing Cmd.. This will open a panel at the bottom of your window and tell you what command each keypress is tied to. Pressing PageUp or PageDown will point you to the core:page-up
and core:page-down
commands.
Press Cmd. again to deactivate the Key Binding Resolver.
In Atom's preferences, you can click "Open Config Folder" to open a new editor window with the config folder loaded. Open the keymap.cson
file to add your new keymap.
'atom-text-editor:not([mini])':
'alt-up': 'core:page-up'
'alt-down': 'core:page-down'
Save the file and your keymap should go into effect immediately.
Upvotes: 3
Reputation: 2810
To add new keybindings open the your ~/.atom/config.cson, and your own binding using example
'atom-text-editor':
'ctrl-alt-b': 'atom-beautify:beautify-editor'
Upvotes: 0