Giter VIP home page Giter VIP logo

ex-mode's People

Contributors

asaayers avatar bakert avatar bibodha avatar bl avatar brebory avatar dragonxlwang avatar fijter avatar hultberg avatar jacwah avatar jazzpi avatar jmarianer avatar lloeki avatar longlivechief avatar mcnicholls avatar mkiken avatar mwleeds avatar nzyuzin avatar po1o avatar posgarou avatar robertpaul01 avatar sarangjo avatar shamrin avatar stuartquin 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

ex-mode's Issues

Uncaught TypeError: Cannot read property 'getScreenPosition' of undefined

  1. Closed a buffer which had been open for a while with :q
    There were multiple panes open at the time and this pane had two tabs open.

Atom Version: 1.0.2
System: Ubuntu 14.04.2
Thrown From: ex-mode package, v0.5.1

Stack Trace

Uncaught TypeError: Cannot read property 'getScreenPosition' of undefined

At /home/tgrosinger/.atom/packages/ex-mode/lib/ex-state.coffee:56

TypeError: Cannot read property 'getScreenPosition' of undefined
  at TextEditor.module.exports.TextEditor.getCursorScreenPosition (/usr/share/atom/resources/app.asar/src/text-editor.js:1354:34)
  at TextEditor.module.exports.TextEditor.isFoldedAtCursorRow (/usr/share/atom/resources/app.asar/src/text-editor.js:2496:44)
  at BracketMatcherView.module.exports.BracketMatcherView.updateMatch (/usr/share/atom/resources/app.asar/node_modules/bracket-matcher/lib/bracket-matcher-view.js:111:23)
  at /usr/share/atom/resources/app.asar/node_modules/bracket-matcher/lib/bracket-matcher-view.js:94:26
  at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at /usr/share/atom/resources/app.asar/src/cursor.js:66:25
  at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at Marker.module.exports.Marker.destroyed (/usr/share/atom/resources/app.asar/src/marker.js:232:20)
  at /usr/share/atom/resources/app.asar/src/marker.js:37:24
  at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at Marker.module.exports.Marker.destroy (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/marker.js:256:20)
  at Marker.module.exports.Marker.destroy (/usr/share/atom/resources/app.asar/src/marker.js:43:25)
  at Selection.module.exports.Selection.destroy (/usr/share/atom/resources/app.asar/src/selection.js:62:26)
  at TextEditor.module.exports.TextEditor.destroyed (/usr/share/atom/resources/app.asar/src/text-editor.js:267:19)
  at TextEditor.module.exports.Model.destroy (/usr/share/atom/resources/app.asar/src/model.js:45:58)
  at Pane.module.exports.Pane.destroyItem (/usr/share/atom/resources/app.asar/src/pane.js:456:18)
  at Pane.module.exports.Pane.destroyActiveItem (/usr/share/atom/resources/app.asar/src/pane.js:431:12)
  at Ex.quit (/home/tgrosinger/.atom/packages/ex-mode/lib/ex.coffee:62:36)
  at Ex.q (/home/tgrosinger/.atom/packages/ex-mode/lib/ex.coffee:64:10)
  at /home/tgrosinger/.atom/packages/ex-mode/lib/ex.coffee:1:1
  at Command.execute (/home/tgrosinger/.atom/packages/ex-mode/lib/command.coffee:153:7)
  at ExState.processOpStack (/home/tgrosinger/.atom/packages/ex-mode/lib/ex-state.coffee:50:17)
  at ExState.pushOperations (/home/tgrosinger/.atom/packages/ex-mode/lib/ex-state.coffee:40:6)
  at ExViewModel.ViewModel.confirm (/home/tgrosinger/.atom/packages/ex-mode/lib/view-model.coffee:13:14)
  at ExViewModel.module.exports.ExViewModel.confirm (/home/tgrosinger/.atom/packages/ex-mode/lib/ex-view-model.coffee:35:5)
  at ExViewModel.confirm (/home/tgrosinger/.atom/packages/ex-mode/lib/ex-view-model.coffee:1:1)
  at ex-command-mode-input.ExCommandModeInputElement.confirm (/home/tgrosinger/.atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee:46:16)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:241:29)
  at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/usr/share/atom/resources/app.asar/src/window-event-handler.js:177:20)

Commands

  3x -0:22.6.0 vim-mode:repeat-prefix (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:21.9.0 vim-mode:move-to-line (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:21.5.0 vim-mode:activate-linewise-visual-mode (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
  3x -0:21.3.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.is-focused.visual-mode)
     -0:20.7.0 vim-mode:delete (atom-text-editor.editor.vim-mode.is-focused.visual-mode)
 71x -0:19.9.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:12.2.0 vim-mode:move-to-start-of-file (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:07.8.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:07.8.0 blur (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:07.4.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:07.3.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:04.9.0 pane:show-next-item (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:04.8.0 blur (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:01.8.0 ex-mode:open (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:01.7.0 blur (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:00.9.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {}
}

Installed Packages

# User
ex-mode, v0.5.1
file-icons, v1.5.8
go-plus, v3.4.3
go-rename, v0.3.0
last-cursor-position, v0.9.0
vim-mode, v0.57.0
vim-surround, v0.7.2

# Dev
No dev packages

Uncaught TypeError: Arguments to path.join must be strings

unamed file

using vim-mode, type:

i (insert)
one
two
<esc>
:w 

Atom Version: 0.199.0
System: Mac OS X 10.10.3
Thrown From: ex-mode package, v0.4.1

Stack Trace

Uncaught TypeError: Arguments to path.join must be strings

At /Users/victorkane/.atom/packages/ex-mode/lib/ex-state.coffee:56

TypeError: Arguments to path.join must be strings
  at Object.posix.join (path.js:449:13)
  at getFullPath (/Users/victorkane/.atom/packages/ex-mode/lib/ex.coffee:35:15)
  at Ex.write (/Users/victorkane/.atom/packages/ex-mode/lib/ex.coffee:131:20)
  at Ex.w (/Users/victorkane/.atom/packages/ex-mode/lib/ex.coffee:143:5)
  at /Users/victorkane/.atom/packages/ex-mode/lib/ex.coffee:1:1
  at Command.execute (/Users/victorkane/.atom/packages/ex-mode/lib/command.coffee:148:7)
  at ExState.processOpStack (/Users/victorkane/.atom/packages/ex-mode/lib/ex-state.coffee:49:17)
  at ExState.pushOperations (/Users/victorkane/.atom/packages/ex-mode/lib/ex-state.coffee:40:6)
  at ExViewModel.ViewModel.confirm (/Users/victorkane/.atom/packages/ex-mode/lib/view-model.coffee:12:14)
  at ExViewModel.module.exports.ExViewModel.confirm (/Users/victorkane/.atom/packages/ex-mode/lib/ex-view-model.coffee:35:5)
  at ExViewModel.confirm (/Users/victorkane/.atom/packages/ex-mode/lib/ex-view-model.coffee:1:1)
  at ExCommandModeInputView.module.exports.ExCommandModeInputView.confirm (/Users/victorkane/.atom/packages/ex-mode/lib/ex-command-mode-input-view.coffee:46:16)
  at atom-text-editor.<anonymous> (/Users/victorkane/.atom/packages/ex-mode/lib/ex-command-mode-input-view.coffee:1:1)
  at atom-text-editor.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4435:9)
  at atom-text-editor.elemData.handle (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4121:28)
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:519:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:354:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:178:20)

Commands

     -5:31.5.0 settings-view:open (atom-text-editor.editor.is-focused)
     -3:46 core:confirm (atom-text-editor.editor.mini.is-focused)
  8x -2:03.8.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -1:31 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:14 vim-mode:activate-insert-mode (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:10.7.0 editor:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:08.9.0 vim-mode:activate-command-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:07.7.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.command-mode)
     -0:02.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {}
}

Installed Packages

# User
atom-html-preview, v0.1.6
autocomplete-haskell, v0.2.1
color-picker, v1.7.0
ex-mode, v0.4.1
vim-mode, v0.46.0

# Dev
No dev packages

ex-mode future

Hello,

I was wondering about the future of this package.
I am looking for something that would be more like vim's command bar, wich can be used as both input and output.
What are your plans about this?

Vim like tab completion

It would be super helpful to add tab completion support for ex-mode, like in real vim.
It probably can be implemented as separate package, however ex-mode should provide more unified way to register and list all registered commands.

What do you guys think?

Uncaught TypeError: Cannot read property 'end' of undefined

[Enter steps to reproduce below:]

  1. block of java code
  2. go to opening brace of method, ma
  3. %
  4. :'a,.d

Atom Version: 1.0.2
System: Microsoft Windows 7 Ultimate
Thrown From: ex-mode package, v0.5.1

Stack Trace

Uncaught TypeError: Cannot read property 'end' of undefined

At C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-state.coffee:56

TypeError: Cannot read property 'end' of undefined
  at Command.parseAddr (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\command.coffee:26:37)
  at Command.execute (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\command.coffee:101:21)
  at ExState.processOpStack (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-state.coffee:50:17)
  at ExState.pushOperations (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-state.coffee:40:6)
  at ExViewModel.ViewModel.confirm (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\view-model.coffee:13:14)
  at ExViewModel.module.exports.ExViewModel.confirm (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-view-model.coffee:35:5)
  at ExViewModel.confirm (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-view-model.coffee:1:1)
  at ex-command-mode-input.ExCommandModeInputElement.confirm (C:\Users\pfnguyen\.atom\packages\ex-mode\lib\ex-command-mode-input-element.coffee:46:16)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (C:\Users\pfnguyen\AppData\Local\atom\app-1.0.2\resources\app.asar\src\command-registry.js:241:29)
  at C:\Users\pfnguyen\AppData\Local\atom\app-1.0.2\resources\app.asar\src\command-registry.js:3:61

Commands

     -0:52.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  7x -0:52.8.0 blur (atom-text-editor.editor.mini.is-focused)
 24x -0:18.7.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:17.5.0 vim-mode:search (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:17.5.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:16.5.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:16.5.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:14 vim-mode:move-to-last-character-of-line (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:13.8.0 vim-mode:bracket-matching-motion (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:12.1.0 vim-mode:mark (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  3x -0:12.1.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:11.8.0 vim-mode:bracket-matching-motion (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:11.4.0 ex-mode:open (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:11.4.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:10.7.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:04.3.0 blur (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {}
}

Installed Packages

# User
ex-mode, v0.5.1
language-scala, v1.1.3
vim-mode, v0.55.0

# Dev
No dev packages

error when i save

when i saved files by ":w", the error [Uncaught TypeError: Cannot read property 'hiddenInputComponent' of null] was thrown.

Ex-mode not working in non-code buffers

This is a minor issue, but I figured I'd report it: in buffers that are not files (such as the Settings buffer), ex-mode does not work. I was not able to do :q to quit the Settings menu.

Object.add is deprecated.

currently i use atom 0.199.0, with vim-mode and ex-mode. i obtain this warning from deprecation cop:

Are you trying to listen for the 'core:confirm' Atom command with jQuery::on?
jQuery::trigger can no longer be used to listen for Atom commands. Please
use atom.commands.add instead. See the docs at
https://atom.io/docs/api/latest/CommandRegistry

thanks in advance,

Failed to activate the ex-mode package (dependency issue?)

The package throws this error whenever I try using it, I tried fixing it and I think the problem is with the dependencies, I looked for all of them with no avail. I would be pretty rad if you could tell me how to fix it.

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 1.0.0
System: linux 3.16.0-4-amd64
Thrown From: ex-mode package, v0.5.1

Stack Trace

Failed to activate the ex-mode package

At Cannot find module 'event-kit'

Error: Cannot find module 'event-kit'
  at Module._resolveFilename (module.js:328:15)
  at Function.Module._resolveFilename (/usr/share/atom/resources/app.asar/src/module-cache.js:383:52)
  at Function.Module._load (module.js:270:25)
  at Module.require (module.js:357:17)
  at require (module.js:376:17)
  at Object.<anonymous> (/home/juanchovilla/.atom/packages/ex-mode/lib/ex-state.coffee:1:46)
  at Object.<anonymous> (/home/juanchovilla/.atom/packages/ex-mode/lib/ex-state.coffee:1:1)
  at Module._compile (module.js:452:26)
  at Object.requireCoffeeScript (/usr/share/atom/resources/app.asar/node_modules/coffee-cash/lib/coffee-cash.js:85:19)
  at Module.load (module.js:347:32)
  at Function.Module._load (module.js:302:12)
  at Module.require (module.js:357:17)
  at require (module.js:376:17)
  at Object.<anonymous> (/home/juanchovilla/.atom/packages/ex-mode/lib/ex-mode.coffee:2:11)
  at Object.<anonymous> (/home/juanchovilla/.atom/packages/ex-mode/lib/ex-mode.coffee:1:1)
  at Module._compile (module.js:452:26)
  at Object.requireCoffeeScript (/usr/share/atom/resources/app.asar/node_modules/coffee-cash/lib/coffee-cash.js:85:19)
  at Module.load (module.js:347:32)
  at Function.Module._load (module.js:302:12)
  at Module.require (module.js:357:17)
  at require (module.js:376:17)
  at Package.module.exports.Package.requireMainModule (/usr/share/atom/resources/app.asar/src/package.js:709:34)
  at Package.module.exports.Package.activateConfig (/usr/share/atom/resources/app.asar/src/package.js:257:12)
  at Package.module.exports.Package.activateNow (/usr/share/atom/resources/app.asar/src/package.js:236:14)
  at /usr/share/atom/resources/app.asar/src/package.js:772:25
  at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:222:20)
  at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/usr/share/atom/resources/app.asar/src/window-event-handler.js:180:20)

Commands

     -2:24.7.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -2:24.7.0 core:cancel (atom-text-editor.editor.mini.is-focused)
     -2:23.5.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -2:23.5.0 core:cancel (atom-text-editor.editor.mini.is-focused)
     -2:21.5.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -2:20.7.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -2:20.7.0 core:cancel (atom-text-editor.editor.mini.is-focused)
     -2:19.5.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -2:18.4.0 core:paste (atom-text-editor.editor.mini.is-focused)
     -2:14.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
 13x -0:08.2.0 vim-mode:move-left (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  6x -0:07.6.0 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:05.8.0 vim-mode:activate-insert-mode (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:01.5.0 core:backspace (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:01.2.0 vim-mode:activate-command-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:00.5.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.command-mode)

Config

{
  "core": {
    "themes": [
      "one-dark-ui",
      "monokai"
    ]
  }
}

Installed Packages

# User
ex-mode, v0.5.1
minimap, v4.10.0
monokai, v0.14.0
vim-mode, v0.54.0

# Dev
No dev packages

Access ex-mode on empty workspace

Currently it's not possible to toggle ex-mode panel if Atom has no active editors (empty workspace)

'atom-workspace:not(.editor)':
  ':': 'ex-mode:open'

while the following keymap works fine

'atom-workspace:not(.editor)':
  ':': 'application:open'

Am I missing something here? How can it be accomplished?

Uncaught TypeError: Cannot read property '0' of undefined

(Copied from atom/vim-mode#703)

  1. Replace something with :s (e.g. :s/"/'/g)
  2. Press u / Ctrl-Z to undo

Atom Version: 0.209.0
System: Unknown Windows Version
Thrown From: vim-mode package, v0.53.0

Stack Trace

Uncaught TypeError: Cannot read property '0' of undefined

At C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\node_modules\text-buffer\lib\marker-store.js:204

TypeError: Cannot read property '0' of undefined
  at MarkerStore.module.exports.MarkerStore.restoreFromSnapshot (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\node_modules\text-buffer\lib\marker-store.js:204:35)
  at TextBuffer.module.exports.TextBuffer.undo (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\node_modules\text-buffer\lib\text-buffer.js:715:33)
  at TextEditor.module.exports.TextEditor.undo (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\src\text-editor.js:1138:19)
  at VimState.module.exports.VimState.undo (C:\Users\KJRS-Nixus\.atom\packages\vim-mode\lib\vim-state.coffee:239:13)
  at atom-text-editor.registerCommands.undo (C:\Users\KJRS-Nixus\.atom\packages\vim-mode\lib\vim-state.coffee:71:23)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\src\command-registry.js:238:29)
  at C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\src\command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\node_modules\atom-keymap\lib\keymap-manager.js:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\node_modules\atom-keymap\lib\keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (C:\Users\KJRS-Nixus\AppData\Local\atom\app-0.209.0\resources\app.asar\src\window-event-handler.js:177:20)

Commands

     -0:53.2.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.command-mode)
     -0:53.2.0 blur (atom-text-editor.editor.vim-mode.is-focused.command-mode)
     -0:52.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:52.7.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:49 ex-mode:open (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:48.9.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:40.4.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:40.3.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:36.6.0 vim-mode:undo (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:16.4.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:11.9.0 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode.is-focused)
 22x -0:11.4.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  6x -0:09.8.0 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  4x -0:08.6.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:02.2.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:01.5.0 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode.is-focused)

Config

{
  "core": {
    "disabledPackages": [
      "minimap",
      "bracket-close-jump",
      "autohide-tree-view",
      "atom-beautify",
      "jsformat",
      "jumpy",
      "atom-html-preview",
      "atom-jshint",
      "autoclose-html",
      "color-picker",
      "docblockr",
      "jshint",
      "language-smarty-php",
      "linter",
      "linter-jshint",
      "react",
      "react-snippets",
      "tabularize",
      "turbo-javascript"
    ],
    "themes": [
      "seti-ui",
      "one-dark-syntax"
    ]
  },
  "vim-mode": {
    "useSmartcaseForSearch": true
  }
}

Installed Packages

# User
ex-mode, v0.5.1
seti-ui, v0.7.1
turbo-javascript, v1.1.3
vim-mode, v0.53.0

# Dev
No dev packages

This looks like it's related to atom/atom#7124, atom/atom#6982 and atom/atom#6757.

Uncaught TypeError: Cannot read property 'hiddenInputComponent' of null

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.210.0
System: Mac OS X 10.10.3
Thrown From: ex-mode package, v0.5.1

Stack Trace

Uncaught TypeError: Cannot read property 'hiddenInputComponent' of null

At /Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-element.js:207

TypeError: Cannot read property 'hiddenInputComponent' of null
  at atom-text-editor.TextEditorElement.blurred (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-element.js:207:51)
  at HTMLInputElement.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-element.js:182:26)
  at atom-pane.PaneElement.activated (/Applications/Atom.app/Contents/Resources/app.asar/src/pane-element.js:125:19)
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at Pane.module.exports.Pane.activate (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:615:27)
  at ex-command-mode-input.ExCommandModeInputElement.removePanel (/Users/K-Nakamura/.atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee:57:36)
  at ex-command-mode-input.ExCommandModeInputElement.confirm (/Users/K-Nakamura/.atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee:47:6)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:238: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:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:180:20)

Commands

     -0:02.7.0 ex-mode:open (input.hidden-input)
     -0:02.5.0 core:confirm (input.hidden-input)
  3x -0:02.5.0 blur (input.hidden-input)
     -0:00.4.0 ex-mode:open (input.hidden-input)
  3x -0:00.4.0 blur (input.hidden-input)
     -0:00.2.0 core:confirm (input.hidden-input)
  3x -0:00.2.0 blur (input.hidden-input)

Config

{
  "core": {
    "disabledPackages": [
      "autocomplete-python",
      "minimap",
      "autocomplete-plus-python-jedi",
      "linter-python-pep8",
      "linter-pep8",
      "term2"
    ],
    "themes": [
      "one-dark-ui",
      "solarized-dark-syntax"
    ],
    "excludeVcsIgnoredPaths": false,
    "followSymlinks": false,
    "destroyEmptyPanes": false
  }
}

Installed Packages

# User
atom-alignment, v0.12.1
atom-runner, v2.4.1
autocomplete-paths, v1.0.2
docblockr, v0.7.2
emmet, v2.3.10
ex-mode, v0.5.1
file-icons, v1.5.7
highlight-column, v0.4.3
japanese-wrap, v0.2.10
language-rdf, v0.2.0
linter, v0.12.7
linter-javac, v0.1.4
linter-pylint, v0.2.2
project-manager, v1.15.10
vim-mode, v0.53.0
vim-mode-visual-block, v0.2.4
vim-surround, v0.7.0

# Dev
No dev packages

Display initial ':' when ex mode activates

I just installed the vim mode and ex mode packages to try.

First thing I noticed when using ex mode, hitting : opens a command bar, but it doesn't display the : at the start of the line.

Vim does this so you can visually check the commands you are entering are correct e.g. : activates ex then w displays as :w for write

ex mode accepts : then w for write, and also : then :w for write. So the actual function doesn't seem to break.

It's a minor thing, but it would be clearer if the bar displayed the initial : used to activate ex mode.

Go to line number is off

From @msmaili on July 8, 2015 21:46

I noticed whenever I try to go to a particular line, it's off by one. I'm guessing it's just some indexing issue.

E.g., typing :20 takes me to line 21.

Also, is there a way to show the bottom input bar when entering a line number? That way I can see what line I'm typing?

Copied from original issue: atom/vim-mode#749

Length error

The following error arise, usually on the second time I press ':'.

/home/romgrk/.atom/packages/ex-mode/lib/ex-state.coffee:47

TypeError: Cannot read property 'length' of undefined
at ExState.processOpStack (/home/romgrk/.atom/packages/ex-mode/lib/ex-state.coffee:47:24)
at ExState.pushOperations (/home/romgrk/.atom/packages/ex-mode/lib/ex-state.coffee:40:6)
at atom-text-editor.pushFn (/home/romgrk/.atom/packages/ex-mode/lib/ex-state.coffee:29:26)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:238:29)
at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:519:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:354:22)
at KeymapManager.module.exports.KeymapManager.terminatePendingState (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:502:14)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:392:21)
at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/usr/share/atom/resources/app.asar/src/window-event-handler.js:178:20)

Uncaught Error: Can't save buffer with no file path

This happens when you try to save without a new file without specifying a filename. I think it should open up a save file dialog in this case.

  1. Start with a new, untitled file.
  2. Try to save with ":w"

Atom Version: 0.181.0
System: Microsoft Windows 8.1
Thrown From: ex-mode package, v0.1.0

Stack Trace

Uncaught Error: Can't save buffer with no file path

At C:\Users\Chris\.atom\packages\ex-mode\lib\ex-state.coffee:54

Error: Can't save buffer with no file path
  at TextBuffer.module.exports.TextBuffer.saveAs (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\text-buffer\lib\text-buffer.js:963:15)
  at TextBuffer.module.exports.TextBuffer.save (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\text-buffer\lib\text-buffer.js:958:19)
  at TextEditor.module.exports.TextEditor.save (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\src\text-editor.js:620:26)
  at Ex.write (C:\Users\Chris\.atom\packages\ex-mode\lib\ex.coffee:2:46)
  at Ex.w (C:\Users\Chris\.atom\packages\ex-mode\lib\ex.coffee:3:10)
  at C:\Users\Chris\.atom\packages\ex-mode\lib\ex.coffee:1:1
  at Command.execute (C:\Users\Chris\.atom\packages\ex-mode\lib\command.coffee:17:7)
  at ExState.processOpStack (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-state.coffee:48:17)
  at ExState.pushOperations (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-state.coffee:39:6)
  at ExViewModel.ViewModel.confirm (C:\Users\Chris\.atom\packages\ex-mode\lib\view-model.coffee:12:14)
  at ExViewModel.module.exports.ExViewModel.confirm (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-view-model.coffee:35:5)
  at ExViewModel.confirm (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-view-model.coffee:1:1)
  at ExCommandModeInputView.module.exports.ExCommandModeInputView.confirm (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-command-mode-input-view.coffee:45:16)
  at atom-text-editor.<anonymous> (C:\Users\Chris\.atom\packages\ex-mode\lib\ex-command-mode-input-view.coffee:1:1)
  at atom-text-editor.handler (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\src\space-pen-extensions.js:115:32)
  at atom-text-editor.jQuery.event.dispatch (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\space-pen\vendor\jquery.js:4681:9)
  at atom-text-editor.elemData.handle (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\space-pen\vendor\jquery.js:4359:46)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\src\command-registry.js:243:29)
  at C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\src\command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\atom-keymap\lib\keymap-manager.js:558:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\node_modules\atom-keymap\lib\keymap-manager.js:396:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (C:\Users\Chris\AppData\Local\atom\app-0.181.0\resources\app\src\window-event-handler.js:176:20)

Commands

     -0:10.0 vim-mode:join (atom-text-editor.editor.vim-mode.command-mode)
     -0:09.8 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:09.3 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode)
     -0:08.9 vim-mode:activate-linewise-visual-mode (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:08.6 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode)
     -0:08.3 vim-mode:delete (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:07.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:06.5 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode)
     -0:06.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:05.8 vim-mode:delete (atom-text-editor.editor.vim-mode.command-mode)
     -0:05.5 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:05.3 vim-mode:delete (atom-text-editor.editor.vim-mode.command-mode)
     -0:05.0 vim-mode:move-up (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:04.9 vim-mode:delete (atom-text-editor.editor.vim-mode.command-mode)
     -0:04.3 ex-mode:open (atom-text-editor.editor.vim-mode.command-mode)
     -0:04.1 core:confirm (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ]
  }
}

Installed Packages

# User
ex-mode, v0.1.0
vim-mode, v0.33.0

# Dev
No dev packages

Implement editing commands

Currently, ex-mode is missing functionality for editing files with:
:e
:enew

Full vim documentation on this can be found here.

escape sequence for delimiter

In vim, the command :%s/^/\/\// will comment out all lines in a file (in languages where // is a comment prefix). Same command in ex-mode will insert \/\/ before each line, the \ should be stripped. This is admittedly low priority since the following alternative works: %s#^#//#, still it would be useful for cases where I can't come up with a creative delimiter to use that doesn't appear in the string.

Input element, fixed or not?

Considering that vim's command bar is fixed, I was thinking that ex-mode input element should be fixed, instead of only appearing when activated.

I think that if it is fixed, it should also go under status-bar.

It could also be a setting, instead of a default behavior.

Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is no l...

[Enter steps to reproduce below:]

  1. Split one window into two vertical. Go open a terminal that opens in bottom pane (term2), making it horizontal split on the left and one vertical split.
  2. Close the right hand full vertical, should just have a horizontal split now
  3. Select the top window and horizontal split.

Atom Version: 1.0.0
System: Mac OS X 10.10.3
Thrown From: ex-mode package, v0.5.1

Stack Trace

Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is no longer a child of this node. Perhaps it was moved in a 'blur' event handler?

At /Applications/Atom.app/Contents/Resources/app.asar/src/panel-container-element.js:63

Error: Failed to execute 'removeChild' on 'Node': The node to be removed is no longer a child of this node. Perhaps it was moved in a 'blur' event handler?
  at Error (native)
  at atom-panel-container.PanelContainerElement.panelRemoved (/Applications/Atom.app/Contents/Resources/app.asar/src/panel-container-element.js:63:19)
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at PanelContainer.module.exports.PanelContainer.panelDestroyed (/Applications/Atom.app/Contents/Resources/app.asar/src/panel-container.js:93:29)
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at Panel.module.exports.Panel.destroy (/Applications/Atom.app/Contents/Resources/app.asar/src/panel.js:25:20)
  at ex-command-mode-input.ExCommandModeInputElement.removePanel (/Users/victorbrouk/.atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee:58:12)
  at ex-command-mode-input.ExCommandModeInputElement.confirm (/Users/victorbrouk/.atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee:47:6)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:241: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:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:180:20)

