view src/testdir/test_paste.vim @ 10696:689e88afdd11 v8.0.0238

patch 8.0.0238: bracketed paste does not disable autoindent commit https://github.com/vim/vim/commit/9e817c8a31232eda57963215eb16ee5b1ceefa7b Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jan 25 21:36:17 2017 +0100 patch 8.0.0238: bracketed paste does not disable autoindent Problem: When using bracketed paste autoindent causes indent to be increased. Solution: Disable 'ai' and set 'paste' temporarily. (Ken Takata)
author Christian Brabandt <cb@256bit.org>
date Wed, 25 Jan 2017 21:45:04 +0100
parents 23ada4caa13b
children 09eb5fd275e0
line wrap: on
line source

" Tests for bracketed paste.

" Bracketed paste only works with "xterm".  Not in GUI.
if has('gui_running')
  finish
endif
set term=xterm

func Test_paste_normal_mode()
  new
  call setline(1, ['a', 'b', 'c'])
  2
  call feedkeys("\<Esc>[200~foo\<CR>bar\<Esc>[201~", 'xt')
  call assert_equal('bfoo', getline(2))
  call assert_equal('bar', getline(3))
  call assert_equal('c', getline(4))

  normal .
  call assert_equal('barfoo', getline(3))
  call assert_equal('bar', getline(4))
  call assert_equal('c', getline(5))
  bwipe!
endfunc

func Test_paste_insert_mode()
  new
  call setline(1, ['a', 'b', 'c'])
  2
  call feedkeys("i\<Esc>[200~foo\<CR>bar\<Esc>[201~ done\<Esc>", 'xt')
  call assert_equal('foo', getline(2))
  call assert_equal('bar doneb', getline(3))
  call assert_equal('c', getline(4))

  normal .
  call assert_equal('bar donfoo', getline(3))
  call assert_equal('bar doneeb', getline(4))
  call assert_equal('c', getline(5))

  set ai et tw=10
  call setline(1, ['a', '    b', 'c'])
  2
  call feedkeys("A\<Esc>[200~foo\<CR> bar bar bar\<Esc>[201~\<Esc>", 'xt')
  call assert_equal('    bfoo', getline(2))
  call assert_equal(' bar bar bar', getline(3))
  call assert_equal('c', getline(4))

  set ai& et& tw=0
  bwipe!
endfunc

func Test_paste_cmdline()
  call feedkeys(":a\<Esc>[200~foo\<CR>bar\<Esc>[201~b\<Home>\"\<CR>", 'xt')
  call assert_equal("\"afoo\<CR>barb", getreg(':'))
endfunc