Add more tab commands
This commit is contained in:
parent
30ad82671b
commit
5116bf6906
3 changed files with 67 additions and 20 deletions
42
README.md
42
README.md
|
|
@ -36,26 +36,28 @@ This is the baseline list of commands supported in `ex-mode`.
|
|||
|
||||
| Command | Operation |
|
||||
| --------------------------------------- | ---------------------------------- |
|
||||
| `q/quit/tabc/tabclose` | Close active tab |
|
||||
| `qall/quitall` | Close all tabs |
|
||||
| `tabe/tabedit/tabnew` | Open new tab |
|
||||
| `e/edit/tabe/tabedit/tabnew <file>` | Edit given file |
|
||||
| `tabn/tabnext` | Go to next tab |
|
||||
| `tabp/tabprevious` | Go to previous tab |
|
||||
| `tabo/tabonly` | Close other tabs |
|
||||
| `w/write` | Save active tab |
|
||||
| `w/write/saveas <file>` | Save as |
|
||||
| `wall/wa` | Save all tabs |
|
||||
| `sp/split` | Split window |
|
||||
| `sp/split <file>` | Open file in split window |
|
||||
| `s/substitute` | Substitute regular expression in active line |
|
||||
| `vsp/vsplit` | Vertical split window |
|
||||
| `vsp/vsplit <file>` | Open file in vertical split window |
|
||||
| `delete` | Cut active line |
|
||||
| `yank` | Copy active line |
|
||||
| `set <options>` | Set options |
|
||||
| `sort` | Sort all lines in file |
|
||||
| `sort <line range>` | Sort lines in line range |
|
||||
| `q/quit/tabc/tabclose` | Close active tab |
|
||||
| `qall/quitall` | Close all tabs |
|
||||
| `tabe/tabedit/tabnew` | Open new tab |
|
||||
| `e/edit/tabe/tabedit/tabnew <file>` | Edit given file |
|
||||
| `tabn/tabnext` | Go to next tab |
|
||||
| `tabp/tabprevious` | Go to previous tab |
|
||||
| `tabfir/tabfirst/tabr/tabrewind` | Go to the first tab |
|
||||
| `tabl/tablast` | Go to the last tab |
|
||||
| `tabo/tabonly` | Close other tabs |
|
||||
| `w/write` | Save active tab |
|
||||
| `w/write/saveas <file>` | Save as |
|
||||
| `wall/wa` | Save all tabs |
|
||||
| `sp/split` | Split window |
|
||||
| `sp/split <file>` | Open file in split window |
|
||||
| `s/substitute` | Substitute regular expression in active line |
|
||||
| `vsp/vsplit` | Vertical split window |
|
||||
| `vsp/vsplit <file>` | Open file in vertical split window |
|
||||
| `delete` | Cut active line |
|
||||
| `yank` | Copy active line |
|
||||
| `set <options>` | Set options |
|
||||
| `sort` | Sort all lines in file |
|
||||
| `sort <line range>` | Sort lines in line range |
|
||||
|
||||
See `lib/ex.coffee` for the implementations of these commands. Contributions are very welcome!
|
||||
|
||||
|
|
|
|||
|
|
@ -173,6 +173,23 @@ class Ex
|
|||
|
||||
tabp: => @tabprevious()
|
||||
|
||||
tabrewind: ->
|
||||
pane = atom.workspace.getActivePane()
|
||||
pane.activateItemAtIndex(0)
|
||||
|
||||
tabr: => @tabrewind()
|
||||
|
||||
tabfirst: => @tabrewind()
|
||||
|
||||
tabfir: => @tabrewind()
|
||||
|
||||
tablast: ->
|
||||
pane = atom.workspace.getActivePane()
|
||||
index = pane.getItems().length - 1
|
||||
pane.activateItemAtIndex(index)
|
||||
|
||||
tabl: => @tablast()
|
||||
|
||||
tabonly: ->
|
||||
tabBar = atom.workspace.getPanes()[0]
|
||||
tabBarElement = atom.views.getView(tabBar).querySelector(".tab-bar")
|
||||
|
|
|
|||
|
|
@ -444,6 +444,34 @@ describe "the commands", ->
|
|||
submitNormalModeInputText('tabprevious')
|
||||
expect(pane.getActiveItemIndex()).toBe(pane.getItems().length - 1)
|
||||
|
||||
describe ":tabfirst", ->
|
||||
pane = null
|
||||
beforeEach ->
|
||||
waitsForPromise ->
|
||||
pane = atom.workspace.getActivePane()
|
||||
atom.workspace.open().then -> atom.workspace.open()
|
||||
.then -> atom.workspace.open()
|
||||
|
||||
it "switches to the first tab", ->
|
||||
pane.activateItemAtIndex(2)
|
||||
openEx()
|
||||
submitNormalModeInputText('tabfirst')
|
||||
expect(pane.getActiveItemIndex()).toBe(0)
|
||||
|
||||
describe ":tablast", ->
|
||||
pane = null
|
||||
beforeEach ->
|
||||
waitsForPromise ->
|
||||
pane = atom.workspace.getActivePane()
|
||||
atom.workspace.open().then -> atom.workspace.open()
|
||||
.then -> atom.workspace.open()
|
||||
|
||||
it "switches to the last tab", ->
|
||||
pane.activateItemAtIndex(0)
|
||||
openEx()
|
||||
submitNormalModeInputText('tablast')
|
||||
expect(pane.getActiveItemIndex()).toBe(2)
|
||||
|
||||
describe ":wq", ->
|
||||
beforeEach ->
|
||||
spyOn(Ex, 'write').andCallThrough()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue