Skip to content

Instantly share code, notes, and snippets.

@noslouch
Last active December 11, 2019 22:16
Show Gist options
  • Save noslouch/e34bc61da832f304601be51c9e37a3f7 to your computer and use it in GitHub Desktop.
Save noslouch/e34bc61da832f304601be51c9e37a3f7 to your computer and use it in GitHub Desktop.
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#
# An example hack to log to the console when each text editor is saved.
#
# atom.workspace.observeTextEditors (editor) ->
# editor.onDidSave ->
# console.log "Saved! #{editor.getPath()}"
dispatch = (commands...) ->
editor = atom.workspace.getActiveTextEditor()
editorElement = atom.views.getView(editor)
for command in commands
atom.commands.dispatch(editorElement, command)
getCommandPaletteView = () ->
for {item} in atom.workspace.getModalPanels()
return item if item.constructor.name is 'CommandPaletteView'
getCommandPaletteEditor = () ->
getCommandPaletteView().filterEditorView.getModel()
insertToCommandPaletteEditor = (text) ->
editor = getCommandPaletteEditor()
editor.insertText(text)
editor.moveToEndOfLine()
# Your keymap
#
# Atom keymaps work similarly to style sheets. Just as style sheets use
# selectors to apply styles to elements, Atom keymaps use selectors to associate
# keystrokes with events in specific contexts. Unlike style sheets however,
# each selector can only be declared once.
#
# You can create a new keybinding in this file by typing "key" and then hitting
# tab.
#
# Here's an example taken from Atom's built-in keymap:
#
# 'atom-text-editor':
# 'enter': 'editor:newline'
#
# 'atom-workspace':
# 'ctrl-shift-p': 'core:move-up'
# 'ctrl-p': 'core:move-down'
#
# You can find more information about keymaps in these guides:
# * https://atom.io/docs/latest/using-atom-basic-customization#customizing-key-bindings
# * https://atom.io/docs/latest/behind-atom-keymaps-in-depth
#
# If you're having trouble with your keybindings not working, try the
# Keybinding Resolver: `Cmd+.` on OS X and `Ctrl+.` on other platforms. See the
# Debugging Guide for more information:
# * https://atom.io/docs/latest/hacking-atom-debugging#check-the-keybindings
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# https://atom.io/docs/latest/using-atom-basic-customization#cson
'.platform-darwin':
'ctrl-=': 'termination:toggle'
'ctrl-k': 'window:focus-pane-above'
'ctrl-j': 'window:focus-pane-below'
'ctrl-l': 'window:focus-pane-on-right'
'ctrl-h': 'window:focus-pane-on-left'
'ctrl-p': 'command-palette:toggle'
'ctrl-t': 'fuzzy-finder:toggle-file-finder'
'ctrl-;': 'fuzzy-finder:toggle-buffer-finder'
'ctrl-alt-;': 'fuzzy-finder:toggle-git-status-finder'
'ctrl-alt-h': 'git-plus:menu'
'atom-text-editor':
'ctrl-alt-h': 'unset!'
'ctrl-alt-f': 'unset!'
'atom-text-editor.vim-mode-plus':
'alt-]': 'editor:indent-selected-rows'
'alt-[': 'editor:outdent-selected-rows'
'atom-text-editor.vim-mode-plus.insert-mode':
'j j': 'vim-mode-plus:activate-normal-mode'
'atom-text-editor.vim-mode-plus:not(.insert-mode)':
', space': 'vim-mode-plus:clear-highlight-search'
', v': 'pane:split-down-and-copy-active-item'
', w': 'pane:split-right-and-copy-active-item'
'ctrl-e': 'editor:move-to-end-of-line'
'ctrl-t': 'fuzzy-finder:toggle-file-finder'
'space space': 'core:save'
'ctrl-k': 'window:focus-pane-above'
'ctrl-j': 'window:focus-pane-below'
'ctrl-l': 'window:focus-pane-on-right'
'ctrl-h': 'window:focus-pane-on-left'
# I prefer this matching algorithm to bracket-matcher, it matches to the nearest
# on the current line rather than the nearest surrounding pair
'tab': 'vim-mode-plus:move-to-pair'
'y s': 'vim-mode-plus:surround'
'y s w': 'vim-mode-plus:surround-word'
'y m s': 'vim-mode-plus:map-surround'
# 'd s': 'vim-mode-plus:delete-surround'
#'x s': 'vim-mode-plus:delete-surround-any-pair'
# 'c s': 'vim-mode-plus:change-surround'
'c s': 'vim-mode-plus:change-surround-any-pair'
'body atom-text-editor.autocomplete-active':
'shift-tab': 'autocomplete-plus:move-up'
'tab': 'autocomplete-plus:move-down'
'pageup': 'autocomplete-plus:page-up'
'pagedown': 'autocomplete-plus:page-down'
'home': 'autocomplete-plus:move-to-top'
'end': 'autocomplete-plus:move-to-bottom'
'body':
'ctrl-alt-[': 'pane:show-previous-item'
'ctrl-alt-]': 'pane:show-next-item'
'atom-text-editor.vim-mode-plus.insert-mode[data-grammar="text html handlebars"]:not([mini])':
'shift-space': 'emmet:expand-abbreviation-with-tab'
'atom-text-editor.vim-mode-plus.insert-mode[data-grammar="source handlebars"]:not([mini])':
'shift-space': 'emmet:expand-abbreviation-with-tab'
'atom-text-editor.vim-mode-plus.insert-mode[data-grammar="text html twig"]:not([mini])':
'shift-space': 'emmet:expand-abbreviation-with-tab'
'atom-text-editor.vim-mode-plus.insert-mode[data-grammar="text html django"]:not([mini])':
'shift-space': 'emmet:expand-abbreviation-with-tab'
'atom-workspace':
'ctrl-alt-f': 'copy-filename:copy-open-file-filename'
'.platform-darwin atom-workspace':
"ctrl-'": 'toggle-quotes:toggle'
[
{
"name": "MagicPython",
"version": "1.1.1"
},
{
"name": "about",
"version": "1.9.1"
},
{
"name": "apex-ui",
"version": "1.2.0",
"theme": "ui"
},
{
"name": "archive-view",
"version": "0.65.1"
},
{
"name": "atom-beautify",
"version": "0.33.4"
},
{
"name": "atom-copy-on-select",
"version": "1.5.0"
},
{
"name": "atom-dark-syntax",
"version": "0.29.1",
"theme": "syntax"
},
{
"name": "atom-dark-ui",
"version": "0.53.3",
"theme": "ui"
},
{
"name": "atom-handlebars",
"version": "1.3.0"
},
{
"name": "atom-ide-debugger-node",
"version": "0.7.3"
},
{
"name": "atom-ide-debugger-python",
"version": "0.7.3"
},
{
"name": "atom-ide-ui",
"version": "0.13.0"
},
{
"name": "atom-light-syntax",
"version": "0.29.1",
"theme": "syntax"
},
{
"name": "atom-light-ui",
"version": "0.46.3",
"theme": "ui"
},
{
"name": "atom-material-syntax",
"version": "1.0.8",
"theme": "syntax"
},
{
"name": "atom-material-syntax-dark",
"version": "1.0.0",
"theme": "syntax"
},
{
"name": "atom-material-ui",
"version": "2.1.3",
"theme": "ui"
},
{
"name": "atom-typescript",
"version": "13.4.0"
},
{
"name": "autoclose-html",
"version": "0.23.0"
},
{
"name": "autocomplete-atom-api",
"version": "0.10.7"
},
{
"name": "autocomplete-css",
"version": "0.17.5"
},
{
"name": "autocomplete-html",
"version": "0.8.8"
},
{
"name": "autocomplete-plus",
"version": "2.42.3"
},
{
"name": "autocomplete-snippets",
"version": "1.12.1"
},
{
"name": "autoflow",
"version": "0.29.4"
},
{
"name": "autosave",
"version": "0.24.6"
},
{
"name": "background-tips",
"version": "0.28.0"
},
{
"name": "base16-tomorrow-dark-theme",
"version": "1.6.0",
"theme": "syntax"
},
{
"name": "base16-tomorrow-light-theme",
"version": "1.6.0",
"theme": "syntax"
},
{
"name": "bookmarks",
"version": "0.46.0"
},
{
"name": "bracket-matcher",
"version": "0.91.1"
},
{
"name": "busy-signal",
"version": "2.0.1"
},
{
"name": "command-palette",
"version": "0.43.5"
},
{
"name": "copy-filename",
"version": "1.2.0"
},
{
"name": "dalek",
"version": "0.2.2"
},
{
"name": "deprecation-cop",
"version": "0.56.9"
},
{
"name": "dev-live-reload",
"version": "0.48.1"
},
{
"name": "django-templates",
"version": "0.5.0"
},
{
"name": "ember-snippets",
"version": "3.0.2"
},
{
"name": "emmet-simplified",
"version": "2.6.0"
},
{
"name": "encoding-selector",
"version": "0.23.9"
},
{
"name": "exception-reporting",
"version": "0.43.1"
},
{
"name": "find-and-replace",
"version": "0.219.0"
},
{
"name": "fuzzy-finder",
"version": "1.14.0"
},
{
"name": "git-diff",
"version": "1.3.9"
},
{
"name": "git-plus",
"version": "8.7.1"
},
{
"name": "github",
"version": "0.30.1"
},
{
"name": "go-to-line",
"version": "0.33.0"
},
{
"name": "grammar-selector",
"version": "0.50.1"
},
{
"name": "ide-css",
"version": "0.3.3"
},
{
"name": "ide-ember",
"version": "0.5.0"
},
{
"name": "ide-json",
"version": "0.2.1"
},
{
"name": "ide-python",
"version": "1.5.0"
},
{
"name": "ide-typescript",
"version": "0.9.1"
},
{
"name": "ide-yaml",
"version": "0.6.0"
},
{
"name": "image-view",
"version": "0.64.0"
},
{
"name": "incompatible-packages",
"version": "0.27.3"
},
{
"name": "intentions",
"version": "1.1.5"
},
{
"name": "keybinding-resolver",
"version": "0.39.0"
},
{
"name": "language-babel",
"version": "2.85.0"
},
{
"name": "language-c",
"version": "0.60.18"
},
{
"name": "language-clojure",
"version": "0.22.8"
},
{
"name": "language-coffee-script",
"version": "0.50.0"
},
{
"name": "language-csharp",
"version": "1.1.0"
},
{
"name": "language-css",
"version": "0.44.0"
},
{
"name": "language-docker",
"version": "1.1.8"
},
{
"name": "language-ember",
"version": "4.0.2"
},
{
"name": "language-gfm",
"version": "0.90.6"
},
{
"name": "language-git",
"version": "0.19.1"
},
{
"name": "language-go",
"version": "0.47.1"
},
{
"name": "language-html",
"version": "0.52.3"
},
{
"name": "language-hyperlink",
"version": "0.17.1"
},
{
"name": "language-java",
"version": "0.31.3"
},
{
"name": "language-javascript",
"version": "0.132.0"
},
{
"name": "language-json",
"version": "1.0.4"
},
{
"name": "language-less",
"version": "0.34.3"
},
{
"name": "language-make",
"version": "0.23.0"
},
{
"name": "language-mustache",
"version": "0.14.5"
},
{
"name": "language-objective-c",
"version": "0.16.0"
},
{
"name": "language-perl",
"version": "0.38.1"
},
{
"name": "language-php",
"version": "0.44.2"
},
{
"name": "language-property-list",
"version": "0.9.1"
},
{
"name": "language-python",
"version": "0.53.3"
},
{
"name": "language-ruby",
"version": "0.72.20"
},
{
"name": "language-ruby-on-rails",
"version": "0.25.3"
},
{
"name": "language-rust-bundled",
"version": "0.1.0"
},
{
"name": "language-sass",
"version": "0.62.0"
},
{
"name": "language-shellscript",
"version": "0.28.0"
},
{
"name": "language-source",
"version": "0.9.0"
},
{
"name": "language-sql",
"version": "0.25.10"
},
{
"name": "language-text",
"version": "0.7.4"
},
{
"name": "language-todo",
"version": "0.29.4"
},
{
"name": "language-toml",
"version": "0.20.0"
},
{
"name": "language-typescript",
"version": "0.5.2"
},
{
"name": "language-xml",
"version": "0.35.3"
},
{
"name": "language-yaml",
"version": "0.32.0"
},
{
"name": "line-ending-selector",
"version": "0.7.7"
},
{
"name": "link",
"version": "0.31.6"
},
{
"name": "linter-eslint",
"version": "8.5.5"
},
{
"name": "linter-flake8",
"version": "2.4.0"
},
{
"name": "linter-js-yaml",
"version": "1.4.6"
},
{
"name": "linter-ui-default",
"version": "1.8.0"
},
{
"name": "markdown-preview",
"version": "0.160.2"
},
{
"name": "merge-conflicts",
"version": "1.4.5"
},
{
"name": "metrics",
"version": "1.8.1"
},
{
"name": "notifications",
"version": "0.71.0"
},
{
"name": "one-dark-syntax",
"version": "1.8.4",
"theme": "syntax"
},
{
"name": "one-dark-ui",
"version": "1.12.5",
"theme": "ui"
},
{
"name": "one-light-syntax",
"version": "1.8.4",
"theme": "syntax"
},
{
"name": "one-light-ui",
"version": "1.12.5",
"theme": "ui"
},
{
"name": "open-on-github",
"version": "1.3.1"
},
{
"name": "package-generator",
"version": "1.3.0"
},
{
"name": "react-snippets",
"version": "1.2.0"
},
{
"name": "seti-syntax",
"version": "1.2.0",
"theme": "syntax"
},
{
"name": "seti-ui",
"version": "1.11.0",
"theme": "ui"
},
{
"name": "settings-view",
"version": "0.261.3"
},
{
"name": "snippets",
"version": "1.5.0"
},
{
"name": "solarized-dark-syntax",
"version": "1.3.0",
"theme": "syntax"
},
{
"name": "solarized-light-syntax",
"version": "1.3.0",
"theme": "syntax"
},
{
"name": "spell-check",
"version": "0.75.0"
},
{
"name": "status-bar",
"version": "1.8.17"
},
{
"name": "styleguide",
"version": "0.49.12"
},
{
"name": "symbols-view",
"version": "0.118.2"
},
{
"name": "sync-settings",
"version": "0.8.6"
},
{
"name": "tabs",
"version": "0.110.0"
},
{
"name": "tabs-to-spaces",
"version": "1.0.5"
},
{
"name": "teletype",
"version": "0.13.4"
},
{
"name": "timecop",
"version": "0.36.2"
},
{
"name": "toggle-quotes",
"version": "1.1.4"
},
{
"name": "tree-view",
"version": "0.228.0"
},
{
"name": "update-package-dependencies",
"version": "0.13.1"
},
{
"name": "vim-mode-plus",
"version": "1.36.3"
},
{
"name": "vim-mode-plus-ex-mode",
"version": "0.11.0"
},
{
"name": "welcome",
"version": "0.36.9"
},
{
"name": "whitespace",
"version": "0.37.7"
},
{
"name": "wrap-guide",
"version": "0.41.0"
}
]
{
"atom-beautify": {
"general": {
"_analyticsUserId": "af00b918-1c7b-441d-9e5d-97d0548e5d68"
}
},
"atom-copy-on-select": {
"delay": 300
},
"atom-package-deps": {
"ignored": []
},
"atomatigit": {
"show_on_startup": true
},
"autoclose-html": {
"makeNeverCloseSelfClosing": false
},
"autocomplete-plus": {
"confirmCompletion": "enter",
"useCoreMovementCommands": false
},
"bracket-matcher": {
"highlightMatchingLineNumber": true
},
"core": {
"audioBeep": false,
"closeDeletedFileTabs": true,
"disabledPackages": [
"language-python",
"language-java"
],
"ignoredNames": [
".git",
".hg",
".svn",
".DS_Store",
"._*",
"Thumbs.db",
"*.beam"
],
"openEmptyEditorOnStart": false,
"packagesWithKeymapsDisabled": [
"emmet-simplified",
"toggle-quotes"
],
"projectHome": "/Users/noSlouch/src",
"telemetryConsent": "limited",
"themes": [
"atom-material-ui",
"atom-material-syntax-dark"
]
},
"editor": {
"backUpBeforeSaving": true,
"fontSize": 18,
"scrollPastEnd": true,
"showIndentGuide": true,
"showInvisibles": true,
"softWrap": true
},
"exception-reporting": {
"userId": "10491ef3-c2e5-64e9-47bc-568b45763483"
},
"find-and-replace": {
"closeFindPanelAfterSearch": true,
"projectSearchResultsPaneSplitDirection": "right"
},
"git-plus": {
"general": {
"_analyticsUserId": "9079f3ab-a946-4531-8884-48e0f2762e61"
}
},
"java-generator": {
"toggles": {
"generateMethodComments": false
}
},
"linter-elixirc": {
"forceElixirc": true
},
"linter-flake8": {
"ignoreErrorCodes": [
"E402"
],
"maxLineLength": 100
},
"linter-jshint": {
"disableWhenNoJshintrcFileInPath": true
},
"linter-ui-default": {
"panelHeight": 300,
"showPanel": true,
"tooltipFollows": "Keyboard"
},
"markdown-preview": {
"useGitHubStyle": true
},
"seti-syntax": {
"themeColor": "Steel"
},
"seti-ui": {
"compactView": true,
"themeColor": "Steel"
},
"sync-settings": {
"quietUpdateCheck": true
},
"terminal-plus": {
"style": {
"theme": "grass"
}
},
"termination": {
"style": {
"theme": "one-dark"
}
},
"tree-view": {
"hideVcsIgnoredFiles": true
},
"vim-mode": {
"useSmartcaseForSearch": true,
"wrapLeftRightMotion": true
},
"vim-mode-plus": {
"clearRangeMarkerOnResetNormalMode": true,
"flashOnUndoRedo": false,
"showHoverOnOperateIcon": "none",
"useSmartcaseForSearch": true,
"useSmartcaseForSearchCurrentWord": true,
"wrapLeftRightMotion": true
},
"vim-mode-plus-ex-mode": {
"notifiedUseExMode": true
},
"welcome": {
"showOnStartup": false
},
"": {
"js": {
"source": {
"toggle-quotes": {
"quoteCharacters": "\"'`"
}
}
}
},
"atom-ide-ui": {
"atom-ide-diagnostics-ui": {
"showDirectoryColumn": true
}
},
"django-templates": {
"defaultToDjangoTemplatesForFilePathsContaining": [
"templates"
]
},
"github": {
"automaticCommitMessageWrapping": false
}
}
# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
# tab.
#
# An example CoffeeScript snippet to expand log to console.log:
#
# '.source.coffee':
# 'Console log':
# 'prefix': 'log'
# 'body': 'console.log $1'
#
# Each scope (e.g. '.source.coffee' above) can only be declared once.
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# https://atom.io/docs/latest/using-atom-basic-customization#cson
# 'handlebars':
# 'extends': 'html'
# 'profile': 'handlebars'
# 'filters': 'html'
/*
* Your Stylesheet
*
* This stylesheet is loaded when Atom starts up and is reloaded automatically
* when it is changed and saved.
*
* Add your own CSS or Less to fully customize Atom.
* If you are unfamiliar with Less, you can read more about it here:
* http://lesscss.org
*/
/*
* Examples
* (To see them, uncomment and save)
*/
// style the background color of the tree view
.tree-view {
// background-color: whitesmoke;
}
// style the background and foreground colors on the atom-text-editor-element itself
atom-text-editor {
// color: white;
// background-color: hsl(180, 24%, 12%);
}
// To style other content in the text editor's shadow DOM, use the ::shadow expression
atom-text-editor::shadow .cursor {
// border-color: red;
}
atom-pane-container span {
// font-weight: 400;
}
atom-panel.modal.overlay.from-top atom-text-editor {
// font-weight: 400 !important;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment