aki77 / atom-emacs-plus Goto Github PK
View Code? Open in Web Editor NEWThis project forked from avendael/atomic-emacs
Emacs-like experience in the Atom.(Fork of atomic-emacs)
Home Page: https://atom.io/packages/emacs-plus
License: MIT License
This project forked from avendael/atomic-emacs
Emacs-like experience in the Atom.(Fork of atomic-emacs)
Home Page: https://atom.io/packages/emacs-plus
License: MIT License
Most of the keybindings I see here work well, but for some reason "M-w" doesn't copy for me, and instead it still closes tabs (so it seems to still be bound to core:close
).
I don't have anything at all in my keymap.cson
, so I don't know what could be wrong.
In case it is helpful, I flipped Cmd
and Alt
in OS X to make working with Emacs (outside of Atom) easier.
Installing “[email protected]” failed.Hide output…
npm ERR! not a package C:\Users\Administrator.atom.apm\underscore-plus\1.6.6\package.tgz
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Users\Administrator\AppData\Local\atom\app-1.4.1\resources\app\apm\bin\node.exe" "C:\Users\Administrator\AppData\Local\atom\app-1.4.1\resources\app\apm\node_modules\npm\bin\npm-cli.js" "--globalconfig" "C:\Users\Administrator.atom.apm.apmrc" "--userconfig" "C:\Users\Administrator.atom.apmrc" "install" "C:\Users\ADMINI1\AppData\Local\Temp\d-116029-5668-t1f2rd\package.tgz" "--target=0.34.5" "--arch=ia32"1\AppData\Local\Temp\apm-install-dir-116029-5668-1plklba\node_modules\emacs-plus\node_modules\underscore-plus\package.json
npm ERR! node v0.10.40
npm ERR! npm v2.13.3
npm ERR! path C:\Users\ADMINI
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! enoent ENOENT, open 'C:\Users\ADMINI~1\AppData\Local\Temp\apm-install-dir-116029-5668-1plklba\node_modules\emacs-plus\node_modules\underscore-plus\package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
I seem to need three C-k
's to kill a line... the first one doesn't do anything, though it seems to behave as if I had selected to the end of the line. e.g. typing C-a C-k
on a line that has foo
in it has nothing visible happen, but if I then hit a key, say, a
, the line is replaced with a
. If I do C-a C-k C-k
then the contents of the line are deleted, but the line itself remains (as if I had just typed one C-k in emacs). I need a third one to actually delete the line.
Hi! Thanks for maintaining the emacs-plus package!
In Atom v1.19, we will release a major change to Atom's core text buffer data structure. As part of this change, we have made TextBuffer.save
asynchronous; rather than blocking until the save is complete, it now immediately returns a Promise
that resolves when the save is complete. Because of this, a few other Atom APIs that use save
have similarly become async:
Pane.close
TextBuffer.save
TextEditor.save
Pane.saveItem
Pane.saveItemAs
Pane.saveActiveItem
Pane.saveActiveItemAs
Pane.saveItems
Workspace.saveActivePaneItem
Workspace.saveActivePaneItemAs
We think this package could be impacted by this upgrade because it calls the changed methods in the following places:
Pane.close
We found these calls using a regex search, so this list might be incomplete, and it might contain some false positives.
It should be pretty easy to adjust your package code and/or tests to work with the new async behavior, and to simultaneously keep it working with older versions of Atom. Here are some examples of pull requests we opened on our bundled packages to cope with the change:
Let me know if you have any questions. I'd be happy to help!
on mac, how can i use cmd instead of option for the meta?
thanks.
[Enter steps to reproduce below:]
Atom Version: 1.10.2
Electron Version: 0.37.8
System: Mac OS X 10.11.6
Thrown From: emacs-plus package, v0.11.1
Uncaught TypeError: Cannot read property 'getBuffer' of null
At /Users/jamiltron/.atom/packages/emacs-plus/lib/mark.coffee:24
TypeError: Cannot read property 'getBuffer' of null
at Mark.activate (/Users/jamiltron/.atom/packages/emacs-plus/lib/mark.coffee:24:39)
at Mark.activate (/Users/jamiltron/.atom/packages/emacs-plus/lib/mark.coffee:1:1)
at Emacs.module.exports.Emacs.setMark (/Users/jamiltron/.atom/packages/emacs-plus/lib/emacs.coffee:295:24)
at atom-text-editor.<anonymous> (/Users/jamiltron/.atom/packages/emacs-plus/lib/emacs.coffee:3:61)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:98:36)
at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)
-0:21.6.0 core:save (atom-text-editor.editor.emacs-plus.is-focused)
12x -0:18 core:backspace (atom-text-editor.editor.emacs-plus.is-focused)
-0:15.2.0 core:save (atom-text-editor.editor.emacs-plus.is-focused)
-0:14.1.0 markdown-writer:insert-new-line (atom-text-editor.editor.emacs-plus.is-focused)
-0:14.1.0 editor:newline (atom-text-editor.editor.emacs-plus.is-focused)
-0:11 core:backspace (atom-text-editor.editor.emacs-plus.is-focused.autocomplete-active)
-0:08.6.0 core:move-down (atom-text-editor.editor.emacs-plus.is-focused.autocomplete-active)
-0:08.4.0 autocomplete-plus:confirm (atom-text-editor.editor.emacs-plus.is-focused.autocomplete-active)
-0:07.6.0 core:move-left (atom-text-editor.editor.emacs-plus.is-focused)
-0:06.4.0 editor:move-to-end-of-screen-line (atom-text-editor.editor.emacs-plus.is-focused)
-0:05.8.0 editor:move-to-beginning-of-line (atom-text-editor.editor.emacs-plus.is-focused)
-0:05.6.0 emacs-plus:set-mark (atom-text-editor.editor.emacs-plus.is-focused)
-0:05.4.0 editor:move-to-end-of-screen-line (atom-text-editor.editor.emacs-plus.is-focused)
3x -0:00.8.0 blur (atom-text-editor.editor.emacs-plus.is-focused)
-0:00.2.0 editor:move-to-beginning-of-line (atom-text-editor.editor.emacs-plus.is-focused)
-0:00.0 emacs-plus:set-mark (atom-text-editor.editor.emacs-plus.is-focused)
{
"core": {
"disabledPackages": [
"linter-glsl",
"linter-lua-findglobals",
"linter-emscripten",
"love-ide",
"go-plus",
"autocomplete-go",
"builder-go",
"go-get",
"godoc",
"gofmt",
"gometalinter-linter",
"gorename",
"linter-cpplint"
],
"ignoredNames": [
".git",
".hg",
".svn",
".DS_Store",
"._*",
"Thumbs.db",
".o",
"*.o"
],
"projectHome": "/Users/jamiltron/Workspace",
"themes": [
"one-light-ui",
"solarized-light-syntax"
]
}
}
# User
advanced-open-file, v0.16.4 (inactive)
arduino-toolbelt, v0.1.1 (inactive)
arduino-upload, v1.0.0 (inactive)
atom-beautify, v0.29.13 (active)
atom-typescript, v10.1.7 (active)
atom-yeoman, v0.3.15 (active)
auto-detect-indentation, v1.2.0 (active)
autoclose-html, v0.23.0 (active)
autocomplete-clang, v0.10.0 (active)
autocomplete-glsl, v0.2.3 (active)
autocomplete-go, v1.2.0 (inactive)
autocomplete-haskell, v0.6.7 (inactive)
autocomplete-love, v0.3.0 (active)
build-cargo, v0.19.0 (active)
build-cmake, v0.6.4 (active)
build-tools, v4.5.3 (active)
build-tools-make, v0.2.1 (active)
builder-go, v1.0.1 (inactive)
cargo-test-runner, v0.1.0 (inactive)
clang-format, v1.25.0 (active)
comment-dwim-light, v0.9.6 (active)
cpp-generator, v0.1.0 (inactive)
elm-format, v2.1.0 (active)
emacs-plus, v0.11.1 (active)
file-icons, v1.7.20 (active)
gcc-make-run, v0.2.9 (active)
git-control, v0.8.2 (inactive)
git-projects, v1.17.0 (inactive)
go-config, v1.2.4 (active)
go-debug, v0.1.22 (active)
go-get, v2.1.1 (inactive)
go-plus, vundefined (inactive)
godoc, v1.1.0 (inactive)
gofmt, v1.2.0 (inactive)
gometalinter-linter, v1.2.2 (inactive)
gorename, v1.1.0 (inactive)
haskell-ghc-mod, v1.17.2 (inactive)
haskell-hoogle, v0.1.3 (inactive)
haskell-pointfree, v0.1.3 (active)
haskell-unicode-snippets, v0.1.1 (active)
haxe, v0.8.14 (active)
haxe-import, v1.2.1 (inactive)
highlight-selected, v0.11.2 (active)
hyperclick, v0.0.39 (active)
hyperclick-love, v0.4.0 (active)
ide-haskell, v1.8.1 (inactive)
ide-haskell-cabal, v1.6.4 (inactive)
ide-haskell-hasktags, v0.0.7 (inactive)
ide-haskell-repl, v0.1.10 (inactive)
json-schema, v0.1.15 (active)
language-arduino, v0.4.1 (active)
language-cpp14, v0.6.2 (active)
language-elm, v1.5.0 (active)
language-glsl, v2.0.1 (active)
language-haskell, v1.9.9 (active)
language-haxe, v0.5.3 (active)
language-lua, v0.9.11 (active)
language-moonscript, v1.7.1 (active)
language-ocaml, v1.1.2 (active)
language-racket, v0.4.0 (active)
language-rust, v0.4.7 (active)
language-scala, v1.1.6 (active)
language-sml, v0.6.0 (active)
language-valgrind, v0.1.0 (active)
linter, v1.11.18 (active)
linter-clang, v3.4.4 (active)
linter-cpplint, v1.0.1 (inactive)
linter-elm-make, v0.17.7 (active)
linter-emscripten, v0.1.1 (inactive)
linter-glsl, v2.0.5 (inactive)
linter-hlint, v0.5.0 (active)
linter-js-yaml, v1.2.5 (active)
linter-lua, v1.0.2 (active)
linter-luaparse, v0.2.0 (active)
linter-markdown, v3.0.2 (active)
linter-moonscript, v0.1.2 (active)
linter-rust, v0.6.0 (active)
love-ide, v0.14.0 (inactive)
markdown-writer, v2.6.1 (active)
merge-conflicts, v1.4.4 (active)
minimap, v4.25.0 (active)
minimap-cursorline, v0.2.0 (active)
minimap-find-and-replace, v4.5.1 (active)
minimap-highlight-selected, v4.4.0 (active)
minimap-pigments, v0.2.1 (active)
monokai-seti, v0.7.0 (inactive)
navigator-go, v1.1.3 (active)
nim, v0.3.6 (active)
omnisharp-atom, v0.30.7 (active)
open-recent, v5.0.0 (active)
pigments, v0.37.0 (active)
project-manager, v3.2.3 (active)
racer, v0.20.0 (active)
rust-api-docs-helper, v0.5.1 (active)
rustfmt, v0.1.3 (active)
script, v3.10.1 (inactive)
seti-ui, v1.3.2 (inactive)
solarized-seti-ui, v0.8.6 (inactive)
switch-header-source, v0.20.0 (inactive)
tester-go, v2.0.2 (active)
todo-show, v1.7.0 (inactive)
tool-bar, v1.0.1 (active)
tool-bar-almighty, v0.8.1 (active)
yaml-sortkey, v0.1.0 (inactive)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.5.0 (inactive)
one-light-ui, v1.5.0 (active)
one-dark-syntax, v1.3.0 (inactive)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (active)
about, v1.5.3 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.39.0 (active)
find-and-replace, v0.201.0 (active)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.2 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.65.0 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.242.2 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.100.2 (active)
timecop, v0.33.2 (active)
tree-view, v0.208.2 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)
# Dev
No dev packages
[Enter steps to reproduce below:]
Atom Version: 1.7.2
System: Mac OS X 10.11.4
Thrown From: emacs-plus package, v0.11.0
Uncaught TypeError: Cannot read property 'getBuffer' of null
At /Users/zhonghao/.atom/packages/emacs-plus/lib/mark.coffee:24
TypeError: Cannot read property 'getBuffer' of null
at Mark.activate (/Users/zhonghao/.atom/packages/emacs-plus/lib/mark.coffee:24:39)
at Mark.activate (/Users/zhonghao/.atom/packages/emacs-plus/lib/mark.coffee:1:1)
at Emacs.module.exports.Emacs.setMark (/Users/zhonghao/.atom/packages/emacs-plus/lib/emacs.coffee:161:11)
at atom-text-editor.<anonymous> (/Users/zhonghao/.atom/packages/emacs-plus/lib/emacs.coffee:1:1)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:98:36)
at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)
-2:37.2.0 core:move-down (atom-text-editor.editor.emacs-plus.is-focused)
-2:37 core:move-up (atom-text-editor.editor.emacs-plus.is-focused)
-0:03.7.0 core:move-down (atom-text-editor.editor.emacs-plus.is-focused)
-0:03.5.0 core:move-up (atom-text-editor.editor.emacs-plus.is-focused)
-0:02.2.0 editor:move-to-beginning-of-line (atom-text-editor.editor.emacs-plus.is-focused)
-0:01.3.0 emacs-plus:set-mark (atom-text-editor.editor.emacs-plus.is-focused)
{
"core": {
"themes": [
"one-light-ui",
"base16-tomorrow-light-theme"
]
}
}
# User
autocomplete-python, v1.7.2
emacs-plus, v0.11.0
merge-conflicts, v1.4.2
minimap, v4.22.1
python-tools, v0.6.7
symbols-tree-view, v0.12.0
terminal-plus, v0.14.5
# Dev
No dev packages
When I kill multiple lines in regular, old emacs (by hitting ctrl-k several times) and then yank (ctrl-y) my cursor is placed at the end of the yanked text. This lets me start typing immediately after the pasted text.
In emacs-plus, my cursor position seems like it is always after the first line of yanked text but before the second line -- basically kind of in the middle of the pasted text, which is unusual. I would prefer to have the cursor at the end of the pasted region.
(not that a screenshot is needed, but here ya go...)
(Thanks for working on this package, btw. I appreciate it)
I want the core:cancel
, but it triggers go-to-line:toggle
Windows 8.1, Atom 1.2.4, emacs plus 0.9.10
Hi aki77,
Would you like to enlighten me about reasons you've forked original repo?
Just installed this on atom 1.11.1 some keybindings work (such as ctrl-a) but others do not (such as ctrl-d and ctrl-e, and ctrl-k requires ctrl-k to be hit twice). Is there a trick to getting keybindings to work?
os: ubuntu 15.04
related plugins installed:
Ctrl-k doesn't simply kill from cursor to end of line. First press does nothing, second kills to end of line and the newline. Also, after killing a line and newline, the next key-press is ignored.
I noticed that the Shift key acts the same as Control-Space, creating a persistent mark until I press Escape, and if I type anything it deletes the marked region.
This seems like unexpected behavior, both because emacs doesn't have Shift do this and because marked regions don't behave this way by default (just verified on 24.4.1 with -q).
I am new for Atom.
I clean installed Atom, I did not installed other packages, then I Installed emacs plus package.
But Ctrl-p do not work for move above line, show fuzzy-finder. Should I do more setting?
Same problem happened after Atom restarted.
Windows 10, Atom 1.2.3, emacs plus 0.9.9
Hi! Thanks for maintaining the emacs-plus package!
In Atom v1.12, we are going to upgrade CoffeeScript to the latest version. This upgrade entails one potentially breaking change to the language:
Changed strategy for the generation of internal compiler variable names. Note that this means that @example function parameters are no longer available as naked example variables within the function body.
We think your package may be affected by this upgrade, in the following places:
editor
variable hereThese findings are based on linting packages with coffeescope
. We could be wrong about some of them. When we release v1.12 beta, please test your package against it to make sure that it works. Let me know if you have any further questions; I will be happy to help!
Because alt-/ is mapped to
'atom-text-editor.emacs-plus:not([mini])':
'alt-/': 'autocomplete-plus:activate'
it is not possible to type a backslash on a Mac keyboard (backslash is Option-Shift-7). A quick fix, losing the autocomplete-plus shortcut, is to override the above to value unset!
.
As the screencast you post in #7 , the kill-line
command executed immediately when ctrl-k
hit.
But in my atom(Windows 8.1, Atom 1.2.4, emacs plus 0.9.10), when I hit ctrl-k
I have to wait for about 2 seconds before the kill-line
command executed. I guess the reason is that there are many keybindings with the prefix ctrl-k
defined in Core
(ctrl-k ctrl-0
, ctrl-k ctrl-l
e.g.). Is there any solution?
I'm migrating from emacs to atom (Linux x64 version). I installed emacs-plus, restarted Atom, opened text file and tried a few emacs keybindings. Ctrl-a does 'select-all' instead of move-to-beginning-of-line.
I've seen the advice to install disable-keybindings package, but it's not clear how to disable only core keybindings that are conflicting with emacs-plus package. I can go to keymap.cson and try to write there something like:
'atom-workspace atom-text-editor':
'ctrl-a': 'editor:move-to-beginning-of-line'
But it's not clear what's the point of emacs-plus then, I can just remap all keys I need in that way. I'm a bit confused about how that package should be used. Whether the expected user's behaviour is to go to keymap.cson and to remap all core keybindings manually or is it to disable all 'Core' keybindings with disable-keybindings package? From my point of view the expected behaviour is "it should just work", but I'm curious now how it should be used.
It looks like set-mark
is triggered when I fold text with arrows in gutter.
The effect of this, is that almost any other action unfolds the text back.
To keep expected behaviour (not to trigger set-mark
) I have to fold using keybinding, or to press ESC
after folding from the gutter.
First off, THANK YOU! This is a great package that I've started using daily.
While I've found it great for simple editing tasks like markdown / blog writing. There are two things that I miss sorely for doing real programming (mostly C++, some Scala).
The ability to drop multiple book marks and navigate to them is a key feature I've come to depend on in emacs.
The ability to grab multiple "copy-cut-buffers" into "named registers" like the multiple book marks is another.
Do you have a notion of whether it would be possible to create this functionality in atom?
TIA for answering... - J
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.