Giter VIP home page Giter VIP logo

sublime-easymotion's Introduction

Sublime EasyMotion

EasyMotion is a Sublime Text 2 plugin that allows you to move the cursor to any character in your current view.

It's heavily inspired by Vim's EasyMotion, and Emacs' AceJump plugins.

After pressing the EasyMotion shortcut (default cmd-;/ctrl-;), you then press the character that you'd like to jump to. EasyMotion will then replace all currently visible instances of that character with one of a-zA-Z0-9. Press the key for the one you want and your cursor will be moved right to it.

Here I'm pressing cmd-; followed by f. EasyMotion highlights the 6 visible "f" characters with a-f. I then press d to jump to the beginning of the function.

Animated Gif

Installation

Install via PackageControl

If you have the PackageControl plugin installed, you can use that to install EasyMotion.

Just type cmd-shift-p (ctrl-shift-p on win/linux) to bring up the command pallate then type install and pick Package Control: Install Package from the dropdown.

Then type EasyMotion and choose the EasyMotion plugin from the dropdown. Hit enter and it will install.

Manual Installation

Manual installation should be as easy as cloning this git repository into your Sublime Packages directory. On OSX:

cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
git clone git://github.com/tednaleid/sublime-EasyMotion.git EasyMotion

(The directory name underneath packages must be EasyMotion and not sublime-EasyMotion for some preferences to get picked up)

If you're interested in trying the next release of the plugin, you can switch your branch to the development branch:

cd EasyMotion
git checkout development

This branch will have features that are marked as fixed in the issue, but haven't yet been merged to master.

Sublime Text 3 Experimental Support

This is not supported, and there are no plans for adding any further support in the future. For ST3, I'd suggest looking at the AceJump plugin.

There is experimental support for Sublime Text 3 on the st3 branch that requires manual installation and the use of the st3 branch.

cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages
git clone git://github.com/tednaleid/sublime-EasyMotion.git EasyMotion
cd EasyMotion
git checkout st3

Usage

Jump to any visible character

cmd-;   <character>   // OSX
ctrl-;  <character>   // Linux/Windows

it will label all instances of that character with a unique value in a-zA-Z0-9, type the label you want and it will jump you to it.

Example

The cursor is at the end of the file and we want to jump to the beginning of the realpart variable on line 3

EasyMotion Begin

Instead of hitting the up arrow twice and scrolling over to the r (or grabbing your mouse), you could press cmd-; followed by r. That will transform your file into this (notice that each instance of r has been turned into one of a-zA-Z0-9):

EasyMotion Middle

Press e and your cursor will jump right there:

EasyMotion Middle

If your target character occurs more than 62 times in the visible area, it will decorate them in batches.

So if we search this for the letter l using cmd-;+l

Many Matches Start

The first batch of 62 targets will look like this:

Many Matches First

Just hit enter and it will highlight the next group of matches.

Many Matches Second

Keep hitting enter and it will continue to cycle through them in groups of 62. You can also hit shift-enter to cycle backwards through the target groups. Hitting the spacebar will exit, and so will ctrl-c and escape (but for some reason there's currently a bug that makes you hit those twice to exit).

Select all text between cursor and any visible character

cmd-shift-;  <character>  // OSX
ctrl-shift-; <character>  // Linux/Windows

it will label all instances of that character with a unique value in a-zA-Z0-9, type it and it will select all text between your current cursor position and the chosen jump target.

Example

So in the same situation as above, if we had hit cmd-shift-; followed by r and picked the e target that occurs at the start of the imagpart variable on line 3, we would end up with this:

EasyMotion Select

User Modifiable Preferences

Remapping the Sublime EasyMotion keyboard shortcut

You can remap your keys to be something other than the defaults by entering an override value into your "User - KeyBindings" (under Sublime Text 2 -> Preferences -> Package Settings -> Easy Motion on OSX), just make sure to copy the existing key bindings exactly and change only the first item in the keys stanza, otherwise it won't work. So if you wanted the jump command to be ctrl-,, you'd use:

[
    { 
        "keys": ["ctrl+,", "<character>"], 
        "command": "easy_motion",
        "args": {"select_text": false} 
    },
    { 
        "keys": ["ctrl+shift+,", "<character>"], 
        "command": "easy_motion",
        "args": {"select_text": true} 
    }
]

Overriding the placeholder characters used for jumping

Add this to your "User Settings" file (found at "Sublime Text 2 -> Preferences -> Package Settings -> Easy Motion -> Settings - User" on OSX) and change the string to contain whatever characters you'd like to use:

// define the characters that we can jump to, in the order that they'll appear, they should be unique
"placeholder_chars" : "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

example using only QWERTY home-row replacements:

"placeholder_chars" : "jkl;asdfHGJKL:ASDFHG"

Override the highlight color for jump targets

If the highlight color used for jump targets isn't bold enough if your color scheme, you can override it by changing this "User Setting":

// defines syntax highlighting scope that will be used to highlight matched jump targets
// other examples include: keyword, string, number
"jump_target_scope" : "entity.name.class"

Versions

  • 0.8 - released 2/3/13 - updates location of preferences to EasyMotion specific file and includes plugin specific preferences file. You'll need to migrate preferences over into this file for them to stick.
  • 0.9 - released 2/14/13 - removes need for input panel and implements an easy_motion_mode to accept keystrokes, also lets shift-enter cycle backwards
  • 1.0 - released 2/1/14 - when in insert mode (not vim command mode) will put the cursor on the right of the chosen letter, not the left

sublime-easymotion's People

Contributors

djjcast avatar dylanbruzenak avatar evanlovely avatar laughedelic avatar tednaleid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sublime-easymotion's Issues

Escape appears to cancel but doesn't

If you press cmd+; then a letter then decide to abandon what you were doing by pressing escape, all of the highlighted letters disappear but pressing a key still behaves as if you hadn't cancelled. Hitting escape multiple times induces some sort of weird undo-ish behavior.

This is on the st3 branch for reference.

Auto marks expressions on shortcut

There is a plugin for Atom called Jumpy which works like EasyMotion but it marks automatically every expression that matches with the one on settings, so we have one step-less.

My proposal is to provide another shortcut which implements this.

don't highlight offscreen characters

When I disable wrap and have some long lines, lot of those 62 placeholders get wasted on characters on the right which I don't even see on the screen.

Jump target characters not being reset

When changing the match group by hitting enter more than once, some of the jump target characters are not being reset.

My system: Linux, Sublime Text 3, st3 branch

Can't jump anymore

I was using the package without any problem. But recently when i press Ctrl + ; and then select the char, they got highlighted but after I press the next char i get this error -
"File "./sublime_plugin.py", line 356, in run_
TypeError: run() got an unexpected keyword argument 'character'"

And even worse, even after i press ESC the scrip doesn't stop, so i can't use the file anymore and i have to reload it in order to continue my work!

Change match highlight color

Is there a way to easily change the highlight color for matches?

screen shot 2014-04-25 at 13 09 59

With the Solarized - Dark theme the standard style looks pretty bad.

How can one change it to make it look like a normal Sublime Text search match?

screen shot 2014-04-25 at 13 12 17

Change coloration to accentuate jump targets

The original AceJump and EasyMotion plugins dim the non-jump target text and turn jump targets a bright red.

We're currently putting a box around targets and decorating matching lines with a dot symbol in the gutter, but it might be nice to accentuate them even more by doing something similar.

Add Multi Cursor

Hey I love this package couldn't stop playing with it when I found this. Thanks.

"I now can jump anywhere on the screen".

Anyways I was thinking if you can add a multi cursor option where when the placeholder show up and I press ctrl+LETTER it adds a cursor to that point instead of defaulting to the keybinded command. Also that would eliminate the ctrl+c option to cancel and others but. I think users will enjoy that so all you'll have to do is notify them with the upgrade message.

Thank you so much

Mac: Overlay still appears after cancel out of EM trigger. 2nd trigger does character replace.

I'm spotting two issues. Steps to reproduce on Mac OSX Maverick, ST3 (build 3065), with Vintageous Plugin:

  1. cmd+; and 'a' to enter into EM mode
  2. ESC to cancel out of EM mode - ISSUE: can move around in ST, but EM overlay is still on the screen
  3. cmd+; and 'a' again to enter EM mode
  4. press the character key (say 'b') to go to the character - ISSUE: ST just did a character replace with. Replacing all occurrences of 'a' with 'b'

Input line hides last two text lines

I've found a (minor) issue.

After pressing the hotkey and the character that I want to find, the input box opens. Unfortunately, it will cover the last two visible lines of the current view, so I can't jump to any match, that occurs in these two line. Ofc it depends on current font size, how many lines "will be lost".

I guess this can't be resolved effectively until you've (hopefully) found a way to just press a key to go to any of the results instead of typing it into the input box and hitting return?

Apart from that: I really love it, it makes navigating in the current view 10x more comfortable :)

Jump to single match

If there is only one match on the screen, jump directly to it without prompting.

Make the initial batch be the one closest to cursor

I think it would be helpful if the initial batch that is shown/active was the batch closest to the cursor position.

Most of the time, the character I want to jump to is within a few lines of my current cursor position, but if I use e.g. Ctrl+; e the topmost batch on the screen is the first one that is active. So I often find myself having to hit Enter until the desired (closest) batch is active in this situation.

Respect folded regions

We should remove folded regions from what's considered visible so that we don't change characters the user can't actually see.

Error in console after invoking the hotkey(s)

Hey,

I've installed SublimeJump and started Sublime Text (v2.0.1 Build 2217) afterwards.
Modified my keymap file and copied the suggestions from your windows keymap file into it.

Used "ctrl+,", "j" for the first one. ";" isn't easily available on a german keyboard (you have to use shift + , to get it).

The only thing that happens after pressing the shortcuts (keymap file with the new shortcut has been saved before) is, that the console logs this error message:

Traceback (most recent call last):
  File ".\sublime_plugin.py", line 337, in run_
  File ".\sublime_jump.py", line 86, in run
TypeError: cannot concatenate 'str' and 'NoneType' objects

Sublime Text (portable)
Windows 7 Ultimate x64 SP1 German
Latest SublimeJump build.

Merge ST3 into master

Hi @tednaleid, thanks for making this wonderful plugin! You commented before that you won't merge the ST3 to master, but that was almost 3 years ago, and ST3 has become the defacto version for most users, and commits to these versions are becoming to drift apart (9 ahead / 6 behind).

Additionally, PackageControl has introduced dependencies, which make it easy to "require" а tool like "six" and refactor the python 2/3 specific code into a generic version.

Let me know if you would accept a PR for this.

De-emphasize non-highlighted text

In the vim EasyMotion plugin, the plugin highlights the matched text in red and colors the non-matched text in a dark grey, ex:

vim easymotion coloration

I've had a request from a user to emulate this in EasyMotion. I took a stab at doing it this way early in the project, but didn't have a lot of success. I was able to color the text areas, but after the end of each line the color didn't change, so it was ragged looking.

I think that there are also possible issues for those users with non-dark color schemes. Not sure if there's any way to detect this.

["ctrl+;", "enter"] jumps the caret to (?=.\n) rather than (?=\n)

I just installed the package, and noticed that the action set to this keybinding by default behaved unexpectedly:

{ 
    "keys": ["ctrl+;", "enter"], 
    "command": "easy_motion",
    "args": {"select_text": false, "character": "enter"}
}

