Coder Social home page Coder Social logo

vim-mode's Introduction

Vim Mode package Build Status

Provides Vim modal control for Atom, blending the best of Vim and Atom.

Current Status - DEPRECATED in favor of vim-mode-plus

We're not maintaining this package anymore, because vim-mode-plus has more features and is very well maintained.

vim-mode's People

Contributors

abijr avatar anthonysandrin avatar as-cii avatar bronson avatar carlosdcastillo avatar chadkouse avatar ciarand avatar coolwanglu avatar danzimm avatar e-jigsaw avatar eddieantonio avatar ftwillms avatar hitsmaxft avatar iamjwc avatar isaachess avatar jacekkopecky avatar jcurtis avatar jlord avatar jspahrsummers avatar kevinsawicki avatar klorenz avatar maxbrunsfeld avatar mcolyer avatar mnquintana avatar roryokane avatar sknoslo avatar t9md avatar tony612 avatar ymendel avatar zenhob 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  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

vim-mode's Issues

Add vip

In VIM vip will select the current paragraph.

screen shot 2014-03-01 at 9 50 59 am

screen shot 2014-03-01 at 9 51 05 am

Modifier `j` and `k` off-by-one

In Vim, dj and dk deletes two lines, while yj and yk yanks two lines. d2j affects three lines, and so on.

In Atom Vim mode it appears j/k is implemented the same as h/l and affects one less line than in Vim mode.

Entering Command Mode should move cursor back one character.

When using Vim in a terminal when exiting Insert Mode using esc the cursor is moved left one character.
You can see that the cursor is between 8 and 9 and that Vim is in insert mode.
insertmode

But when ESC is pressed to go back to normal mode the cursor is shifted between 7 and 8.
normalmode

Vim users are going to be used to this shift so implementing this in vim-mode might make the transition more attractive.

Unnamed yank buffer not shared across tabs

Unlike named buffers in vim-mode, it appears that the unnamed buffer that is used when you press yw or Y (and deletes) is tab-specific. In order to yank+put text across tabs, you must use a named buffer.

Capturing deleted text

So vim has this concept of the unnamed register which automatically receives the contents of any delete operation. So if you delete a line with dd it should copy the deleted line into the " register.

Unfortunately when you call editor.delete() it doesn't return the deleted text. When I talked to @probablycorey about this he mentioned that you can use the changed event on TextBuffer and it will return the deleted text. Unfortunately this only works up to a point. You can capture the content fairly easily for a single dd but it's difficult with repeated commands such as 5dd as they decompose into 5 separate deletes on the editor.

@nathansobo would you be up for having the delete commands within atom return the values they've deleted?

Failure to activate vim-mode package

I'm getting an activation failure on one machine. I have successfully installed on another with no issues. Thought I'd post the error here.

