leny / atom-easy-motion-redux Goto Github PK
View Code? Open in Web Editor NEWMovementSpeed++. Jump to any word in your current view super fast. (redux)
License: MIT License
MovementSpeed++. Jump to any word in your current view super fast. (redux)
License: MIT License
Hello, thanks for taking the time to create this. I don't know why I go into visual mode after the command.
After I enter the two letters it takes me to the location but it leaves me in visual mode. This is my keymap.cson file:
'atom-text-editor.vim-mode-plus.normal-mode':
's': 'easy-motion-redux:words-select'
Any plans of supporting these?
map s <Plug>(easymotion-prefix)
map sj <Plug>(easymotion-w)
map sk <Plug>(easymotion-b)
map ss <Plug>(easymotion-bd-w)
map sl <Plug>(easymotion-bd-wl)
There's a comparable IntelliJ IDEA plugin called AceJump that has a clever twist: when selecting the position via the letter, pressing simply the letter key would jump to the position, whereas pressing Shift + the letter key would select from the current position to the destination.
This feature would be rather nice :)
[Enter steps to reproduce below:]
cmd-;
)Atom Version: 1.3.3
System: Mac OS X 10.10.5
Thrown From: easy-motion-redux package, v1.0.0
Uncaught TypeError: Cannot read property '0' of undefined
At /Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:149
TypeError: Cannot read property '0' of undefined
at InputView.confirm (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:149:74)
at InputView.filterPositions (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:167:18)
at InputView.autosubmit (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:116:14)
-0:46.1.0 jumpy:toggle (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:43.8.0 jumpy:e (atom-text-editor.editor.vim-mode.insert-mode.is-focused.jumpy-jump-mode)
-0:43.8.0 jumpy:m (atom-text-editor.editor.vim-mode.insert-mode.is-focused.jumpy-jump-mode)
2x -0:41.9.0 pane:show-next-item (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
2x -0:33.7.0 core:backspace (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:32.9.0 atomic-emacs:previous-line (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
2x -0:32.2.0 core:backspace (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:31.5.0 core:save (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:30.5.0 pane:show-next-item (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:20.8.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:19.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)
-0:16.5.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
-0:09.4.0 editor:newline (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
2x -0:08.6.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
{
"core": {
"themes": [
"one-light-ui",
"one-light-syntax"
],
"projectHome": "/Users/tom/Documents/Projects",
"disabledPackages": [
"open-terminal-here",
"language-julia",
"language-jade"
],
"packagesWithKeymapsDisabled": [
"atomic-emacs",
"vim-mode",
"python-autopep8"
]
},
"easy-motion-redux": {
"replaceCharacters": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
}
}
# User
atomic-emacs, v0.7.4
autocomplete-paths, v1.0.2
build-tools, v4.3.1
custom-title, v1.0.1
easy-motion-redux, v1.0.0
jumpy, v2.0.10
language-latex, v0.6.1
language-r, v0.4.0
latex, v0.28.2
linter, v1.11.2
linter-pylint, v1.0.4
minimap, v4.16.1
minimap-autohide, v0.10.1
minimap-codeglance, v0.4.5
minimap-git-diff, v4.1.8
project-manager, v2.6.5
python-autopep8, v0.1.3
vim-mode, v0.63.0
wordcount, v2.4.1
# Dev
No dev packages
[Enter steps to reproduce below:]
Atom Version: 1.6.0
System: Mac OS X 10.11.3
Thrown From: easy-motion-redux package, v1.0.0
Uncaught SyntaxError: Invalid regular expression: /[/: Unterminated character class
At /Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:260
SyntaxError: Invalid regular expression: /[/: Unterminated character class
at new RegExp (native)
at InputView.loadPositions (/Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:260:35)
at InputView.autosubmit (/Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:111:18)
-2:04.0 tabs:keep-preview-tab (atom-text-editor.editor)
-1:07.5.0 nuclide-quick-open:find-anything-via-omni-search (atom-text-editor.editor.is-focused)
-1:06.4.0 core:backspace (atom-text-editor.editor.mini.is-focused)
-1:04.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)
-1:04.0 tabs:keep-preview-tab (atom-text-editor.editor)
-0:39.2.0 easy-motion-redux:letter (atom-text-editor.editor.is-focused)
2x -0:35.3.0 core:backspace (atom-text-editor.editor.mini.is-focused)
-0:28.7.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
-0:28.7.0 core:cancel (atom-text-editor.editor.mini.is-focused)
-0:09.9.0 spell-check:correct-misspelling (atom-text-editor.editor.is-focused)
-0:07.3.0 editor:consolidate-selections (atom-text-editor.editor.is-focused)
-0:07.3.0 core:cancel (atom-text-editor.editor.is-focused)
-0:06.4.0 easy-motion-redux:letter (atom-text-editor.editor.is-focused)
-0:02.0 core:backspace (atom-text-editor.editor.mini.is-focused)
-0:01.3.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
-0:01.3.0 core:cancel (atom-text-editor.editor.mini.is-focused)
{
"core": {
"customFileTypes": {
"source.ini": [
".buckconfig",
".flowconfig"
],
"source.json": [
".arcconfig"
],
"source.python": [
"BUCK"
]
},
"disabledPackages": [
"tree-view"
]
}
}
# User
Sublime-Style-Column-Selection, v1.5.1
atom-terminal-panel, v4.4.4
build, v0.57.0
build-grunt, v0.4.0
docblockr, v0.7.3
easy-motion-redux, v1.0.0
editorconfig, v1.2.4
environment, v1.2.0
file-icons, v1.6.19
js-hyperclick, v1.4.1
minimap, v4.21.0
nuclide, v0.126.0
project-plus, v0.8.0
# Dev
No dev packages
[Enter steps to reproduce:]
Atom: 1.18.0 ia32
Electron: 1.3.15
OS: Ubuntu 14.04.5
Thrown From: easy-motion-redux package 1.1.1
Failed to activate the easy-motion-redux package
At Arguments to CompositeDisposable.add must have a .dispose() method
TypeError: Arguments to CompositeDisposable.add must have a .dispose() method
at assertDisposable (/opt/atom/resources/app/node_modules/event-kit/lib/composite-disposable.js:74:19)
at CompositeDisposable.module.exports.CompositeDisposable.add (/opt/atom/resources/app/node_modules/event-kit/lib/composite-disposable.js:43:17)
at Package.module.exports.Package.activateKeymaps (/opt/atom/resources/app/src/package.js:374:38)
at Package.module.exports.Package.activateResources (/opt/atom/resources/app/src/package.js:341:20)
at /opt/atom/resources/app/src/package.js:221:29
at Package.module.exports.Package.measure (/opt/atom/resources/app/src/package.js:99:21)
at /opt/atom/resources/app/src/package.js:218:32
at Package.module.exports.Package.activate (/opt/atom/resources/app/src/package.js:215:40)
at PackageManager.module.exports.PackageManager.activatePackage (/opt/atom/resources/app/src/package-manager.js:645:40)
at /opt/atom/resources/app/src/package-manager.js:626:35
at Config.module.exports.Config.transactAsync (/opt/atom/resources/app/src/config.js:346:24)
at PackageManager.module.exports.PackageManager.activatePackages (/opt/atom/resources/app/src/package-manager.js:621:25)
at PackageManager.module.exports.PackageManager.activate (/opt/atom/resources/app/src/package-manager.js:603:52)
at /opt/atom/resources/app/src/atom-environment.js:846:34
atom-clang 1.0.14
atom-debugger 0.1.6
atom-keyboard-macros-vim 0.1.6
autocomplete-java 1.2.7
autocomplete-python 1.9.0
busy-signal 1.4.3
clip-history 0.4.0
clipboard-plus 0.5.1
cursor-history 0.11.1
easy-motion-redux 1.1.1
ex-mode 0.15.0
Hydrogen 1.18.0
intentions 1.1.2
java-importer 1.4.1
language-latex 1.0.0
latex 0.44.0
latex-autocomplete 1.0.0
latex-completions 0.3.2
latex-plus 0.9.1
linter 2.2.0
linter-gcc 0.7.1
linter-javac 1.9.4
linter-spell-latex 0.9.2
linter-ui-default 1.6.2
markdown-preview-plus 2.4.9
persistent-undo 1.2.0
python-indent 1.0.3
python-tools 0.6.9
undo-tree 0.2.0
vim-mode-clipboard-plus 0.2.0
vim-mode-plus 0.93.0
vim-mode-plus-keymaps-for-surround 0.2.1
A nice feature would be the two letter search as in the original Vim easy-motion: https://github.com/easymotion/vim-easymotion#2-character-search-motion
Lightening a the background of an already bright background does not make much sense, maybe colourisation options of the package would be appropriate.
This is now a view method. Call TextEditorElement::getScrollLeft instead.
TextEditor.getScrollLeft (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:3538:12)
InputView.getColumnRangeForRow (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:391:49)
<unknown> (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:366:31)
Array.map (native)
InputView.getRowRanges (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:365:45)
InputView.loadPositions (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:343:40)
Really sorry but I'm not really sure what I was doing when this happened, maybe this is helpful anyway. Feel free to close if not.
Atom: 1.14.4 x64
Electron: 1.3.13
OS: Mac OS X 10.12.1
Thrown From: easy-motion-redux package 1.1.1
Uncaught TypeError: Cannot read property '0' of undefined
At /Users/reem/.atom/packages/easy-motion-redux/lib/views/input.js:150
TypeError: Cannot read property '0' of undefined
at InputView.confirm (/packages/easy-motion-redux/lib/views/input.js:150:41)
at InputView.filterPositions (/packages/easy-motion-redux/lib/views/input.js:176:18)
at InputView.autosubmit (/packages/easy-motion-redux/lib/views/input.js:117:14)
-0:19.1.0 proton:chain (input.hidden-input)
-0:19.1.0 window:focus-pane-on-right (atom-pane.pane.active)
-0:18.6.0 proton:toggle (input.hidden-input)
-0:18.4.0 proton:chain (input.hidden-input)
-0:18.4.0 window:focus-pane-on-left (atom-pane.pane.active)
-0:17.8.0 proton:toggle (input.hidden-input)
-0:17.6.0 proton:chain (input.hidden-input)
-0:17.6.0 window:focus-pane-on-right (atom-pane.pane.active)
-0:17.1.0 proton:toggle (input.hidden-input)
-0:16.9.0 proton:chain (input.hidden-input)
-0:16.9.0 window:focus-pane-on-left (atom-pane.pane.active)
-0:16.7.0 vim-mode-plus:move-right (input.hidden-input)
-0:16.5.0 proton:toggle (input.hidden-input)
-0:16.4.0 proton:chain (input.hidden-input)
-0:16.4.0 window:focus-pane-on-right (atom-pane.pane.active)
-0:15.7.0 vim-mode-plus:move-down (input.hidden-input)
advanced-open-file 0.16.5
atom-beautify 0.29.17
atom-dark-fusion-syntax 2.0.3
atom-elixir 0.2.2
atom-material-syntax 1.0.2
atom-material-ui 1.3.9
atom-mdtoc 0.8.3
atom-ternjs 0.18.2
atomatigit 1.5.5
autocomplete-bibtex 0.7.0
autocomplete-modules 1.6.7
autocomplete-paths 1.0.5
autocomplete-python 1.8.60
autoupdate-packages 1.3.1
blame 0.10.2
build 0.67.0
build-cargo 2.0.0
busy 0.7.0
color-picker 2.2.5
docblockr 0.9.1
easy-motion-redux 1.1.1
environment 1.3.1
ex-mode 0.13.1
expand-region 0.2.6
expose 0.14.0
file-icons 2.0.17
fixmyjs 1.4.1
git-history 3.2.0
git-plus 7.3.3
golden-ratio 0.3.0
highlight-line 0.12.0
highlight-selected 0.12.0
iex 0.10.0
ink 0.6.4
javascript-snippets 1.2.1
julia-client 0.5.12
language-diff 0.7.0
language-elixir 0.17.0
language-julia 0.10.0
language-latex 1.0.0
language-rust 0.4.9
latex 0.42.3
latex-completions 0.3.2
latexer 0.3.0
lines 0.13.1
linter 1.11.23
linter-clojure 1.1.2
linter-elixirc 1.3.0
linter-eslint 8.1.3
linter-flake8 2.1.4
linter-jshint 3.0.3
linter-markdown 3.1.0
linter-rust 0.7.2
markdown-scroll-sync 2.1.2
markdown-writer 2.6.4
maximize-panes 0.2.0
merge-conflicts 1.4.4
minimap 4.26.8
move-panes 0.2.0
nucleus-dark-ui 0.11.0
Parinfer 1.17.0
pdf-view 0.55.0
platformio-ide-terminal 2.4.0
project-plus 0.9.0
proto-repl 1.4.16
proton-mode 0.14.1
python-isort 0.0.7
python-tools 0.6.9
python-yapf 0.13.0
racer 0.20.0
react 0.16.2
react-snippets 0.7.1
recent-files-fuzzy-finder 0.3.0
relative-numbers 0.7.1
release-notes 0.53.0
tab-switcher 1.5.4
theme-switch 0.4.0
vim-mode-plus 0.83.0
vim-mode-plus-ex-mode 0.9.0
zentabs 0.8.8
When you fold some functions it ignores everything after.
The issue is here:
atom-easy-motion-redux/lib/views/input.js
Lines 318 to 322 in fa93611
We should add visible lines until we get necessary amount of lines.
I can provide a PR once #30 is merged (because it contains some changes I need).
Is it possible to support non-ASCII characters?
It would be super feature for text editing in languages other than English.
It would be good to have CI.
I've add .travis.yml from https://github.com/atom/ci
@leny could you help me adding this repo to your travis-ci.org?
Thanks for rewriting this package due to the deprecation warnings in the original package.
It would be awesome if features in this package could reach parity with vim's implementation.
One feature that I like is jumping to a character instead of word.
It happens as soon as I open Atom
Atom Version: 1.8.0
System: Mac OS X 10.10.5
Thrown From: easy-motion-redux package, v1.1.1
Failed to load the easy-motion-redux package
At Cannot find module 'atom-space-pen-views'
Error: Cannot find module 'atom-space-pen-views'
at Module._resolveFilename (module.js:338:15)
at Function.Module._resolveFilename (/Applications/Atom.app/Contents/Resources/app.asar/src/module-cache.js:383:52)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
at Object.<anonymous> (/Users/pborges/.atom/packages/easy-motion-redux/lib/views/input.js:17:26)
at Module._compile (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:103:30)
at Object.defineProperty.value [as .js] (/Applications/Atom.app/Contents/Resources/app.asar/src/compile-cache.js:208:21)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
at Object.<anonymous> (/Users/pborges/.atom/packages/easy-motion-redux/lib/main.js:3:43)
at Module._compile (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:103:30)
at Object.defineProperty.value [as .js] (/Applications/Atom.app/Contents/Resources/app.asar/src/compile-cache.js:208:21)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
at Package.module.exports.Package.requireMainModule (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:715:27)
at /Applications/Atom.app/Contents/Resources/app.asar/src/package.js:117:28
at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:92:15)
at Package.module.exports.Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:106:12)
at PackageManager.module.exports.PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:457:14)
at /Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:402:19
at Config.module.exports.Config.transact (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:312:16)
at PackageManager.module.exports.PackageManager.loadPackages (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:397:19)
at /Applications/Atom.app/Contents/Resources/app.asar/src/atom-environment.js:743:28
{
"core": {
"disabledPackages": [
"relative-numbers"
],
"themes": [
"nucleus-dark-ui",
"atom-dark-fusion-syntax"
]
},
"easy-motion-redux": {
"replaceCharacters": "abcdefghijklmnopqrstuvwxyz"
}
}
# User
atom-dark-fusion-syntax, v1.1.0
atomatigit, v1.5.5
autocomplete-paths, v1.0.2
autocomplete-ruby, v0.1.0
autoupdate-packages, v1.3.1
easy-motion-redux, v1.1.1
environment, v1.2.0
file-icons, v1.7.13
highlight-line, v0.11.1
highlight-selected, v0.11.2
language-diff, v0.4.0
linter, v1.11.4
linter-rubocop, v0.4.7
linter-ruby, v1.2.2
merge-conflicts, v1.4.4
nucleus-dark-ui, v0.8.2
project-plus, v0.9.0
proton-mode, v0.10.1
recent-files-fuzzy-finder, v0.2.4
release-notes, v0.53.0
ruby-block, v0.3.5
ruby-block-converter, v3.5.0
vim-mode-plus, v0.44.0
zentabs, v0.8.7
# Dev
No dev packages
@leny hey, thank you for your work on this package. It's pretty good!
But now I see that you are not able (have no time I guess) to support this package. I believe that you need to find a new contributor because it's published and useful package.
You can randomly ask your colleagues (or other contributors), there is a chance that someone can do it.
What do you think about?
This is now a view method. Call TextEditorElement::onDidChangeScrollTop instead.
TextEditor.onDidChangeScrollTop (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:697:12)
InputView.handleEvents (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:120:56)
InputView.initialize (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:77:18)
InputView.constructor (/Users/phil/.atom/packages/easy-motion-redux/node_modules/space-pen/lib/space-pen.js:184:25)
new InputView (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:56:79)
_fStart (/Users/phil/.atom/packages/easy-motion-redux/lib/main.js:29:18)
Installed it on Atom 1.6 and doesn't seem to be working, ideas?
EDIT: I'm using the developer version though, closing since this is not the stable
Atom Version: 1.8.0
System: Microsoft Windows 7 Enterprise
Thrown From: easy-motion-redux package, v1.1.1
Uncaught TypeError: Cannot read property 'replace' of null
import Observer from './../helpers/observer.js'
export default class MainController extends Observer {
init() {
}
onFirstLoad() {
this.fire('update');
}
onItemClick(id) {
this.fire('item selected', id);
}
}
PS: works fine if you add some empty lines at the end of the file
I've used same plugin, which is worse, but it has an ability to select text with letter/word navigation. I hope it will be realised by this plugin too, as it's really cool! Thanks for it!
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.