Support yanking

This commit is contained in:
Ryan Mitchell 2016-04-23 12:26:21 -04:00
parent 145446b8de
commit 6670f7c830
2 changed files with 22 additions and 0 deletions

View file

@ -349,6 +349,11 @@ class Ex
range = [[range[0], 0], [range[1] + 1, 0]]
atom.workspace.getActiveTextEditor().buffer.setTextInRange(range, '')
yank: ({ range }) ->
range = [[range[0], 0], [range[1] + 1, 0]]
txt = atom.workspace.getActiveTextEditor().getTextInBufferRange(range)
atom.clipboard.write(txt);
set: ({ range, args }) ->
args = args.trim()
if args == ""

View file

@ -585,6 +585,23 @@ describe "the commands", ->
submitNormalModeInputText(':%substitute/abc/ghi/ig')
expect(editor.getText()).toEqual('ghiaghi\ndefdDEF\nghiaghi')
describe ":yank", ->
beforeEach ->
editor.setText('abc\ndef\nghi\njkl')
editor.setCursorBufferPosition([2, 0])
it "yanks the current line", ->
keydown(':')
submitNormalModeInputText('yank')
expect(atom.clipboard.read()).toEqual('ghi\n')
it "yanks the lines in the given range", ->
processedOpStack = false
exState.onDidProcessOpStack -> processedOpStack = true
keydown(':')
submitNormalModeInputText('1,2yank')
expect(atom.clipboard.read()).toEqual('abc\ndef\n')
describe "illegal delimiters", ->
test = (delim) ->
keydown(':')