Failed to activate package named 'vim-mode' TypeError: Cannot call method 'each' of undefined
  at VimState.module.exports.VimState.handleCommands (/Users/bjtitus/.atom/packages/vim-mode/lib/vim-state.coffee:121:7)
  at VimState.module.exports.VimState.setupCommandMode (/Users/bjtitus/.atom/packages/vim-mode/lib/vim-state.coffee:68:6)
  at new VimState (/Users/bjtitus/.atom/packages/vim-mode/lib/vim-state.coffee:24:6)
  at /Users/bjtitus/.atom/packages/vim-mode/lib/vim-mode.coffee:10:33
  at WorkspaceView.module.exports.WorkspaceView.eachEditorView (/Applications/Atom.app/Contents/Resources/app/src/workspace-view.js:455:9)
  at Object.module.exports.activate (/Users/bjtitus/.atom/packages/vim-mode/lib/vim-mode.coffee:6:24)
  at Package.module.exports.Package.activateNow (/Applications/Atom.app/Contents/Resources/app/src/package.js:161:27)
  at /Applications/Atom.app/Contents/Resources/app/src/package.js:147:28
  at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:95:15)
  at Package.module.exports.Package.activate (/Applications/Atom.app/Contents/Resources/app/src/package.js:141:14)
  at PackageManager.module.exports.PackageManager.activatePackage (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:101:21)
  at PackageManager.module.exports.PackageManager.activatePackages (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:90:14)
  at PackageManager.module.exports.PackageManager.activate (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:77:19)
  at Atom.module.exports.Atom.startEditorWindow (/Applications/Atom.app/Contents/Resources/app/src/atom.js:312:21)
  at Object.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-bootstrap.js:14:8)
  at Object.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-bootstrap.js:20:4)
  at Module._compile (module.js:455:26)
  at Object.Module._extensions..js (module.js:473:10)
  at Module.load (/Applications/Atom.app/Contents/Resources/app/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:311:12)
  at Module.require (module.js:363:17)
  at require (module.js:379:17)
  at window.onload (file:///Applications/Atom.app/Contents/Resources/app/static/index.html?load…C%22initialPath%22%3A%22%2FUsers%2Fbjtitus%2Ftest%22%7D:26:9)

I hope to look into this myself a little later today or tomorrow. If anyone else has time feel free to take a look.

Undo doesn't group multiple character input

When entering insert mode and then typing multiple characters 'u' will undo everything since entering insert mode.

atom currently will undo each character individually.

edit: Clarified first sentence.

Motion: f

I would really like to contribute to the f motion for vim-mode, since it is something I use often when coding. I'm not sure the best way to get started.

I see there is the concept of prefix to capture an argument for the number of times something should occur, but this motion will require information that is trailing the command to work

Any insights on how to approach this would be much appreciated.

Proposal: Poll

Can we have a survey/poll to order the implementation of new features?

  • Yes
  • No

What makes me suggest this is: I use the "r" command in vim all the time. I'd love to see that ported to vim-mode. BUT - if I'm the only person who uses it, I'd rather have resources go into more widely used features first.

Obviously this is open-source so we can hopefully have the best of both worlds. If someone has an itch, they can scratch it. If they want to help in general, grab a top item on the ordered list.

Just my thoughts.

Installing from Settings Pane failed

Installing '[email protected]' failed. Less…

npm http GET https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/underscore
npm ERR! Error: SELF_SIGNED_CERT_IN_CHAIN
npm ERR! at TLSSocket. (_tls_wrap.js:777:36)
npm ERR! at TLSSocket.EventEmitter.emit (events.js:98:17)
npm ERR! at TLSSocket._finishInit (_tls_wrap.js:337:8)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! http://github.com/isaacs/npm/issues

npm ERR! System Darwin 13.0.0
npm ERR! command "/Applications/Atom.app/Contents/Frameworks/Atom Helper.app/Contents/MacOS/Atom Helper" "/Applications/Atom.app/Contents/Resources/app/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--userconfig" "/Applications/Atom.app/Contents/Resources/app/node_modules/atom-package-manager/.apmrc" "install" "/Users/me/.atom/.node-gyp/.atom/.apm/vim-mode/0.7.1/package.tgz" "--target=0.11.10" "--arch=x64"
npm ERR! cwd /private/var/folders/ml/v3g3qb4s5xn4k_8n2gpk214w0000gn/T/apm-install-dir-114128-1809-1agfoj0
npm ERR! node -v v0.11.10
npm ERR! npm -v 1.3.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /private/var/folders/ml/v3g3qb4s5xn4k_8n2gpk214w0000gn/T/apm-install-dir-114128-1809-1agfoj0/npm-debug.log
npm ERR! not ok code 0

npm install giving Error: SELF_SIGNED_CERT_IN_CHAIN [CLOSED, DUPLICATE POST]

Maybe its just me? :(

npm http GET https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore-plus
npm ERR! Error: SELF_SIGNED_CERT_IN_CHAIN
npm ERR!     at SecurePair.<anonymous> (tls.js:1370:32)
npm ERR!     at SecurePair.EventEmitter.emit (events.js:92:17)
npm ERR!     at SecurePair.maybeInitFinished (tls.js:982:10)
npm ERR!     at CleartextStream.read [as _read] (tls.js:469:13)
npm ERR!     at CleartextStream.Readable.read (_stream_readable.js:320:10)
npm ERR!     at EncryptedStream.write [as _write] (tls.js:366:25)
npm ERR!     at doWrite (_stream_writable.js:223:10)
npm ERR!     at writeOrBuffer (_stream_writable.js:213:5)
npm ERR!     at EncryptedStream.Writable.write (_stream_writable.js:180:11)
npm ERR!     at write (_stream_readable.js:583:24)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/isaacs/npm/issues>

npm ERR! System Darwin 13.0.0
npm ERR! command "/usr/local/Cellar/node/0.10.25/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--userconfig" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc" "install" "/Users/bemathis/.atom/.node-gyp/.atom/.apm/vim-mode/0.7.1/package.tgz" "--target=0.11.10" "--arch=x64"
npm ERR! cwd /private/var/folders/6n/twwjg6xn08n7mhv0c9vt3hzr0000gp/T/apm-install-dir-114128-28251-7y5l5h
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/6n/twwjg6xn08n7mhv0c9vt3hzr0000gp/T/apm-install-dir-114128-28251-7y5l5h/npm-debug.log
npm ERR! not ok code 0

Split Windows

It seems like Atom already has support for splitting windows (cmd-k + arrow key) but it would be nice if it was mapped to vim-style shortcuts.

ctrl-w v for vertical split
ctrl-w s for horizontal split
ctrl-w (motion letter - hjkl) to move between splits

And I can't tell if resizing splits is possible, but that would be nice too.

EditorView APIs

I'm trying to wrap my mind around how all of this is working, and I'm having trouble tracking down some of the APIs that are being used. For example, EditorView::preempt and EditorView::command don't appear to be documented. Does this package use undocumented APIs, and if so how do I find out about them? Otherwise, where are they documented?

scrolling commands: zt zz zb z. z-

These commands scroll the current line to some position in the editor view without moving the cursor:

  • zt scrolls to the top
  • zz scrolls to the middle
  • zb scrolls to the bottom

There are corresponding commands z<enter> z. z- that move the cursor to the first non-blank in the line.

Fast way of toggle plugin for pairing situations

It would be cool to have a fast way to enable/disable the plugin for situations when you are pairing with a non vimmer - it would make it easier for them to use my machine and for them to have the plugin installed (and dormant) on their machine.

Ideally this would be paired with some subtle visual cue in the UI about whether it is enabled or not e.g. beside the release-notes squirrel on bottom right.

I believe the fastest way to do this at the moment is to leave the vim-mode settings open in a tab and click the enable/disable button. It would be nice to have a keyboard shortcut for it.

Thoughts? I am happy to have a go at implementing it if it is something that the core team would consider.

Not working

This package isn't doing anything for me. As far as I can tell, it is in none of command-mode, visual-mode, insert-mode on startup, which is probably an issue. I'm on vim-mode 0.6.0, atom 0.60.0.

Include gj and gk functionality

In my .vimrc, I have j and k remapped to gj and gk respectively. This makes it so that I can move up and down a display-line (that is, a line shown because the text is wrapping, it does not get its own line number). I'd love the ability to move up and down through my wrapped lines. Just including a call for these would allow me to map whatever keys I want to it.

Relative Line numbers.

I would appreciate if vim-mode could also support line numbers relative to the cursor when in normal mode; this avoids having to count lines when performing operations. Instead of 0 in normal mode, the cursor line number would show the true line number. Relative line numbers would also be an option in case some users don't want this enabled.

Normal mode:

    2 | 
    1 | function foo(bar) {
  256 |  console.log(bar); // current line in normal mode.
    1 | }
    2 |
    3 |

Insert mode:

   254 | 
   255 | function foo(bar) {
   256 |  console.log(bar); // current line in insert mode.
   257 | }
   258 |
   259 |

Thank you.

search word under cursor with *

In command mode, * over a word should jump to the next instance of that word in the buffer. I think this can piggyback on top of built-in search and replace without much trouble.

Failed to activate package

Happens when launching the editor and after Window: Reload.

Failed to activate package named 'vim-mode' TypeError: Cannot call method 'each' of undefined
  at VimState.module.exports.VimState.handleCommands (/Users/thoradam/.atom/packages/vim-mode/lib/vim-state.coffee:121:7)
  at VimState.module.exports.VimState.setupCommandMode (/Users/thoradam/.atom/packages/vim-mode/lib/vim-state.coffee:68:6)
  at new VimState (/Users/thoradam/.atom/packages/vim-mode/lib/vim-state.coffee:24:6)
  at /Users/thoradam/.atom/packages/vim-mode/lib/vim-mode.coffee:10:33
  at WorkspaceView.module.exports.WorkspaceView.eachEditorView (/Applications/Atom.app/Contents/Resources/app/src/workspace-view.js:455:9)
  at Object.module.exports.activate (/Users/thoradam/.atom/packages/vim-mode/lib/vim-mode.coffee:6:24)
  at Package.module.exports.Package.activateNow (/Applications/Atom.app/Contents/Resources/app/src/package.js:161:27)
  at /Applications/Atom.app/Contents/Resources/app/src/package.js:147:28
  at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:95:15)
  at Package.module.exports.Package.activate (/Applications/Atom.app/Contents/Resources/app/src/package.js:141:14)
  at PackageManager.module.exports.PackageManager.activatePackage (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:101:21)
  at PackageManager.module.exports.PackageManager.activatePackages (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:90:14)
  at PackageManager.module.exports.PackageManager.activate (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:77:19)
  at Atom.module.exports.Atom.startEditorWindow (/Applications/Atom.app/Contents/Resources/app/src/atom.js:312:21)
  at Object.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-bootstrap.js:14:8)
  at Object.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-bootstrap.js:20:4)
  at Module._compile (module.js:455:26)
  at Object.Module._extensions..js (module.js:473:10)
  at Module.load (/Applications/Atom.app/Contents/Resources/app/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:311:12)
  at Module.require (module.js:363:17)
  at require (module.js:379:17)
  at window.onload (file:///Applications/Atom.app/Contents/Resources/app/static/index.html?load…m%2Fdev%2Fweb%2Fsideline%2Fxpsweb%2Fapp%2Fscripts%2Fcontrollers%22%7D:26:9)

How do we implement 'r'?

r, or replace a single character, is a tricky one. It does not put you in input mode for a single character--you can easily do '5rx' to make the next 5 characters to the right into 'x'. But it takes whatever you press after it, and, if it's visible, replaces the character beneath it. Non-visible characters (such as the arrow keys or cmd-anything) end the mode and work correctly.

How do we implement the weird new input mode? Our hotkeys in vim mode will eat up any keypress after the 'r'. I'm happy to implement it if there's an approach that's okay.

Add ex commands, including save

Many of the ex commands are critical to true vi heritage, including :w. From wikipedia's article on ex:

ex was eventually given a screen oriented visual interface (adding to its command line oriented operation), thereby becoming the vi text editor.

We've got a lot of our movement commands, but it would be great to have our :w, :%s, :g.

Most of the movement commands are there, so I'm generally having a good time. Thanks for this package!

Commands for changing case: ~, vu, vU, gu, gU, guu, gUU, etc

Most of these commands involve selecting a visual block where you can change the case of everything selected. More examples of commands from the vim wiki on switching case:

~
Toggle case of the character under the cursor, or all visually-selected characters.

3~
Toggle case of the next three characters.

g~3w
Toggle case of the next three words.

g~iw
Toggle case of the current word (inner word – cursor anywhere in word).

g~$
Toggle case of all characters to end of line.

g~~
Toggle case of the current line (same as V~).
The above uses ~ to toggle case. In each example, you can replace ~ with u to convert to lowercase, or with U to convert to uppercase. For example:

U
Uppercase the visually-selected text.
First press v or V then move to select text.
If you don't select text, pressing U will undo all changes to the current line.

gUU
Change the current line to uppercase (same as VU).

gUiw
Change current word to uppercase.

u
Lowercase the visually-selected text.
If you don't select text, pressing u will undo the last change.

guu
Change the current line to lowercase (same as Vu).

Can't publish to registry

So I must be doing something wrong here. When I run apm publish I get:

npm http PUT https://atom.iriscouch.com/registry/_design/app/_rewrite/vim-mode
npm http 500 https://atom.iriscouch.com/registry/_design/app/_rewrite/vim-mode
npm ERR! registry error parsing json

@kevinsawicki any ideas what could be going on?

Visual line select mode doesn't select the current line when moving upward.

Thanks for working so hard on this! I love that there have been two updates between yesterday and today with usability fixes.

Steps to reproduce issue:

  • Place cursor on a non-first line in a document.
  • Hit shift-v for line select mode. The line is selected as expected.
  • Hit k a number of times. Only the lines above the initially selected lines are now selected.

Implement operator-pending mode

Currently change, delete and yank in tag doesn't work. The "i" is interpreted as a normal insert command.

Great work with this btw!

Program is not responding after opening the settings window

When i open settings window, i got some tips at center of the window and cannot doing anything in the window (click buutons,switch tabs,command+w,etc),but menu items is ok.Then I can only use command+Q to quit application.
2014-03-04 1 12 30

and error message in console

TypeError: Cannot call method 'each' of undefined
  at VimState.module.exports.VimState.handleCommands (/Users/axb-mac/.atom/packages/vim-mode/lib/vim-state.coffee:121:7)
  at VimState.module.exports.VimState.setupCommandMode (/Users/axb-mac/.atom/packages/vim-mode/lib/vim-state.coffee:68:6)
  at new VimState (/Users/axb-mac/.atom/packages/vim-mode/lib/vim-state.coffee:24:6)
  at /Users/axb-mac/.atom/packages/vim-mode/lib/vim-mode.coffee:10:33
  at HTMLDivElement.attachedCallback (/Applications/Atom.app/Contents/Resources/app/src/workspace-view.js:458:16)
  at HTMLDivElement.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4676:9)
  at HTMLDivElement.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4360:28)
  at Object.jQuery.event.trigger (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4594:12)
  at HTMLDivElement. (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:5119:17)
  at Function.jQuery.extend.each (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:590:23)
  at EditorView.jQuery.fn.jQuery.each (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:237:17)
  at EditorView.jQuery.fn.extend.trigger (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:5118:15)
  at EditorView.module.exports.EditorView.afterAttach (/Applications/Atom.app/Contents/Resources/app/src/editor-view.js:1063:19)
  at callAttachHook (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:323:107)
  at [object Object].jQuery.fn.(anonymous function) [as append] (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:339:9)
  at PaneView.module.exports.PaneView.onActiveItemChanged (/Applications/Atom.app/Contents/Resources/app/src/pane-view.js:284:24)
  at /Applications/Atom.app/Contents/Resources/app/src/pane-view.js:3:61
  at /Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/emitter.js:134:30
  at Array.forEach (native)
  at Behavior.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/emitter.js:133:47)
  at Behavior.module.exports.Behavior.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/behavior.js:44:38)
  at Behavior.module.exports.Signal.emitValue (/Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/signal.js:82:19)
  at Pane.module.exports.Model.set (/Applications/Atom.app/Contents/Resources/app/node_modules/theorist/lib/model.js:166:21)
  at Pane.accessor.set (/Applications/Atom.app/Contents/Resources/app/node_modules/theorist/lib/model.js:57:23)
  at Pane.module.exports.Pane.addItem (/Applications/Atom.app/Contents/Resources/app/src/pane.js:191:25)
  at Pane.module.exports.Pane.activateItem (/Applications/Atom.app/Contents/Resources/app/src/pane.js:176:14)
  at /Applications/Atom.app/Contents/Resources/app/src/workspace.js:187:16
  at _fulfilled (/Applications/Atom.app/Contents/Resources/app/node_modules/q/q.js:797:54)
  at self.promiseDispatch.done (/Applications/Atom.app/Contents/Resources/app/node_modules/q/q.js:826:30)
  at Promise.promise.promiseDispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/q/q.js:759:13)
  at /Applications/Atom.app/Contents/Resources/app/node_modules/q/q.js:573:44
  at flush (/Applications/Atom.app/Contents/Resources/app/node_modules/q/q.js:108:17)
  at process._tickCallback (node.js:605:11)
 /Applications/Atom.app/Contents/Resources/app/src/workspace.js:196

Word motion failing specs

So there are two unimplemented specs currently:

The issue is that the specs fail as currently written because the behavior of the atom is different than vim. I'm unsure if I should attempt to make the word movement methods within atom more flexible or whether I should reimplement them within the package.

My gut says that the word methods should be more flexible in the editor but I wanted to get your thoughts about it @probablycorey @nathansobo @kevinsawicki

text object selection (ie `ciw` to change inner word) not implemented

I am by no stretch of the imagination a vim expert. I only know and use maybe 10 or 20 different commands. But one of the ones I use most is ciw which to my limited knowledge stands for change inner word. Basically it lets me have my cursor anywhere inside a word, and change that entire word.

As far as I can tell, when you hit the i in ciw, it jumps straight to insert mode. So it might be implemented, but just with a bug. I would love to try and implement it myself, but I couldn't figure out exactly what to do.

Any one have any thoughts on how to implement this? If someone could point me in the right direction, I don't have any aversion to doing it myself.

Implement select using "gg" and "G"

Currently you can jump to the top or bottom of the current document by typing either "gg" or "G", but you can't do this in conjunction with "v" to select from the current cursor position to the top or bottom.

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.