Mercurial > vim
comparison src/testdir/test_suspend.vim @ 23165:a916fca16d4b v8.2.2128
patch 8.2.2128: there is no way to do something on CTRL-Z
Commit: https://github.com/vim/vim/commit/100118c73ac068137cd298d22953896242752523
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Dec 11 19:30:34 2020 +0100
patch 8.2.2128: there is no way to do something on CTRL-Z
Problem: There is no way to do something on CTRL-Z.
Solution: Add VimSuspend and VimResume autocommand events. (closes https://github.com/vim/vim/issues/7450)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 11 Dec 2020 19:45:04 +0100 |
parents | 08940efa6b4e |
children | 3071d91e52f0 |
comparison
equal
deleted
inserted
replaced
23164:99ef85ff1af4 | 23165:a916fca16d4b |
---|---|
59 | 59 |
60 exe buf . 'bwipe!' | 60 exe buf . 'bwipe!' |
61 call delete('Xfoo') | 61 call delete('Xfoo') |
62 endfunc | 62 endfunc |
63 | 63 |
64 func Test_suspend_autocmd() | |
65 CheckFeature terminal | |
66 CheckExecutable /bin/sh | |
67 | |
68 let buf = term_start('/bin/sh', #{term_rows: 6}) | |
69 " Wait for shell prompt. | |
70 call WaitForAssert({-> assert_match('[$#] $', term_getline(buf, '.'))}) | |
71 | |
72 call term_sendkeys(buf, v:progpath | |
73 \ . " --clean -X" | |
74 \ . " -c 'set nu'" | |
75 \ . " -c 'let g:count = 0'" | |
76 \ . " -c 'au VimSuspend * let g:count += 1'" | |
77 \ . " -c 'au VimResume * let g:count += 1'" | |
78 \ . " -c 'call setline(1, \"foo\")'" | |
79 \ . " Xfoo\<CR>") | |
80 " Cursor in terminal buffer should be on first line in spawned vim. | |
81 call WaitForAssert({-> assert_equal(' 1 foo', term_getline(buf, '.'))}) | |
82 | |
83 for suspend_cmd in [":suspend\<CR>", | |
84 \ ":stop\<CR>", | |
85 \ ":suspend!\<CR>", | |
86 \ ":stop!\<CR>", | |
87 \ "\<C-Z>"] | |
88 " Suspend and wait for shell prompt. Then "fg" will restore Vim. | |
89 call term_sendkeys(buf, suspend_cmd) | |
90 call CheckSuspended(buf, 0) | |
91 endfor | |
92 | |
93 call term_sendkeys(buf, ":echo g:count\<CR>") | |
94 call TermWait(buf) | |
95 call WaitForAssert({-> assert_match('^10', term_getline(buf, 6))}) | |
96 | |
97 " Quit gracefully to dump coverage information. | |
98 call term_sendkeys(buf, ":qall!\<CR>") | |
99 call TermWait(buf) | |
100 " Wait until Vim actually exited and shell shows a prompt | |
101 call WaitForAssert({-> assert_match('[$#] $', term_getline(buf, '.'))}) | |
102 call StopShellInTerminal(buf) | |
103 | |
104 exe buf . 'bwipe!' | |
105 call delete('Xfoo') | |
106 endfunc | |
107 | |
64 " vim: shiftwidth=2 sts=2 expandtab | 108 " vim: shiftwidth=2 sts=2 expandtab |