(just to unambiguously refer to it; the keybinding itself isn't important)

The weird behavior is that it jumps the caret to the spot right before the character before a linebreak.

That is, it goes to (?-.\n) rather than (?=\n).

So when I'm looking at buffer with this text:

bluh

example line

bluh

Entering the key sequence <ctrl+;> <enter> <placeholder character that appears over the "t" at the end of "example line"> will put the caret right before the e, rather than after it, like:

example lin|e

rather than what I expected:

example line|

Is this a bug, or intended for some reason? Can I change it in the settings somehow?

Allow multiple letters for target selection

(This is not an issue but an enhancement idea. I could not find a way to mark it as such, sorry about that)

I think it would be useful to make it work more like the Vimium extension for Chrome works.

Vimum can mark targets with more than one letters, so instead of having only single letter targets, you get targets marked as AA, C0A etc. This has two benefits:

  • You avoid running out of targets like it happens with the current implementation
  • You can cover more targets with less characters, for example restricting the needed keys on the home row

A big disadvantage I see is in the case of targets that are too close to each other. Since the target markers are in the place of the actual text (instead of inside a pop over like in Vimium), the target markers can overlap. If for example you have two targets right next to each other and you must use two letters to address each, the first's targets mark will overlap with the second one. I'm not sure how this could be averted with the current implementation.

easySelect broken unless easyMove is executed beforehand

I've noticed this a couple of times when starting the editor... when i press me keyboard shortcut to select text up to a specific character, the character i punch in on the keyboard gets highlighted all right, but when i press a character to select which of the highlighted characters I would like to jump to, nothing happens (and the characters remain highlighted). I did get this error message though (from the console):

Traceback (most recent call last):
  File "./sublime_plugin.py", line 337, in run_
  File "./easy_motion.py", line 223, in run
  File "./easy_motion.py", line 238, in winning_selection_from
AttributeError: 'JumpTo' object has no attribute 'active_view'

If I use the regular easymotion move (easyMove) before easySelect, easySelect works just fine (and there is no error messages in the console either, in case you wondered).

This is my selected characters for "jumping" (bug exists for ascii characters as well):

"placeholder_chars" :     "abcdefghijklmnopqrstuvwxyzæøå01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ\"\\/'([{<>}]).,:;+-*=!#@%&?´`^_·–€£$  "

matches should radiate out from the cursor position instead of starting at the top

Instead of starting at the top of the visible area, the matches should radiate out from the current cursor position, with half above and half below by default.

We could also be smarter about which keys we order by (is this valuable), maybe with starting with the querty home row and going out from there rather than just a-z.

Allow jump to select text between current cursor position and chosen character

The IntelliJ AceJump plugin does this with case insensitive replacements, but if a user holds shift down when picking the jump target (so types a A instead of a), it selects the text between the current cursor position and the target.

This would reduce the set of jump characters we could use in half though.

Another alternative idea would be to use cmd-shift-; to let the user select text during the jump, then passing in an argument to the WindowCommand to tell it to select the text.

redo with easymotion

Using easymotion and cancelling the action will leave the substituited characters in the redo stack. Don't know if it's possible to make the cancel action undo the substitutions. A naive approach would be to watch for the esc key and undo but if the cancelling button is bound to another key that won't work, maybe it's watchable through callbacks? Not really a big issue, although if someone accidentaly does that, saves and closes the files it could be a real pain if the file isn't version controlled. BTW, great job, I was waiting for a plugin like this for ages! I though of creating a version myself but when I saw the API has no method of overlaying text (which would also really help for vim lines...) I gave up, nice hack!

Option to jump to after character instead of before

Now when you jump to a particular character, the cursor is placed before the character-- which totally makes sense in the vim mode (and if you're familiar with the vim world.)

However, I'm not a Vim ninja and I feel like every time I want to jump to a particular character, my brain always wired to think that I want the jump to the end of the character all the time.

Most of the time when I use easymotion, I ended up pressing right-arrow-key to move my cursor to the end of that character.

I believe that some other users will have similar problem.

Keep shortcuts between searches

If the buffer didn't change between searches, the last search like in ctrl+; -> k all substituted k letters should be replaced with the same as the previous ones. Maybe alphabetical order depending on the order in the buffer.

When you mistype the letter (rapid typing) it's better to know the letter to press before pressing the search.

Currently when you search multiple times the shortcuts change randomly.

shortcut to select word and popup autocomplete

The AceJump intellij plugin has a cool feature that when hitting alt combined with the jump target character will select the whole word and pop up the autocomplete box for it.

We could allow the cmd-alt-; keystroke to select the whole word (or remaining part of the word if it's not the first char in the word) as a start.

Could also look into popping up the autocomplete dialog as well, though this isn't quite as useful in ST2 as IntelliJ

Make the jump a vim motion

It would be awesome if you could do things like d<EasyMotion>,c<EasyMotion>, y<EasyMotion>, ys<EasyMotion> (with the Surround plugin) etc.

v<EasyMotion> is actually already possible (I use tab to trigger EasyMotion):

{ "keys": ["tab", "<character>"], "command": "easy_motion",
    "args": {"select_text": true}, "context":
    [
        { "key": "setting.command_mode"},
        { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
    ]
},

Can't jump to characters requiring the alt-key to be pressed

I can't jump to characters which requires the alt-key to be pressed when typeset, which unfortunately includes []{} on a danish keyboard :(

This is my placeholder chars:

abcdefghijklmnopqrstuvwxyzæøå01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ\"\\/'([{<>}]).,:;+-*=!#@%&?´`^_·–€£$     

Any suggestions for fixing this (settings, tricks)?

anim gif?

if you make a short video of easymotion in action i'll anim gif it in a beautiful way.

and we can add that sexyness to the readme.

i think it'd really make for a more compelling story. :)

Jump to after the character?

(Related to #27?)
Here's the current situation:

  • select jump:
    • backward: jump to before char
    • forward: jump to after char
  • normal jump:
    • backward: jump to before char
    • forward: jump to before char

I was wondering the rationale behind the last case. My brain refuses to learn that easymotion jumps to before the chosen character. Thanks!

cursor appearance not updated after jump (vintage mode)

if I cmd-; and jump to a new location, then the cursor appears to not have moved from it's original location. But if make a subsequent motion or action, then that occurs at the correct location and the cursor jumps to the right character.

allow user to move without hitting enter in popup box

Not sure if there's any way to do this, but it would be nice if we could move without having to hit enter in the popup box once the user has picked a target.

There is an on_change event that we could listen to and we can attach a callback to. But I'm not sure if we can remove the box as part of that.

Add ability to jump to BOL and EOL

It would be cool to be able to hit something like Cmd+;, then Enter to have it show beginning of line (after all the indenting) and end of line, or possibly just the one if it's just an empty line with indenting in front.

Use case:

class Foo
  def bar
     .
  end
end

Cmd+;, Enter would show BOL and EOLs, and just one jump point for where the . is so I could jump there.

Small tweak proposal to dramatically improve jumping

Example case: wwww

  • Cursor after the second w, jump to w gives cawb.
  • Cursor at the end, jump to w gives dcba.

For the first case, not sure how related this is to #43, but I think a better behavior would be to highlight the third w too, as to produce cabd. The current behavior is inconsistent since for preceding ws, it highlights all of them and for following ws, it skips the first.

For the second case, I propose the behavior to become geca, aka skipping letters as if there were more ws to come afterward. This will now render jumping predictable: jump a always go to the first previous occurrence, jump b always go to first next, jump c goes to second previous occurrence, etc.

This opens up possibilities for devs to visually remap their keyboard for jumping. For example, I can configure my setup such that f d s a jumps to 1 2 3 4 previous w respectively, and j k l ; jump to next.

Case insensitive jump targets

I suggest ignoring case (by default or as an option).
Example: Let's take the sentence "It could be possible". Right now, when I press ctrl+; and i, only the i in the word "possible" is highlighted as jump target. To get to the capital i in "It", I need to press ctrl+; and shift+i.
Instead, I suggest that the capital i is also highlighted as jump target in the first case.

Ability to place a new cursor instead of jump

One thing I've always desired in ST2 was the ability to place a new cursor (eg. cmd-click) arbitrarily with only the keyboard. Currently, the only way I can find is ctrl-shift-up/down, or cmd-d, but no way to do so arbitrarily. I run into situations where this would be handy often when I am trying to say, select a variable name that also occurs in, say, a string; but you don't want to select the string occurrence; cmd-d doesn't really offer any way to skip a selection.

Perhaps something like cmd-alt-;/ctrl-alt-; could be used to signify that instead of moving the cursor here, that a new cursor should be placed at that location, allowing you to place new cursors arbitrarily?

Set or Disable Time-Interval for Letter Keypresses

Currently there's a time interval after pressing super+;/ctrl+;, which will exit the motion navigation if you don't press a letter fast enough.

For me, that time is too short: I get nervous because I need to be quick enough … which leads to lost concentration.

I wish for an improved setting:

  • Set the timer to a chosen interval (0 means no interval)

Have you seen AceJump?

Just some feedback: Personally I think it takes too much concentration and it becomes a distraction away from work the fact that you have to press "Enter" to move on to the next batch of results. I use my monitor vertically and there is always a lot of code visible, if I choose to jump to letter "A" which is quite common, I might have to press Enter up to 3 times to get to it. This has made me stopped using EasyMotion as much as I would like too.

What I'd like to suggest is an approach similar to AceJump (which I am using with IntelliJ) where if there are more results than letters it switches into a mode where you can press 2 letters instead of one to jump further up. This way you could allow much higher coverage. If I were more proficient in Python I would add this myself but I am not.

I think this is worth considering and I would personally love this plugin if you would add this feature. I'm attaching an example of AceJump from IntelliJ below. It is uglier than EasyMotion but just to make a point.

Thanks!

screen shot 2014-09-17 at 11 31 16

broken in sublime 3 build 3061

reloading plugin EasyMotion.easy_motion
Traceback (most recent call last):
File "/opt/sublime_text_3/sublime_plugin.py", line 73, in reload_plugin
m = importlib.import_module(modulename)
File "./importlib/init.py", line 90, in import_module
File "", line 1584, in _gcd_import
File "", line 1565, in _find_and_load
File "", line 1532, in _find_and_load_unlocked
File "/opt/sublime_text_3/sublime_plugin.py", line 671, in load_module
exec(compile(source, source_path, 'exec'), mod.dict)
File "easy_motion in /home/demon/.config/sublime-text-3/Installed Packages/EasyMotion.sublime-package", line 4, in
ImportError: cannot import name izip_longest

Signaling the state of the plugin

I think it would be nice to be able to tell, when the editor waits for the character input or when it's just in the idle mode (i.e. you can just type).
Some overlay would be nice, although I don't know how hard it is to show something like this. Moreover, this could cover the part of the screen I might want to jump to.
But something simple, like a text message in the status bar, would already be great. I've noticed, that there is already such indicator, after you chose the character to jump. But there is nothing right after Ctrl+;.

Cycle to previous batch with Shift+Enter

Enter can currently be used to cycle forwards through the batches when there are multiple batches on screen. It would be helpful if Shift+Enter could be used to cycle backwards in the same manner.

Option to restrict jump characters to beginning of word instead of full text

Ace Jump mode in Emacs is set up by default to only allow jumping to words that BEGIN with the character you specify, instead of jumping anywhere inside of words.

Can we add an option to restrict jumps to the beginning of words?
e.g.
"""the alarmed catfish slurped the sea floor"""
Pressing 'Super+; a' with this in the editor, would only highlight Alarmed, instead of highlighting AlArmed, cAtfish, and seA.

On insert mode, the cursor will be before the character

I only use a subset of vim navigation functionality so I'm really often in "insert" mode.

Then when I want to easy motion to a character, the cursor will be just before the character I want to, and in my case, I almost always want to go after this character.

Any idea how I can do it ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.