Commands

  2x -0:32.8.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:32.1.0 window:focus-pane-on-left (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:32 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  8x -0:31.3.0 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:29.8.0 vim-mode:move-to-last-character-of-line (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:29.4.0 vim-mode:move-left (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:28.5.0 vim-mode:move-to-beginning-of-line (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  2x -0:26.2.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:11.4.0 term2:open-split-down (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  8x -0:11.3.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:02.8.0 pane:close (atom-text-editor.editor.vim-mode.command-mode.is-focused)
  3x -0:02.7.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:01.1.0 ex-mode:open (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:01.1.0 blur (atom-text-editor.editor.vim-mode.command-mode.is-focused)
     -0:00.7.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:00.6.0 blur (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "Lucario"
    ]
  }
}

Installed Packages

# User
Lucario, v0.1.9
ex-mode, v0.5.1
minimap, v4.10.1
svn, v0.0.6
term2, v0.9.9
vim-mode, v0.54.0

# Dev
No dev packages

Support for vim option set list/set nolist

Is it possible to support :set list, an option which shows invisible characters such as line endings and tab characters, and :set nolist that turns this option off?

In the code I see no support for vim options and I wonder if ex-mode plans to have support for them.

My typical use case for that command was to check whether file is tab or space indented. I noticed that there's Window: Toggle Invisibles for that in Atom, which is not bound to any key by default. Still I find it handy to use old vim command for that.

I could implement that option myself but firstly I want to clarify if vim options is appropriate functionality to have in ex-mode.

Standard format for commands & command-calling system

We should have a standard format for declaring commands, instead of throwing everything in lib/ex.coffee.

First draft:

'edit':
  trigger: ['edit', 'e']
  callback: BufferCommands.edit # we could group similar commands in various classes

I think it could also be interesting to have regex triggers, for commands like :.,$dx, aka delete everything from current line to EOF, store in register x.

I'd also like to point the fact that we can use atom command-system to accomplish tasks

dispatch = (command) ->
    atom.commands.dispatch(
        document.querySelector('atom-workspace'), command)

'enew':
  trigger: 'enew'
  callback: dispatch.bind null, 'application:new-file'

My last concern is argument passing. Currently, callbacks are called with [range] and "args".
However, we might want to pass more complex objects someday, eg. exState, vimState, editor.
I propose to replace those arguments with a single event object. It could have as default the properties .range and .args. Furthermore, it would also be compatible with other event-driven systems. (eg atom commands)

Uncaught TypeError: Cannot read property 'length' of undefined

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.187.0
System: Mac OS X 10.10.3
Thrown From: ex-mode package, v0.3.1

Stack Trace

Uncaught TypeError: Cannot read property 'length' of undefined

At /Users/ahmad/.atom/packages/ex-mode/lib/ex-state.coffee:46

TypeError: Cannot read property 'length' of undefined
  at ExState.processOpStack (/Users/ahmad/.atom/packages/ex-mode/lib/ex-state.coffee:46:24)
  at ExState.pushOperations (/Users/ahmad/.atom/packages/ex-mode/lib/ex-state.coffee:39:6)
  at atom-text-editor.pushFn (/Users/ahmad/.atom/packages/ex-mode/lib/ex-state.coffee:28:26)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:246:29)
  at /Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:558:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:396:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:182:20)

Commands

     -0:28.5 core:backspace (atom-text-editor.editor.vim-mode.command-mode)
     -0:27.2 tree-view:toggle-focus (atom-text-editor.editor.vim-mode.command-mode)
     -0:26.3 core:move-down (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -0:25.6 tree-view:open-selected-entry (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -0:22.5 tree-view:toggle-focus (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:21.8 core:move-down (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -0:20.5 tree-view:open-selected-entry (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
 16x -0:19.5 vim-mode:move-down (atom-text-editor.editor.vim-mode.command-mode)
     -0:17.3 vim-mode:insert-below-with-newline (atom-text-editor.editor.vim-mode.command-mode)
     -0:08.4 vim-mode:activate-command-mode (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:07.8 vim-mode:move-right (atom-text-editor.editor.vim-mode.command-mode)
     -0:07.0 vim-mode:insert-after (atom-text-editor.editor.vim-mode.command-mode)
     -0:05.3 core:backspace (atom-text-editor.editor.vim-mode.command-mode)
     -0:04.5 editor:newline (atom-text-editor.editor.vim-mode.command-mode)
     -0:02.7 vim-mode:activate-command-mode (atom-text-editor.editor.vim-mode.command-mode)
  2x -0:02.2 ex-mode:open (atom-text-editor.editor.vim-mode.command-mode)

Config

{
  "core": {
    "themes": [
      "one-light-ui",
      "atom-light-syntax"
    ],
    "disabledPackages": [
      "toggle-tabs"
    ]
  }
}

Installed Packages

# User
atom-alignment, v0.11.0
ex-mode, v0.3.1
language-haml, v0.15.0
language-scheme, v1.3.0
language-swift, v0.3.0
vim-mode, v0.39.0

# Dev
No dev packages

Support setting options

Support communicating with vim-mode (and probably the editor itself) by setting and getting (:set) options like 'hls', 'ts', 'ff', etc.

It probably doesn't make sense to implement a huge portion of options. However, options are a very important aspect of vim and they are just integrated into workflow of some of us. For example, if I want to temporarily turn of line numberings I just do :set nonu and when highlighting search matches gets in my way I do :set nohls and I can continue to my work without loosing the n command to go to the next match.

Also recently I needed to modify what motion commands like w recognize as word boundaries in Clojure files. In vim that is as easy as setting 'iskeyword' option in an autocmd. But in atom I don't know if that is possible at all.

border-radius doesn't look good....

I hope the border-radius would be removed.
It doesn't look good in my opinion for that bar. and maybe an option to choose the color of the bar would be great, too.

Thanks!

Support :s

Maybe it is the most important ex command which I use.

Ex-mode commands break focus of drop-downs like the command palette

When the command palette or grammar selector dropdowns are started from an ex-mode command, they don't get keyboard focus and anything typed will go into the document behind the dropdown.

I suspect this is because the ex-mode input window closes itself at about the same time it runs the command. Maybe it should run the command just after closing itself? (Or just before?)

In init.coffee:

atom.packages.onDidActivatePackage (pack) ->
    if pack.name == 'ex-mode'
        Ex.registerCommand 'setf', ->
            atom.commands.dispatch(atom.views.getView(atom.workspace), 'grammar-selector:show')

Wrapping that dispatch call in a setTimeout resolves the issue.

(This was originally discussed on this discuss.atom.io thread)

Workspace.getActiveEditor is deprecated.

Call ::getActiveTextEditor instead

Workspace.getActiveEditor (/Applications/Atom.app/Contents/Resources/app/src/workspace.js:999:12)
Ex.write (/Users/seark/.atom/packages/ex-mode/lib/ex.coffee:117:28)

Implement tab completion

Implementing tab completion for both commands and file paths would be a great feature to add.

Uncaught TypeError: undefined is not a function

[Enter steps to reproduce below:]

  1. Hit the esc key
  2. Type w to write the file

Atom Version: 0.194.0 ⚠️ in 1.0 API Preview Mode ⚠️
System: Mac OS X 10.10.3
Thrown From: ex-mode package, v0.4.1

Stack Trace

Uncaught TypeError: undefined is not a function

At /Users/eric/.atom/packages/ex-mode/lib/ex-state.coffee:56

TypeError: undefined is not a function
  at Ex.write (/Users/eric/.atom/packages/ex-mode/lib/ex.coffee:117:29)
  at Ex.w (/Users/eric/.atom/packages/ex-mode/lib/ex.coffee:143:5)
  at /Users/eric/.atom/packages/ex-mode/lib/ex.coffee:1:1
  at Command.execute (/Users/eric/.atom/packages/ex-mode/lib/command.coffee:148:7)
  at ExState.processOpStack (/Users/eric/.atom/packages/ex-mode/lib/ex-state.coffee:49:17)
  at ExState.pushOperations (/Users/eric/.atom/packages/ex-mode/lib/ex-state.coffee:40:6)
  at ExViewModel.ViewModel.confirm (/Users/eric/.atom/packages/ex-mode/lib/view-model.coffee:12:14)
  at ExViewModel.module.exports.ExViewModel.confirm (/Users/eric/.atom/packages/ex-mode/lib/ex-view-model.coffee:35:5)
  at ExViewModel.confirm (/Users/eric/.atom/packages/ex-mode/lib/ex-view-model.coffee:1:1)
  at ExCommandModeInputView.module.exports.ExCommandModeInputView.confirm (/Users/eric/.atom/packages/ex-mode/lib/ex-command-mode-input-view.coffee:46:16)
  at atom-text-editor.<anonymous> (/Users/eric/.atom/packages/ex-mode/lib/ex-command-mode-input-view.coffee:1:1)
  at atom-text-editor.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4430:9)
  at atom-text-editor.elemData.handle (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4116:28)
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:519:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:354:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:178:20)

Commands

     -1:01.1.0 vim-mode:activate-command-mode (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -1:00.7.0 ex-mode:open (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -1:00.5.0 core:confirm (atom-text-editor.editor.mini)
     -0:58.1.0 ex-mode:open (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -0:57.9.0 core:confirm (atom-text-editor.editor.mini)
     -0:56.1.0 editor:consolidate-selections (atom-text-editor.editor.mini)
     -0:56.1.0 core:cancel (atom-text-editor.editor.mini)
     -0:54.9.0 ex-mode:open (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -0:54.7.0 core:confirm (atom-text-editor.editor.mini)
     -0:53.5.0 core:save (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -0:53.1.0 core:close (atom-text-editor.editor.cursor-block.vim-mode.command-mode.is-focused)
     -0:51.1.0 settings-view:open (atom-text-editor.editor.cursor-block.vim-mode.command-mode)
  3x -0:46.7.0 core:confirm (atom-text-editor.editor.mini)
     -0:03.2.0 core:close (atom-text-editor.editor.mini)
     -0:01.8.0 ex-mode:open (atom-text-editor.editor.cursor-block.vim-mode.command-mode)
     -0:01.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {
    "themes": [
      "one-dark-ui",
      "solarized-dark-syntax"
    ],
    "followSymlinks": true
  }
}

Installed Packages

# User
advanced-new-file, v0.4.0
atom-grails, v0.1.0
autocomplete-paths, v1.0.2
autocomplete-plus, v2.12.0
block-cursor, v0.12.4
cargo-test-runner, v0.0.3
ex-mode, v0.4.1
language-groovy, v0.4.0
language-latex, v0.6.1
language-rust, v0.4.3
latex, v0.22.0
linter-clang, v2.25.1
linter-rust, v0.0.9
minimap, v4.7.6
minimap-find-and-replace, v4.2.0
minimap-selection, v4.2.0
project-manager, v1.15.5
theme-switcher, v1.1.0
vim-mode, v0.44.0
vim-surround, v0.5.1

# Dev
No dev packages

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.