Mercurial > vim
annotate runtime/doc/terminal.txt @ 29221:6e82fb24a351
Added tag v8.2.5129 for changeset d6f8b784d0f6d3017a26750e15d7ce971d312f87
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 19 Jun 2022 15:45:03 +0200 |
parents | c58baa6d6dda |
children | dc4de65a7fb7 |
rev | line source |
---|---|
29104 | 1 *terminal.txt* For Vim version 8.2. Last change: 2022 Jun 09 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 VIM REFERENCE MANUAL by Bram Moolenaar |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 |
13963 | 7 Terminal window support *terminal* *terminal-window* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
10 The terminal feature is optional, use this to check if your Vim has it: > |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
11 echo has('terminal') |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
12 If the result is "1" you have it. |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
13 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
15 1. Basic use |terminal-use| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
16 Typing |terminal-typing| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
17 Size and color |terminal-size-color| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
18 Command syntax |:terminal| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
19 Resizing |terminal-resizing| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
20 Terminal Modes |Terminal-mode| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
21 Cursor style |terminal-cursor-style| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
22 Session |terminal-session| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
23 Special keys |terminal-special-keys| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
24 Unix |terminal-unix| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
25 MS-Windows |terminal-ms-windows| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
26 2. Terminal functions |terminal-function-details| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
27 3. Terminal communication |terminal-communication| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
28 Vim to job: term_sendkeys() |terminal-to-job| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
29 Job to Vim: JSON API |terminal-api| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
30 Using the client-server feature |terminal-client-server| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
31 4. Remote testing |terminal-testing| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
32 5. Diffing screen dumps |terminal-diff| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
33 Writing a screen dump test for Vim |terminal-dumptest| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
34 Creating a screen dump |terminal-screendump| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
35 Comparing screen dumps |terminal-diffscreendump| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
36 6. Debugging |terminal-debug| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
37 Starting |termdebug-starting| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
38 Example session |termdebug-example| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
39 Stepping through code |termdebug-stepping| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
40 Inspecting variables |termdebug-variables| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
41 Other commands |termdebug-commands| |
27036 | 42 Events |termdebug-events| |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
43 Prompt mode |termdebug-prompt| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
44 Communication |termdebug-communication| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
45 Customizing |termdebug-customizing| |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 |
12254 | 47 {only available when compiled with the |+terminal| feature} |
15878 | 48 The terminal feature requires the |+job| and |+channel| features. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 ============================================================================== |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 1. Basic use *terminal-use* |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 This feature is for running a terminal emulator in a Vim window. A job can be |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 started connected to the terminal emulator. For example, to run a shell: > |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 :term bash |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
57 Or to run build command: > |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
58 :term make myprogram |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 The job runs asynchronously from Vim, the window will be updated to show |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
61 output from the job, also while editing in another window. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
63 |
11814
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
64 Typing ~ |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
65 *terminal-typing* |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
66 When the keyboard focus is in the terminal window, typed keys will be sent to |
11814
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
67 the job. This uses a pty when possible. You can click outside of the |
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
68 terminal window to move keyboard focus elsewhere. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
69 |
16023 | 70 *t_CTRL-W_CTRL-W* *t_CTRL-W_:* |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
71 CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.: |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
72 CTRL-W CTRL-W move focus to the next window |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
73 CTRL-W : enter an Ex command |
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
74 See |CTRL-W| for more commands. |
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
75 |
18831 | 76 Special in the terminal window: *t_CTRL-W_.* *t_CTRL-W_N* |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
77 CTRL-W . send a CTRL-W to the job in the terminal |
13668
6a84e3d2b810
patch 8.0.1706: cannot sent CTRL- to a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13626
diff
changeset
|
78 CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
79 CTRL-W N go to Terminal-Normal mode, see |Terminal-mode| |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
80 CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode| |
16023 | 81 CTRL-W " {reg} paste register {reg} *t_CTRL-W_quote* |
11914 | 82 Also works with the = register to insert the result of |
83 evaluating an expression. | |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
84 CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C| |
16023 | 85 CTRL-W gt go to next tabpage, same as `gt` *t_CTRL-W_gt* |
86 CTRL-W gT go to previous tabpage, same as `gT` *t_CTRL-W_gT* | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
87 |
13735 | 88 See option 'termwinkey' for specifying another key instead of CTRL-W that |
89 will work like CTRL-W. However, typing 'termwinkey' twice sends 'termwinkey' | |
90 to the job. For example: | |
91 'termwinkey' CTRL-W move focus to the next window | |
92 'termwinkey' : enter an Ex command | |
93 'termwinkey' 'termwinkey' send 'termwinkey' to the job in the terminal | |
14109
279465096a16
patch 8.1.0072: use of 'termwinkey' is inconsistent
Christian Brabandt <cb@256bit.org>
parents:
14107
diff
changeset
|
94 'termwinkey' . send 'termwinkey' to the job in the terminal |
279465096a16
patch 8.1.0072: use of 'termwinkey' is inconsistent
Christian Brabandt <cb@256bit.org>
parents:
14107
diff
changeset
|
95 'termwinkey' CTRL-\ send a CTRL-\ to the job in the terminal |
13735 | 96 'termwinkey' N go to terminal Normal mode, see below |
16023 | 97 'termwinkey' CTRL-N same as CTRL-W N |t_CTRL-W_N| |
98 'termwinkey' CTRL-C same as CTRL-W CTRL-C |t_CTRL-W_CTRL-C| | |
11965
a932d3da41c8
patch 8.0.0863: a remote command does not work in the terminal window
Christian Brabandt <cb@256bit.org>
parents:
11914
diff
changeset
|
99 *t_CTRL-\_CTRL-N* |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
100 The special key combination CTRL-\ CTRL-N can be used to switch to Normal |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
101 mode, just like this works in any other mode. |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
102 *t_CTRL-W_CTRL-C* |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
103 CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a |
29104 | 104 CTRL-Break will also kill the job. |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
105 |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
106 If you type CTRL-C the effect depends on what the pty has been configured to |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
107 do. For simple commands this causes a SIGINT to be sent to the job, which |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
108 would end it. Other commands may ignore the SIGINT or handle the CTRL-C |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
109 themselves (like Vim does). |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
110 |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
111 To change the keys you type use terminal mode mappings, see |:tmap|. |
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
112 These are defined like any mapping, but apply only when typing keys that are |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
113 sent to the job running in the terminal. For example, to make F1 switch |
12559 | 114 to Terminal-Normal mode: > |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
115 tnoremap <F1> <C-W>N |
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
116 You can use Esc, but you need to make sure it won't cause other keys to |
20753 | 117 break (cursor keys start with an Esc, so they may break), this probably only |
118 works in the GUI: > | |
12559 | 119 tnoremap <Esc> <C-W>N |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
120 set notimeout ttimeout timeoutlen=100 |
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
121 |
14952
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
14695
diff
changeset
|
122 You can also create menus similar to terminal mode mappings, but you have to |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
14695
diff
changeset
|
123 use |:tlmenu| instead of |:tmenu|. |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
14695
diff
changeset
|
124 |
20241 | 125 *options-in-terminal* |
12559 | 126 After opening the terminal window and setting 'buftype' to "terminal" the |
23047 | 127 |TerminalWinOpen| autocommand event is triggered. This makes it possible to set |
128 options specifically for the terminal window and buffer. Example: > | |
129 au TerminalWinOpen * setlocal bufhidden=hide | |
23931 | 130 This only works properly if the terminal is not hidden. |
23047 | 131 |
23931 | 132 For both hidden and non-hidden terminals this works, both for buffer-local and |
133 window-local options: > | |
134 au TerminalWinOpen,BufWinEnter * if &buftype == 'terminal' | |
135 \ | setlocal bufhidden=hide colorcolumn=123 | |
136 \ | endif | |
137 Note that for a hidden terminal the options are not set until the terminal is | |
138 no longer hidden. | |
139 | |
140 There is also the |TerminalOpen| event. Keep in mind this may be triggered | |
141 for a hidden terminal, then the current window and buffer are not that of the | |
142 new terminal. | |
23047 | 143 You need to use <abuf>, which is set to the terminal buffer. Example: > |
23931 | 144 au TerminalOpen * call setbufvar(expand('<abuf>')->str2nr(), |
145 \ '&termwinscroll', 1000) | |
146 For a window-local option, you need to delay setting the option until the | |
147 terminal window has been created (this only works for a hidden terminal): > | |
148 au TerminalOpen * exe printf( | |
149 \ 'au BufWinEnter <buffer=%d> ++once setlocal colorcolumn=%d', | |
150 \ expand('<abuf>')->str2nr(), 123) | |
151 For a non-hidden terminal use |TerminalWinOpen|. | |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
152 |
12907
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
153 Mouse events (click and drag) are passed to the terminal. Mouse move events |
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
154 are only passed when Vim itself is receiving them. For a terminal that is |
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
155 when 'balloonevalterm' is enabled. |
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
156 |
11814
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
157 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
158 Size and color ~ |
12826 | 159 *terminal-size-color* |
13735 | 160 See option 'termwinsize' for controlling the size of the terminal window. |
11659
49c12c93abf3
Updated runtime files and translations.
Christian Brabandt <cb@256bit.org>
parents:
11621
diff
changeset
|
161 (TODO: scrolling when the terminal is larger than the window) |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
162 |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
163 The job running in the terminal can change the colors. The default foreground |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
164 and background colors are taken from Vim, the Normal highlight group. |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
165 |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
166 For a color terminal the 'background' option is used to decide whether the |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
167 terminal window will start with a white or black background. |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
168 |
13100
656ab57d1ddc
update a few runtime files
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
169 To use a different color the Terminal highlight group can be used, for |
656ab57d1ddc
update a few runtime files
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
170 example: > |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
171 hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue |
19797
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
172 Instead of Terminal another group can be specified with the "term_highlight" |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
173 option for `term_start()`. |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
174 |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
175 *g:terminal_ansi_colors* |
13735 | 176 In GUI mode or with 'termguicolors', the 16 ANSI colors used by default in new |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
177 terminal windows may be configured using the variable |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
178 `g:terminal_ansi_colors`, which should be a list of 16 color names or |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
179 hexadecimal color codes, similar to those accepted by |highlight-guifg|. When |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
180 not using GUI colors, the terminal window always uses the 16 ANSI colors of |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
181 the underlying terminal. |
20552 | 182 When using `term_start()` the colors can be set with the "ansi_colors" option. |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
183 The |term_setansicolors()| function can be used to change the colors, and |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
184 |term_getansicolors()| to get the currently used colors. |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
185 |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
186 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
187 Command syntax ~ |
11774
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
188 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
189 :[range]ter[minal] [options] [command] *:ter* *:terminal* |
11774
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
190 Open a new terminal window. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
191 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
192 If [command] is provided run it as a job and connect |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
193 the input and output to the terminal. |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
194 If [command] is not given the 'shell' option is used. |
12254 | 195 if [command] is NONE no job is started, the pty of the |
196 terminal can be used by a command like gdb. | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
197 |
13476
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
198 If [command] is missing the default behavior is to |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
199 close the terminal when the shell exits. This can be |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
200 changed with the ++noclose argument. |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
201 If [command] is present the default behavior is to |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
202 keep the terminal open in Terminal-Normal mode. This |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
203 can be changed with the ++close argument. |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
204 |
20241 | 205 No Vim command can follow, any | is included in |
206 [command]. Use `:execute` if you must have a Vim | |
207 command following in the same line. | |
208 | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
209 A new buffer will be created, using [command] or |
11914 | 210 'shell' as the name, prefixed with a "!". If a buffer |
211 by this name already exists a number is added in | |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
212 parentheses. E.g. if "gdb" exists the second terminal |
11914 | 213 buffer will use "!gdb (1)". |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
214 |
12192
6947d5bcf57f
patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents:
12160
diff
changeset
|
215 If [range] is given the specified lines are used as |
6947d5bcf57f
patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents:
12160
diff
changeset
|
216 input for the job. It will not be possible to type |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
217 keys in the terminal window. For MS-Windows see the |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
218 ++eof argument below. |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
219 |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
220 *term++close* *term++open* |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
221 Supported [options] are: |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
222 ++close The terminal window will close |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
223 automatically when the job terminates. |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
224 |terminal-close| |
13476
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
225 ++noclose The terminal window will NOT close |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
226 automatically when the job terminates. |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
227 ++open When the job terminates and no window |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
228 shows it, a window will be opened. |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
229 Note that this can be interruptive. |
13476
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
230 The last of ++close, ++noclose and ++open |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
231 matters and rules out earlier arguments. |
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
232 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
233 ++curwin Open the terminal in the current |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
234 window, do not split the current |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
235 window. Fails if the current buffer |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
236 cannot be |abandon|ed. |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
237 ++hidden Open the terminal in a hidden buffer, |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
238 no window will be used. |
13437 | 239 ++norestore Do not include this terminal window |
240 in a session file. | |
18514
39b0c28fe495
patch 8.1.2251: ":term command" may not work without a shell
Bram Moolenaar <Bram@vim.org>
parents:
18489
diff
changeset
|
241 ++shell Instead of executing {command} |
39b0c28fe495
patch 8.1.2251: ":term command" may not work without a shell
Bram Moolenaar <Bram@vim.org>
parents:
18489
diff
changeset
|
242 directly, use a shell, like with |
39b0c28fe495
patch 8.1.2251: ":term command" may not work without a shell
Bram Moolenaar <Bram@vim.org>
parents:
18489
diff
changeset
|
243 `:!command` *E279* |
26148 | 244 {only works on Unix and MS-Windows} |
13438
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
245 ++kill={how} When trying to close the terminal |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
246 window kill the job with {how}. See |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
247 |term_setkill()| for the values. |
12192
6947d5bcf57f
patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents:
12160
diff
changeset
|
248 ++rows={height} Use {height} for the terminal window |
13125 | 249 height. If the terminal uses the full |
250 Vim height (no window above or below | |
14006 | 251 the terminal window) the command line |
13125 | 252 height will be reduced as needed. |
12192
6947d5bcf57f
patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents:
12160
diff
changeset
|
253 ++cols={width} Use {width} for the terminal window |
13125 | 254 width. If the terminal uses the full |
255 Vim width (no window left or right of | |
256 the terminal window) this value is | |
257 ignored. | |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
258 ++eof={text} When using [range]: text to send after |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
259 the last line was written. Cannot |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
260 contain white space. A CR is |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
261 appended. For MS-Windows the default |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
262 is to send CTRL-D. |
12311
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
263 E.g. for a shell use "++eof=exit" and |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
264 for Python "++eof=exit()". Special |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
265 codes can be used like with `:map`, |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
266 e.g. "<C-Z>" for CTRL-Z. |
15746
c017195b121b
patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Bram Moolenaar <Bram@vim.org>
parents:
15729
diff
changeset
|
267 ++type={pty} (MS-Windows only): Use {pty} as the |
c017195b121b
patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Bram Moolenaar <Bram@vim.org>
parents:
15729
diff
changeset
|
268 virtual console. See 'termwintype' |
c017195b121b
patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Bram Moolenaar <Bram@vim.org>
parents:
15729
diff
changeset
|
269 for the values. |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
270 ++api={expr} Permit the function name starting with |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
271 {expr} to be called as |terminal-api| |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
272 function. If {expr} is empty then no |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
273 function can be called. |
15746
c017195b121b
patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Bram Moolenaar <Bram@vim.org>
parents:
15729
diff
changeset
|
274 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
275 If you want to use more options use the |term_start()| |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
276 function. |
14637 | 277 If you want to split the window vertically, use: > |
278 :vertical terminal | |
279 < Or short: > | |
280 :vert ter | |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
281 |
13438
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
282 When the buffer associated with the terminal is forcibly unloaded or wiped out |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
283 the job is killed, similar to calling `job_stop(job, "kill")` . |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
284 Closing the window normally results in |E947|. When a kill method was set |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
285 with "++kill={how}" or |term_setkill()| then closing the window will use that |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
286 way to kill or interrupt the job. For example: > |
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
287 :term ++kill=term tail -f /tmp/log |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
288 |
12267
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
289 So long as the job is running the window behaves like it contains a modified |
12311
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
290 buffer. Trying to close the window with `CTRL-W :quit` fails. When using |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
291 `CTRL-W :quit!` the job is ended. The text in the window is lost. The buffer |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
292 still exists, but getting it in a window with `:buffer` will show an empty |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
293 buffer. |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
294 |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
295 Trying to close the window with `CTRL-W :close` also fails. Using |
66fa8eabbd6e
patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12267
diff
changeset
|
296 `CTRL-W :close!` will close the window and make the buffer hidden. |
12267
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
297 |
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
298 You can use `CTRL-W :hide` to close the terminal window and make the buffer |
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
299 hidden, the job keeps running. The `:buffer` command can be used to turn the |
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
300 current window into a terminal window. If there are unsaved changes this |
14006 | 301 fails, use ! to force, as usual. |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
302 |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
303 *terminal-close* |
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
304 When the terminal window is closed, e.g. when the shell exits and "++close" |
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
305 argument was used, and this is the last normal Vim window, then Vim will exit. |
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
306 This is like using |:quit| in a normal window. Help and preview windows are |
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
307 not counted. |
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
18343
diff
changeset
|
308 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
309 To have a background job run without a window, and open the window when it's |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
310 done, use options like this: > |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
311 :term ++hidden ++open make |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
312 Note that the window will open at an unexpected moment, this will interrupt |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
313 what you are doing. |
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
314 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
315 *E947* *E948* |
11967
12833414cc02
patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents:
11965
diff
changeset
|
316 So long as the job is running, the buffer is considered modified and Vim |
12833414cc02
patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents:
11965
diff
changeset
|
317 cannot be quit easily, see |abandon|. |
11914 | 318 |
319 When the job has finished and no changes were made to the buffer: closing the | |
320 window will wipe out the buffer. | |
321 | |
322 Before changes can be made to a terminal buffer, the 'modifiable' option must | |
323 be set. This is only possible when the job has finished. At the first change | |
324 the buffer will become a normal buffer and the highlighting is removed. | |
325 You may want to change the buffer name with |:file| to be able to write, since | |
326 the buffer name will still be set to the command. | |
327 | |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
328 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
329 Resizing ~ |
12826 | 330 *terminal-resizing* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
331 The size of the terminal can be in one of three modes: |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
332 |
13735 | 333 1. The 'termwinsize' option is empty: The terminal size follows the window |
334 size. The minimal size is 2 screen lines with 10 cells. | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
335 |
13735 | 336 2. The 'termwinsize' option is "rows*cols", where "rows" is the minimal number |
337 of screen rows and "cols" is the minimal number of cells. | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
338 |
13735 | 339 3. The 'termwinsize' option is "rowsXcols" (where the x is upper or lower |
340 case). The terminal size is fixed to the specified number of screen lines | |
341 and cells. If the window is bigger there will be unused empty space. | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
342 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
343 If the window is smaller than the terminal size, only part of the terminal can |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
344 be seen (the lower-left part). |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
345 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
346 The |term_getsize()| function can be used to get the current size of the |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
347 terminal. |term_setsize()| can be used only when in the first or second mode, |
13735 | 348 not when 'termwinsize' is "rowsXcols". |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
349 |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
350 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
351 Terminal-Job and Terminal-Normal mode ~ |
13680
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
352 *Terminal-mode* *Terminal-Job* |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
353 When the job is running the contents of the terminal is under control of the |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
354 job. That includes the cursor position. Typed keys are sent to the job. |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
355 The terminal contents can change at any time. This is called Terminal-Job |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
356 mode. |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
357 |
13735 | 358 Use CTRL-W N (or 'termwinkey' N) to switch to Terminal-Normal mode. Now the |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
359 contents of the terminal window is under control of Vim, the job output is |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
360 suspended. CTRL-\ CTRL-N does the same. |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
361 |
12487
3f16cf18386c
patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents:
12457
diff
changeset
|
362 Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
363 |term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are. |
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
364 |
13680
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
365 It is not possible to enter Insert mode from Terminal-Job mode. |
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
366 |
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
367 *Terminal-Normal* *E946* |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
368 In Terminal-Normal mode you can move the cursor around with the usual Vim |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
369 commands, Visually mark text, yank text, etc. But you cannot change the |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
370 contents of the buffer. The commands that would start insert mode, such as |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
371 'i' and 'a', return to Terminal-Job mode. The window will be updated to show |
12487
3f16cf18386c
patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents:
12457
diff
changeset
|
372 the contents of the terminal. |:startinsert| is ineffective. |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
373 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
374 In Terminal-Normal mode the statusline and window title show "(Terminal)". If |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
375 the job ends while in Terminal-Normal mode this changes to |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
376 "(Terminal-finished)". |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
377 |
13680
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
378 When the job outputs lines in the terminal, such that the contents scrolls off |
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
379 the top, those lines are remembered and can be seen in Terminal-Normal mode. |
13735 | 380 The number of lines is limited by the 'termwinscroll' option. When going over |
13912 | 381 this limit, the first 10% of the scrolled lines are deleted and are lost. |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
382 |
11866
be40c8a9240d
patch 8.0.0813: cannot use a terminal window while the job is running
Christian Brabandt <cb@256bit.org>
parents:
11814
diff
changeset
|
383 |
12254 | 384 Cursor style ~ |
12826 | 385 *terminal-cursor-style* |
12254 | 386 By default the cursor in the terminal window uses a not blinking block. The |
387 normal xterm escape sequences can be used to change the blinking state and the | |
388 shape. Once focus leaves the terminal window Vim will restore the original | |
389 cursor. | |
390 | |
391 An exception is when xterm is started with the "-bc" argument, or another way | |
392 that causes the cursor to blink. This actually means that the blinking flag | |
393 is inverted. Since Vim cannot detect this, the terminal window cursor | |
394 blinking will also be inverted. | |
395 | |
396 | |
13437 | 397 Session ~ |
398 *terminal-session* | |
399 A terminal window will be restored when using a session file, if possible and | |
400 wanted. | |
401 | |
402 If "terminal" was removed from 'sessionoptions' then no terminal windows will | |
403 be restored. | |
404 | |
405 If the job in the terminal was finished the window will not be restored. | |
406 | |
407 If the terminal can be restored, the command that was used to open it will be | |
408 used again. To change this use the |term_setrestore()| function. This can | |
409 also be used to not restore a specific terminal by setting the command to | |
410 "NONE". | |
411 | |
412 | |
12826 | 413 Special keys ~ |
414 *terminal-special-keys* | |
415 Since the terminal emulator simulates an xterm, only escape sequences that | |
416 both Vim and xterm recognize will be available in the terminal window. If you | |
417 want to pass on other escape sequences to the job running in the terminal you | |
418 need to set up forwarding. Example: > | |
419 tmap <expr> <Esc>]b SendToTerm("\<Esc>]b") | |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
420 func SendToTerm(what) |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
421 call term_sendkeys('', a:what) |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
422 return '' |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
423 endfunc |
12826 | 424 |
425 | |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
426 Unix ~ |
12826 | 427 *terminal-unix* |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
428 On Unix a pty is used to make it possible to run all kinds of commands. You |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
429 can even run Vim in the terminal! That's used for debugging, see below. |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
430 |
11914 | 431 Environment variables are used to pass information to the running job: |
13585
03224283bafc
patch 8.0.1665: when running a terminal from the GUI 'term' is not useful
Christian Brabandt <cb@256bit.org>
parents:
13575
diff
changeset
|
432 TERM the name of the terminal, from the 'term' option or |
03224283bafc
patch 8.0.1665: when running a terminal from the GUI 'term' is not useful
Christian Brabandt <cb@256bit.org>
parents:
13575
diff
changeset
|
433 $TERM in the GUI; falls back to "xterm" if it does not |
03224283bafc
patch 8.0.1665: when running a terminal from the GUI 'term' is not useful
Christian Brabandt <cb@256bit.org>
parents:
13575
diff
changeset
|
434 start with "xterm" |
11914 | 435 ROWS number of rows in the terminal initially |
436 LINES same as ROWS | |
437 COLUMNS number of columns in the terminal initially | |
438 COLORS number of colors, 't_Co' (256*256*256 in the GUI) | |
439 VIM_SERVERNAME v:servername | |
14063
f39150ec146e
patch 8.1.0049: shell cannot tell running in a terminal window
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
440 VIM_TERMINAL v:version |
11914 | 441 |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
442 |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
443 MS-Windows ~ |
12826 | 444 *terminal-ms-windows* |
11774
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
445 On MS-Windows winpty is used to make it possible to run all kind of commands. |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
446 Obviously, they must be commands that run in a terminal, not open their own |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
447 window. |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
448 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
449 You need the following two files from winpty: |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
450 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
451 winpty.dll |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
452 winpty-agent.exe |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
453 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
454 You can download them from the following page: |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
455 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
456 https://github.com/rprichard/winpty |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
457 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
458 Just put the files somewhere in your PATH. You can set the 'winptydll' option |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
459 to point to the right file, if needed. If you have both the 32-bit and 64-bit |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
460 version, rename to winpty32.dll and winpty64.dll to match the way Vim was |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
461 build. |
15844
63e71d195cee
patch 8.1.0929: no error when requesting ConPTY but it's not available
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
462 *ConPTY* *E982* |
15725
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
463 On more recent versions of MS-Windows 10 (beginning with the "October 2018 |
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
464 Update"), winpty is no longer required. On those versions, |:terminal| will use |
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
465 Windows' built-in support for hosting terminal applications, "ConPTY". When |
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
466 ConPTY is in use, there may be rendering artifacts regarding ambiguous-width |
15844
63e71d195cee
patch 8.1.0929: no error when requesting ConPTY but it's not available
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
467 characters. If you encounter any such issues, install "winpty". Until the |
63e71d195cee
patch 8.1.0929: no error when requesting ConPTY but it's not available
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
468 ConPTY problems have been fixed "winpty" will be preferred. |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
469 |
12907
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
470 Environment variables are used to pass information to the running job: |
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
471 VIM_SERVERNAME v:servername |
32531a3eab1f
patch 8.0.1330: MS-Windows: job in terminal can't get back to Vim
Christian Brabandt <cb@256bit.org>
parents:
12833
diff
changeset
|
472 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
473 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
474 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
475 2. Terminal functions *terminal-function-details* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
476 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
477 *term_dumpdiff()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
478 term_dumpdiff({filename}, {filename} [, {options}]) |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
479 Open a new window displaying the difference between the two |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
480 files. The files must have been created with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
481 |term_dumpwrite()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
482 Returns the buffer number or zero when the diff fails. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
483 Also see |terminal-diff|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
484 NOTE: this does not work with double-width characters yet. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
485 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
486 The top part of the buffer contains the contents of the first |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
487 file, the bottom part of the buffer contains the contents of |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
488 the second file. The middle part shows the differences. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
489 The parts are separated by a line of equals. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
490 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
491 If the {options} argument is present, it must be a Dict with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
492 these possible members: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
493 "term_name" name to use for the buffer name, instead |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
494 of the first file name. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
495 "term_rows" vertical size to use for the terminal, |
22171 | 496 instead of using 'termwinsize', but |
497 respecting the minimal size | |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
498 "term_cols" horizontal size to use for the terminal, |
22171 | 499 instead of using 'termwinsize', but |
500 respecting the minimal size | |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
501 "vertical" split the window vertically |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
502 "curwin" use the current window, do not split the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
503 window; fails if the current buffer |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
504 cannot be |abandon|ed |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
505 "bufnr" do not create a new buffer, use the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
506 existing buffer "bufnr". This buffer |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
507 must have been previously created with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
508 term_dumpdiff() or term_dumpload() and |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
509 visible in a window. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
510 "norestore" do not add the terminal window to a |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
511 session file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
512 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
513 Each character in the middle part indicates a difference. If |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
514 there are multiple differences only the first in this list is |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
515 used: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
516 X different character |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
517 w different width |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
518 f different foreground color |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
519 b different background color |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
520 a different attribute |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
521 + missing position in first file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
522 - missing position in second file |
22958 | 523 > cursor position in first file, not in second |
23047 | 524 < cursor position in second file, not in first |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
525 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
526 Using the "s" key the top and bottom parts are swapped. This |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
527 makes it easy to spot a difference. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
528 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
529 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
530 GetFilename()->term_dumpdiff(otherfile) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
531 < |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
532 *term_dumpload()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
533 term_dumpload({filename} [, {options}]) |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
534 Open a new window displaying the contents of {filename} |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
535 The file must have been created with |term_dumpwrite()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
536 Returns the buffer number or zero when it fails. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
537 Also see |terminal-diff|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
538 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
539 For {options} see |term_dumpdiff()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
540 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
541 Can also be used as a |method|: > |
18343 | 542 GetFilename()->term_dumpload() |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
543 < |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
544 *term_dumpwrite()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
545 term_dumpwrite({buf}, {filename} [, {options}]) |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
546 Dump the contents of the terminal screen of {buf} in the file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
547 {filename}. This uses a format that can be used with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
548 |term_dumpload()| and |term_dumpdiff()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
549 If the job in the terminal already finished an error is given: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
550 *E958* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
551 If {filename} already exists an error is given: *E953* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
552 Also see |terminal-diff|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
553 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
554 {options} is a dictionary with these optional entries: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
555 "rows" maximum number of rows to dump |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
556 "columns" maximum number of columns to dump |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
557 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
558 Can also be used as a |method|, the base is used for the file |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
559 name: > |
18343 | 560 GetFilename()->term_dumpwrite(bufnr) |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
561 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
562 term_getaltscreen({buf}) *term_getaltscreen()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
563 Returns 1 if the terminal of {buf} is using the alternate |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
564 screen. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
565 {buf} is used as with |term_getsize()|. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
566 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
567 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
568 GetBufnr()->term_getaltscreen() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
569 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
570 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
571 term_getansicolors({buf}) *term_getansicolors()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
572 Get the ANSI color palette in use by terminal {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
573 Returns a List of length 16 where each element is a String |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
574 representing a color in hexadecimal "#rrggbb" format. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
575 Also see |term_setansicolors()| and |g:terminal_ansi_colors|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
576 If neither was used returns the default colors. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
577 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
578 {buf} is used as with |term_getsize()|. If the buffer does not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
579 exist or is not a terminal window, an empty list is returned. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
580 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
581 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
582 GetBufnr()->term_getansicolors() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
583 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
584 < {only available when compiled with GUI enabled and/or the |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
585 |+termguicolors| feature} |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
586 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
587 term_getattr({attr}, {what}) *term_getattr()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
588 Given {attr}, a value returned by term_scrape() in the "attr" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
589 item, return whether {what} is on. {what} can be one of: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
590 bold |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
591 italic |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
592 underline |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
593 strike |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
594 reverse |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
595 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
596 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
597 GetAttr()->term_getattr() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
598 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
599 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
600 term_getcursor({buf}) *term_getcursor()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
601 Get the cursor position of terminal {buf}. Returns a list with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
602 two numbers and a dictionary: [row, col, dict]. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
603 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
604 "row" and "col" are one based, the first screen cell is row |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
605 1, column 1. This is the cursor position of the terminal |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
606 itself, not of the Vim window. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
607 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
608 "dict" can have these members: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
609 "visible" one when the cursor is visible, zero when it |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
610 is hidden. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
611 "blink" one when the cursor is blinking, zero when it |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
612 is not blinking. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
613 "shape" 1 for a block cursor, 2 for underline and 3 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
614 for a vertical bar. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
615 "color" color of the cursor, e.g. "green" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
616 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
617 {buf} must be the buffer number of a terminal window. If the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
618 buffer does not exist or is not a terminal window, an empty |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
619 list is returned. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
620 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
621 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
622 GetBufnr()->term_getcursor() |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
623 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
624 term_getjob({buf}) *term_getjob()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
625 Get the Job associated with terminal window {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
626 {buf} is used as with |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
627 Returns |v:null| when there is no job. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
628 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
629 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
630 GetBufnr()->term_getjob() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
631 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
632 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
633 term_getline({buf}, {row}) *term_getline()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
634 Get a line of text from the terminal window of {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
635 {buf} is used as with |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
636 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
637 The first line has {row} one. When {row} is "." the cursor |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
638 line is used. When {row} is invalid an empty string is |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
639 returned. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
640 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
641 To get attributes of each character use |term_scrape()|. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
642 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
643 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
644 GetBufnr()->term_getline(row) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
645 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
646 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
647 term_getscrolled({buf}) *term_getscrolled()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
648 Return the number of lines that scrolled to above the top of |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
649 terminal {buf}. This is the offset between the row number |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
650 used for |term_getline()| and |getline()|, so that: > |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
651 term_getline(buf, N) |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
652 < is equal to: > |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
653 getline(N + term_getscrolled(buf)) |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
654 < (if that line exists). |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
655 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
656 {buf} is used as with |term_getsize()|. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
657 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
658 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
659 GetBufnr()->term_getscrolled() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
660 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
661 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
662 term_getsize({buf}) *term_getsize()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
663 Get the size of terminal {buf}. Returns a list with two |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
664 numbers: [rows, cols]. This is the size of the terminal, not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
665 the window containing the terminal. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
666 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
667 {buf} must be the buffer number of a terminal window. Use an |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
668 empty string for the current buffer. If the buffer does not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
669 exist or is not a terminal window, an empty list is returned. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
670 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
671 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
672 GetBufnr()->term_getsize() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
673 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
674 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
675 term_getstatus({buf}) *term_getstatus()* |
19099 | 676 Get the status of terminal {buf}. This returns a String with |
28379 | 677 a comma-separated list of these items: |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
678 running job is running |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
679 finished job has finished |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
680 normal in Terminal-Normal mode |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
681 One of "running" or "finished" is always present. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
682 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
683 {buf} must be the buffer number of a terminal window. If the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
684 buffer does not exist or is not a terminal window, an empty |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
685 string is returned. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
686 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
687 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
688 GetBufnr()->term_getstatus() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
689 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
690 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
691 term_gettitle({buf}) *term_gettitle()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
692 Get the title of terminal {buf}. This is the title that the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
693 job in the terminal has set. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
694 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
695 {buf} must be the buffer number of a terminal window. If the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
696 buffer does not exist or is not a terminal window, an empty |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
697 string is returned. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
698 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
699 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
700 GetBufnr()->term_gettitle() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
701 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
702 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
703 term_gettty({buf} [, {input}]) *term_gettty()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
704 Get the name of the controlling terminal associated with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
705 terminal window {buf}. {buf} is used as with |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
706 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
707 When {input} is omitted or 0, return the name for writing |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
708 (stdout). When {input} is 1 return the name for reading |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
709 (stdin). On UNIX, both return same name. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
710 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
711 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
712 GetBufnr()->term_gettty() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
713 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
714 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
715 term_list() *term_list()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
716 Return a list with the buffer numbers of all buffers for |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
717 terminal windows. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
718 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
719 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
720 term_scrape({buf}, {row}) *term_scrape()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
721 Get the contents of {row} of terminal screen of {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
722 For {buf} see |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
723 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
724 The first line has {row} one. When {row} is "." the cursor |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
725 line is used. When {row} is invalid an empty string is |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
726 returned. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
727 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
728 Return a List containing a Dict for each screen cell: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
729 "chars" character(s) at the cell |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
730 "fg" foreground color as #rrggbb |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
731 "bg" background color as #rrggbb |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
732 "attr" attributes of the cell, use |term_getattr()| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
733 to get the individual flags |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
734 "width" cell width: 1 or 2 |
23931 | 735 For a double-width cell there is one item, thus the list can |
736 be shorter than the width of the terminal. | |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
737 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
738 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
739 GetBufnr()->term_scrape(row) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
740 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
741 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
742 term_sendkeys({buf}, {keys}) *term_sendkeys()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
743 Send keystrokes {keys} to terminal {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
744 {buf} is used as with |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
745 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
746 {keys} are translated as key sequences. For example, "\<c-x>" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
747 means the character CTRL-X. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
748 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
749 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
750 GetBufnr()->term_sendkeys(keys) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
751 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
752 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
753 term_setansicolors({buf}, {colors}) *term_setansicolors()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
754 Set the ANSI color palette used by terminal {buf}. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
755 {colors} must be a List of 16 valid color names or hexadecimal |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
756 color codes, like those accepted by |highlight-guifg|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
757 Also see |term_getansicolors()| and |g:terminal_ansi_colors|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
758 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
759 The colors normally are: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
760 0 black |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
761 1 dark red |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
762 2 dark green |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
763 3 brown |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
764 4 dark blue |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
765 5 dark magenta |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
766 6 dark cyan |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
767 7 light grey |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
768 8 dark grey |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
769 9 red |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
770 10 green |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
771 11 yellow |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
772 12 blue |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
773 13 magenta |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
774 14 cyan |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
775 15 white |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
776 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
777 These colors are used in the GUI and in the terminal when |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
778 'termguicolors' is set. When not using GUI colors (GUI mode |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
779 or 'termguicolors'), the terminal window always uses the 16 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
780 ANSI colors of the underlying terminal. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
781 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
782 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
783 GetBufnr()->term_setansicolors(colors) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
784 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
785 < {only available with GUI enabled and/or the |+termguicolors| |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
786 feature} |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
787 |
25700 | 788 |
789 term_setapi({buf}, {expr}) *term_setapi()* | |
790 Set the function name prefix to be used for the |terminal-api| | |
791 function in terminal {buf}. For example: > | |
792 :call term_setapi(buf, "Myapi_") | |
793 :call term_setapi(buf, "") | |
794 < | |
795 The default is "Tapi_". When {expr} is an empty string then | |
796 no |terminal-api| function can be used for {buf}. | |
797 | |
798 When used as a method the base is used for {buf}: > | |
799 GetBufnr()->term_setapi({expr}) | |
800 | |
801 | |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
802 term_setkill({buf}, {how}) *term_setkill()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
803 When exiting Vim or trying to close the terminal window in |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
804 another way, {how} defines whether the job in the terminal can |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
805 be stopped. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
806 When {how} is empty (the default), the job will not be |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
807 stopped, trying to exit will result in |E947|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
808 Otherwise, {how} specifies what signal to send to the job. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
809 See |job_stop()| for the values. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
810 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
811 After sending the signal Vim will wait for up to a second to |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
812 check that the job actually stopped. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
813 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
814 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
815 GetBufnr()->term_setkill(how) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
816 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
817 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
818 term_setrestore({buf}, {command}) *term_setrestore()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
819 Set the command to write in a session file to restore the job |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
820 in this terminal. The line written in the session file is: > |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
821 terminal ++curwin ++cols=%d ++rows=%d {command} |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
822 < Make sure to escape the command properly. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
823 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
824 Use an empty {command} to run 'shell'. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
825 Use "NONE" to not restore this window. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
826 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
827 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
828 GetBufnr()->term_setrestore(command) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
829 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
830 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
831 term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
832 Set the size of terminal {buf}. The size of the window |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
833 containing the terminal will also be adjusted, if possible. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
834 If {rows} or {cols} is zero or negative, that dimension is not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
835 changed. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
836 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
837 {buf} must be the buffer number of a terminal window. Use an |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
838 empty string for the current buffer. If the buffer does not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
839 exist or is not a terminal window, an error is given. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
840 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
841 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
842 GetBufnr()->term_setsize(rows, cols) |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
843 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
844 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
845 term_start({cmd} [, {options}]) *term_start()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
846 Open a terminal window and run {cmd} in it. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
847 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
848 {cmd} can be a string or a List, like with |job_start()|. The |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
849 string "NONE" can be used to open a terminal window without |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
850 starting a job, the pty of the terminal can be used by a |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
851 command like gdb. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
852 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
853 Returns the buffer number of the terminal window. If {cmd} |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
854 cannot be executed the window does open and shows an error |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
855 message. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
856 If opening the window fails zero is returned. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
857 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
858 {options} are similar to what is used for |job_start()|, see |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
859 |job-options|. However, not all options can be used. These |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
860 are supported: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
861 all timeout options |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
862 "stoponexit", "cwd", "env" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
863 "callback", "out_cb", "err_cb", "exit_cb", "close_cb" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
864 "in_io", "in_top", "in_bot", "in_name", "in_buf" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
865 "out_io", "out_name", "out_buf", "out_modifiable", "out_msg" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
866 "err_io", "err_name", "err_buf", "err_modifiable", "err_msg" |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
867 However, at least one of stdin, stdout or stderr must be |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
868 connected to the terminal. When I/O is connected to the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
869 terminal then the callback function for that part is not used. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
870 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
871 There are extra options: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
872 "term_name" name to use for the buffer name, instead |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
873 of the command name. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
874 "term_rows" vertical size to use for the terminal, |
26113
c421c9599d83
patch 8.2.3589: failure when "term_rows" of term_start() is an unusual value
Bram Moolenaar <Bram@vim.org>
parents:
25965
diff
changeset
|
875 instead of using 'termwinsize'; valid |
c421c9599d83
patch 8.2.3589: failure when "term_rows" of term_start() is an unusual value
Bram Moolenaar <Bram@vim.org>
parents:
25965
diff
changeset
|
876 range is from zero to 1000 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
877 "term_cols" horizontal size to use for the terminal, |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
878 instead of using 'termwinsize' |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
879 "vertical" split the window vertically; note that |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
880 other window position can be defined with |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
881 command modifiers, such as |:belowright|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
882 "curwin" use the current window, do not split the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
883 window; fails if the current buffer |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
884 cannot be |abandon|ed |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
885 "hidden" do not open a window |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
886 "norestore" do not add the terminal window to a |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
887 session file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
888 "term_kill" what to do when trying to close the |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
889 terminal window, see |term_setkill()| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
890 "term_finish" What to do when the job is finished: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
891 "close": close any windows |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
892 "open": open window if needed |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
893 Note that "open" can be interruptive. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
894 See |term++close| and |term++open|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
895 "term_opencmd" command to use for opening the window when |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
896 "open" is used for "term_finish"; must |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
897 have "%d" where the buffer number goes, |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
898 e.g. "10split|buffer %d"; when not |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
899 specified "botright sbuf %d" is used |
19797
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
900 "term_highlight" highlight group to use instead of |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
901 "Terminal" |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
902 "eof_chars" Text to send after all buffer lines were |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
903 written to the terminal. When not set |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
904 CTRL-D is used on MS-Windows. For Python |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
905 use CTRL-Z or "exit()". For a shell use |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
906 "exit". A CR is always added. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
907 "ansi_colors" A list of 16 color names or hex codes |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
908 defining the ANSI palette used in GUI |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
909 color modes. See |g:terminal_ansi_colors|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
910 "tty_type" (MS-Windows only): Specify which pty to |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
911 use. See 'termwintype' for the values. |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
912 "term_api" function name prefix for the |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
913 |terminal-api| function. See |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
914 |term_setapi()|. |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
915 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
916 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
917 GetCommand()->term_start() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
918 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
919 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
920 term_wait({buf} [, {time}]) *term_wait()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
921 Wait for pending updates of {buf} to be handled. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
922 {buf} is used as with |term_getsize()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
923 {time} is how long to wait for updates to arrive in msec. If |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
924 not set then 10 msec will be used. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
925 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
926 Can also be used as a |method|: > |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
927 GetBufnr()->term_wait() |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
928 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
929 ============================================================================== |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
930 3. Terminal communication *terminal-communication* |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
931 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
932 There are several ways to communicate with the job running in a terminal: |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
933 - Use |term_sendkeys()| to send text and escape sequences from Vim to the job. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
934 - Use the JSON API to send encoded commands from the job to Vim. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
935 - Use the |client-server| mechanism. This works on machines with an X server |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
936 and on MS-Windows. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
937 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
938 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
939 Vim to job: term_sendkeys() ~ |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
940 *terminal-to-job* |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
941 This allows for remote controlling the job running in the terminal. It is a |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
942 one-way mechanism. The job can update the display to signal back to Vim. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
943 For example, if a shell is running in a terminal, you can do: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
944 call term_sendkeys(buf, "ls *.java\<CR>") |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
945 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
946 This requires for the job to be in the right state where it will do the right |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
947 thing when receiving the keys. For the above example, the shell must be |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
948 waiting for a command to be typed. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
949 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
950 For a job that was written for the purpose, you can use the JSON API escape |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
951 sequence in the other direction. E.g.: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
952 call term_sendkeys(buf, "\<Esc>]51;["response"]\x07") |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
953 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
954 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
955 Job to Vim: JSON API ~ |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
956 *terminal-api* |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
957 The job can send JSON to Vim, using a special escape sequence. The JSON |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
958 encodes a command that Vim understands. Example of such a message: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
959 <Esc>]51;["drop", "README.md"]<07> |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
960 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
961 The body is always a list, making it easy to find the end: ]<07>. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
962 The <Esc>]51;msg<07> sequence is reserved by xterm for "Emacs shell", which is |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
963 similar to what we are doing here. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
964 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
965 Currently supported commands: |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
966 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
967 call {funcname} {argument} |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
968 |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
969 Call a user defined function with {argument}. |
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
970 The function is called with two arguments: the buffer number |
18831 | 971 of the terminal and {argument}, the decoded JSON argument. |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
972 By default, the function name must start with "Tapi_" to avoid |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
973 accidentally calling a function not meant to be used for the |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
974 terminal API. This can be changed with |term_setapi()|. |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
975 The user function should sanity check the argument. |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
976 The function can use |term_sendkeys()| to send back a reply. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
977 Example in JSON: > |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
978 ["call", "Tapi_Impression", ["play", 14]] |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
979 < Calls a function defined like this: > |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
980 function Tapi_Impression(bufnum, arglist) |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
981 if len(a:arglist) == 2 |
27903 | 982 echomsg "impression " .. a:arglist[0] |
983 echomsg "count " .. a:arglist[1] | |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
984 endif |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
985 endfunc |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
986 < Output from `:echo` may be erased by a redraw, use `:echomsg` |
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
987 to be able to see it with `:messages`. |
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
988 |
13575
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
989 drop {filename} [options] |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
990 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
991 Let Vim open a file, like the `:drop` command. If {filename} |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
992 is already open in a window, switch to that window. Otherwise |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
993 open a new window to edit {filename}. |
13857 | 994 Note that both the job and Vim may change the current |
995 directory, thus it's best to use the full path. | |
13575
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
996 |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
997 [options] is only used when opening a new window. If present, |
19968 | 998 it must be a Dict. Similarly to |++opt|, these entries are |
16808 | 999 recognized: |
13575
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1000 "ff" file format: "dos", "mac" or "unix" |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1001 "fileformat" idem |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1002 "enc" overrides 'fileencoding' |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1003 "encoding" idem |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1004 "bin" sets 'binary' |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1005 "binary" idem |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1006 "nobin" resets 'binary' |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1007 "nobinary" idem |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1008 "bad" specifies behavior for bad characters, see |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1009 |++bad| |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
1010 |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1011 Example in JSON: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1012 ["drop", "path/file.txt", {"ff": "dos"}] |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1013 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1014 A trick to have Vim send this escape sequence: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1015 exe "set t_ts=\<Esc>]51; t_fs=\x07" |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
1016 let &titlestring = '["call","Tapi_TryThis",["hello",123]]' |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1017 redraw |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1018 set t_ts& t_fs& |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1019 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1020 Rationale: Why not allow for any command or expression? Because that might |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1021 create a security problem. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1022 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1023 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1024 Using the client-server feature ~ |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1025 *terminal-client-server* |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1026 This only works when v:servername is not empty. If needed you can set it, |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1027 before opening the terminal, with: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1028 call remote_startserver('vim-server') |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1029 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1030 $VIM_SERVERNAME is set in the terminal to pass on the server name. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1031 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1032 In the job you can then do something like: > |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1033 vim --servername $VIM_SERVERNAME --remote +123 some_file.c |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1034 This will open the file "some_file.c" and put the cursor on line 123. |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1035 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1036 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1037 4. Remote testing *terminal-testing* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1038 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1039 Most Vim tests execute a script inside Vim. For some tests this does not |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1040 work, running the test interferes with the code being tested. To avoid this |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1041 Vim is executed in a terminal window. The test sends keystrokes to it and |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1042 inspects the resulting screen state. |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1043 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1044 Functions ~ |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1045 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1046 |term_sendkeys()| send keystrokes to a terminal (not subject to tmap) |
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1047 |term_wait()| wait for screen to be updated |
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1048 |term_scrape()| inspect terminal screen |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1049 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1050 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1051 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1052 5. Diffing screen dumps *terminal-diff* |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1053 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1054 In some cases it can be bothersome to test that Vim displays the right |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1055 characters on the screen. E.g. with syntax highlighting. To make this |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1056 simpler it is possible to take a screen dump of a terminal and compare it to |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1057 an expected screen dump. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1058 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1059 Vim uses the window size, text, color and other attributes as displayed. The |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1060 Vim screen size, font and other properties do not matter. Therefore this |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
1061 mechanism is portable across systems. A conventional screenshot would reflect |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1062 all differences, including font size and family. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1063 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1064 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1065 Writing a screen dump test for Vim ~ |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1066 *terminal-dumptest* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1067 For an example see the Test_syntax_c() function in |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1068 src/testdir/test_syntax.vim. The main parts are: |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1069 - Write a file you want to test with. This is useful for testing syntax |
19303 | 1070 highlighting. You can also start Vim with an empty buffer. |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1071 - Run Vim in a terminal with a specific size. The default is 20 lines of 75 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1072 characters. This makes sure the dump is always this size. The function |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1073 RunVimInTerminal() takes care of this. Pass it the arguments for the Vim |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1074 command. |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1075 - Send any commands to Vim using |term_sendkeys()|. For example: > |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1076 call term_sendkeys(buf, ":echo &lines &columns\<CR>") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1077 - Check that the screen is now in the expected state, using |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1078 VerifyScreenDump(). This expects the reference screen dump to be in the |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1079 src/testdir/dumps/ directory. Pass the name without ".dump". It is |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1080 recommended to use the name of the test function and a sequence number, so |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1081 that we know what test is using the file. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1082 - Repeat sending commands and checking the state. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1083 - Finally stop Vim by calling StopVimInTerminal(). |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1084 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1085 The first time you do this you won't have a screen dump yet. Create an empty |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1086 file for now, e.g.: > |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1087 touch src/testdir/dumps/Test_function_name_01.dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1088 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1089 The test will then fail, giving you the command to compare the reference dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1090 and the failed dump, e.g.: > |
18719 | 1091 call term_dumpdiff("failed/Test_func.dump", "dumps/Test_func.dump") |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1092 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1093 Use this command in Vim, with the current directory set to src/testdir. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1094 Once you are satisfied with the test, move the failed dump in place of the |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1095 reference: > |
18719 | 1096 :!mv failed/Test_func.dump dumps/Test_func.dump |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1097 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1098 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1099 Creating a screen dump ~ |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1100 *terminal-screendump* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1101 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1102 To create the screen dump, run Vim (or any other program) in a terminal and |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1103 make it show the desired state. Then use the |term_dumpwrite()| function to |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1104 create a screen dump file. For example: > |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1105 :call term_dumpwrite(77, "mysyntax.dump") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1106 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1107 Here "77" is the buffer number of the terminal. Use `:ls!` to see it. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1108 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1109 You can view the screen dump with |term_dumpload()|: > |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1110 :call term_dumpload("mysyntax.dump") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1111 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1112 To verify that Vim still shows exactly the same screen, run Vim again with |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1113 exactly the same way to show the desired state. Then create a screen dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1114 again, using a different file name: > |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1115 :call term_dumpwrite(88, "test.dump") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1116 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1117 To assert that the files are exactly the same use |assert_equalfile()|: > |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1118 call assert_equalfile("mysyntax.dump", "test.dump") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1119 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1120 If there are differences then v:errors will contain the error message. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1121 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1122 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1123 Comparing screen dumps ~ |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1124 *terminal-diffscreendump* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1125 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1126 |assert_equalfile()| does not make it easy to see what is different. |
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1127 To spot the problem use |term_dumpdiff()|: > |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1128 call term_dumpdiff("mysyntax.dump", "test.dump") |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1129 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1130 This will open a window consisting of three parts: |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1131 1. The contents of the first dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1132 2. The difference between the first and second dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1133 3. The contents of the second dump |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1134 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1135 You can usually see what differs in the second part. Use the 'ruler' to |
14695 | 1136 relate it to the position in the first or second dump. Letters indicate the |
1137 kind of difference: | |
1138 X different character | |
1139 > cursor in first but not in second | |
1140 < cursor in second but not in first | |
1141 w character width differs (single vs double width) | |
1142 f foreground color differs | |
1143 b background color differs | |
1144 a attribute differs (bold, underline, reverse, etc.) | |
1145 ? character missing in both | |
1146 + character missing in first | |
1147 - character missing in second | |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1148 |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
1149 Alternatively, press "s" to swap the first and second dump. Do this several |
13304
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1150 times so that you can spot the difference in the context of the text. |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1151 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1152 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1153 6. Debugging *terminal-debug* *terminal-debugger* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1154 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1155 The Terminal debugging plugin can be used to debug a program with gdb and view |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1156 the source code in a Vim window. Since this is completely contained inside |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1157 Vim this also works remotely over an ssh connection. |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1158 |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1159 When the |+terminal| feature is missing, the plugin will use the "prompt" |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1160 buffer type, if possible. The running program will then use a newly opened |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1161 terminal window. See |termdebug-prompt| below for details. |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1162 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1163 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1164 Starting ~ |
12826 | 1165 *termdebug-starting* |
12254 | 1166 Load the plugin with this command: > |
1167 packadd termdebug | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1168 < *:Termdebug* |
14519 | 1169 To start debugging use `:Termdebug` or `:TermdebugCommand` followed by the |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1170 command name, for example: > |
12559 | 1171 :Termdebug vim |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1172 |
12254 | 1173 This opens two windows: |
13051 | 1174 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1175 gdb window A terminal window in which "gdb vim" is executed. Here you |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1176 can directly interact with gdb. The buffer name is "!gdb". |
13051 | 1177 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1178 program window A terminal window for the executed program. When "run" is |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1179 used in gdb the program I/O will happen in this window, so |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1180 that it does not interfere with controlling gdb. The buffer |
27321 | 1181 name is "debugged program". |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1182 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1183 The current window is used to show the source code. When gdb pauses the |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1184 source file location will be displayed, if possible. A sign is used to |
18831 | 1185 highlight the current position, using highlight group debugPC. |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1186 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1187 If the buffer in the current window is modified, another window will be opened |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1188 to display the current gdb position. You can use `:Winbar` to add a window |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1189 toolbar there. |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1190 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1191 Focus the terminal of the executed program to interact with it. This works |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1192 the same as any command running in a terminal window. |
12254 | 1193 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1194 When the debugger ends, typically by typing "quit" in the gdb window, the two |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1195 opened windows are closed. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1196 |
13682
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1197 Only one debugger can be active at a time. |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1198 *:TermdebugCommand* |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1199 If you want to give specific commands to the command being debugged, you can |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1200 use the `:TermdebugCommand` command followed by the command name and |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1201 additional parameters. > |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1202 :TermdebugCommand vim --clean -c ':set nu' |
13682
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1203 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1204 Both the `:Termdebug` and `:TermdebugCommand` support an optional "!" bang |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1205 argument to start the command right away, without pausing at the gdb window |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1206 (and cursor will be in the debugged window). For example: > |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1207 :TermdebugCommand! vim --clean |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1208 |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1209 To attach gdb to an already running executable or use a core file, pass extra |
13682
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1210 arguments. E.g.: > |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1211 :Termdebug vim core |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1212 :Termdebug vim 98343 |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1213 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1214 If no argument is given, you'll end up in a gdb window, in which you need to |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1215 specify which command to run using e.g. the gdb `file` command. |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1216 |
12254 | 1217 |
12559 | 1218 Example session ~ |
12826 | 1219 *termdebug-example* |
12559 | 1220 Start in the Vim "src" directory and build Vim: > |
1221 % make | |
18489 | 1222 Make sure that debug symbols are present, usually that means that $CFLAGS |
1223 includes "-g". | |
1224 | |
12559 | 1225 Start Vim: > |
1226 % ./vim | |
18489 | 1227 |
12559 | 1228 Load the termdebug plugin and start debugging Vim: > |
1229 :packadd termdebug | |
1230 :Termdebug vim | |
1231 You should now have three windows: | |
1232 source - where you started, has a window toolbar with buttons | |
1233 gdb - you can type gdb commands here | |
1234 program - the executed program will use this window | |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1235 |
12559 | 1236 You can use CTRL-W CTRL-W or the mouse to move focus between windows. |
1237 Put focus on the gdb window and type: > | |
1238 break ex_help | |
1239 run | |
1240 Vim will start running in the program window. Put focus there and type: > | |
1241 :help gui | |
18831 | 1242 Gdb will run into the ex_help breakpoint. The source window now shows the |
14126
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1243 ex_cmds.c file. A red "1 " marker will appear in the signcolumn where the |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1244 breakpoint was set. The line where the debugger stopped is highlighted. You |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1245 can now step through the program. Let's use the mouse: click on the "Next" |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1246 button in the window toolbar. You will see the highlighting move as the |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1247 debugger executes a line of source code. |
12559 | 1248 |
1249 Click "Next" a few times until the for loop is highlighted. Put the cursor on | |
1250 the end of "eap->arg", then click "Eval" in the toolbar. You will see this | |
1251 displayed: | |
1252 "eap->arg": 0x555555e68855 "gui" ~ | |
1253 This way you can inspect the value of local variables. You can also focus the | |
1254 gdb window and use a "print" command, e.g.: > | |
1255 print *eap | |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1256 If mouse pointer movements are working, Vim will also show a balloon when the |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1257 mouse rests on text that can be evaluated by gdb. |
12559 | 1258 |
1259 Now go back to the source window and put the cursor on the first line after | |
1260 the for loop, then type: > | |
1261 :Break | |
1262 You will see a ">>" marker appear, this indicates the new breakpoint. Now | |
1263 click "Cont" in the toolbar and the code until the breakpoint will be | |
1264 executed. | |
1265 | |
1266 You can type more advanced commands in the gdb window. For example, type: > | |
1267 watch curbuf | |
1268 Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution | |
1269 will now continue until the value of "curbuf" changes, which is in do_ecmd(). | |
1270 To remove this watchpoint again type in the gdb window: > | |
1271 delete 3 | |
1272 | |
1273 You can see the stack by typing in the gdb window: > | |
1274 where | |
1275 Move through the stack frames, e.g. with: > | |
1276 frame 3 | |
1277 The source window will show the code, at the point where the call was made to | |
1278 a deeper level. | |
1279 | |
1280 | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1281 Stepping through code ~ |
12826 | 1282 *termdebug-stepping* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1283 Put focus on the gdb window to type commands there. Some common ones are: |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1284 - CTRL-C interrupt the program |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1285 - next execute the current line and stop at the next line |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1286 - step execute the current line and stop at the next statement, |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1287 entering functions |
28517 | 1288 - until execute until past the current cursor line or past a specified |
1289 position or the current stack frame returns | |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1290 - finish execute until leaving the current function |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1291 - where show the stack |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1292 - frame N go to the Nth stack frame |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1293 - continue continue execution |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1294 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1295 *:Run* *:Arguments* |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1296 In the window showing the source code these commands can be used to control |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1297 gdb: |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1298 `:Run` [args] run the program with [args] or the previous arguments |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1299 `:Arguments` {args} set arguments for the next `:Run` |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1300 |
18130 | 1301 *:Break* set a breakpoint at the cursor position |
1302 :Break {position} | |
18343 | 1303 set a breakpoint at the specified position |
18130 | 1304 *:Clear* delete the breakpoint at the cursor position |
12833
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1305 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1306 *:Step* execute the gdb "step" command |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1307 *:Over* execute the gdb "next" command (`:Next` is a Vim command) |
28517 | 1308 *:Until* execute the gdb "until" command |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1309 *:Finish* execute the gdb "finish" command |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1310 *:Continue* execute the gdb "continue" command |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1311 *:Stop* interrupt the program |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1312 |
13051 | 1313 If 'mouse' is set the plugin adds a window toolbar with these entries: |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1314 Step `:Step` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1315 Next `:Over` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1316 Finish `:Finish` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1317 Cont `:Continue` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1318 Stop `:Stop` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1319 Eval `:Evaluate` |
13051 | 1320 This way you can use the mouse to perform the most common commands. You need |
1321 to have the 'mouse' option set to enable mouse clicks. | |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1322 *:Winbar* |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1323 You can add the window toolbar in other windows you open with: > |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1324 :Winbar |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1325 |
13592
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1326 If gdb stops at a source line and there is no window currently showing the |
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1327 source code, a new window will be created for the source code. This also |
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1328 happens if the buffer in the source code window has been modified and can't be |
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1329 abandoned. |
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1330 |
14126
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1331 Gdb gives each breakpoint a number. In Vim the number shows up in the sign |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1332 column, with a red background. You can use these gdb commands: |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1333 - info break list breakpoints |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1334 - delete N delete breakpoint N |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1335 You can also use the `:Clear` command if the cursor is in the line with the |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1336 breakpoint, or use the "Clear breakpoint" right-click menu entry. |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1337 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1338 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1339 Inspecting variables ~ |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1340 *termdebug-variables* *:Evaluate* |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1341 `:Evaluate` evaluate the expression under the cursor |
20552 | 1342 `K` same (see |termdebug_map_K| to disable) |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1343 `:Evaluate` {expr} evaluate {expr} |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1344 `:'<,'>Evaluate` evaluate the Visually selected text |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1345 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1346 This is similar to using "print" in the gdb window. |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1347 You can usually shorten `:Evaluate` to `:Ev`. |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1348 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1349 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1350 Other commands ~ |
12826 | 1351 *termdebug-commands* |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1352 *:Gdb* jump to the gdb window |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1353 *:Program* jump to the window with the running program |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1354 *:Source* jump to the window with the source code, create it if there |
13592
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1355 isn't one |
23573 | 1356 *:Asm* jump to the window with the disassembly, create it if there |
1357 isn't one | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1358 |
25619 | 1359 Events ~ |
1360 *termdebug-events* | |
1361 Four autocommands can be used: > | |
1362 au User TermdebugStartPre echomsg 'debugging starting' | |
1363 au User TermdebugStartPost echomsg 'debugging started' | |
1364 au User TermdebugStopPre echomsg 'debugging stopping' | |
1365 au User TermdebugStopPost echomsg 'debugging stopped' | |
1366 < | |
1367 *TermdebugStartPre* | |
1368 TermdebugStartPre Before starting debugging. | |
1369 Not triggered if the debugger is already | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1370 running or the debugger command cannot be |
25619 | 1371 executed. |
1372 *TermdebugStartPost* | |
1373 TermdebugStartPost After debugging has initialized. | |
1374 If a "!" bang is passed to `:Termdebug` or | |
1375 `:TermdebugCommand` the event is triggered | |
1376 before running the provided command in gdb. | |
1377 *TermdebugStopPre* | |
1378 TermdebugStopPre Before debugging ends, when gdb is terminated, | |
1379 most likely after issuing a "quit" command in | |
1380 the gdb window. | |
1381 *TermdebugStopPost* | |
1382 TermdebugStopPost After debugging has ended, gdb-related windows | |
1383 are closed, debug buffers wiped out and | |
1384 the state before the debugging was restored. | |
1385 | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1386 |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1387 Prompt mode ~ |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1388 *termdebug-prompt* |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1389 When the |+terminal| feature is not supported and on MS-Windows, gdb will run |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1390 in a buffer with 'buftype' set to "prompt". This works slightly differently: |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1391 - The gdb window will be in Insert mode while typing commands. Go to Normal |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1392 mode with <Esc>, then you can move around in the buffer, copy/paste, etc. |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1393 Go back to editing the gdb command with any command that starts Insert mode, |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1394 such as `a` or `i`. |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1395 - The program being debugged will run in a separate window. On MS-Windows |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1396 this is a new console window. On Unix, if the |+terminal| feature is |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1397 available a Terminal window will be opened to run the debugged program in. |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1398 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1399 *termdebug_use_prompt* |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1400 Prompt mode can be used even when the |+terminal| feature is present with: > |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1401 let g:termdebug_config['use_prompt'] = 1 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1402 Or if there is no g:termdebug_config: > |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1403 let g:termdebug_use_prompt = 1 |
20552 | 1404 < |
1405 *termdebug_map_K* | |
1406 The K key is normally mapped to :Evaluate. If you do not want this use: > | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1407 let g:termdebug_config['map_K'] = 0 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1408 Or if there is no g:termdebug_config: > |
20552 | 1409 let g:termdebug_map_K = 0 |
23573 | 1410 < |
1411 *termdebug_disasm_window* | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1412 If you want the Asm window shown by default, set the flag to 1. |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1413 the "disasm_window_height" entry can be used to set the window height: > |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1414 let g:termdebug_config['disasm_window'] = 1 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1415 let g:termdebug_config['disasm_window_height'] = 15 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1416 or, if there is no g:termdebug_config: > |
23573 | 1417 let g:termdebug_disasm_window = 15 |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1418 Any value greater than 1 will set the Asm window height to that value: > |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1419 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1420 Communication ~ |
12826 | 1421 *termdebug-communication* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1422 There is another, hidden, buffer, which is used for Vim to communicate with |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1423 gdb. The buffer name is "gdb communication". Do not delete this buffer, it |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1424 will break the debugger. |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1425 |
14126
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1426 Gdb has some weird behavior, the plugin does its best to work around that. |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1427 For example, after typing "continue" in the gdb window a CTRL-C can be used to |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1428 interrupt the running program. But after using the MI command |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1429 "-exec-continue" pressing CTRL-C does not interrupt. Therefore you will see |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1430 "continue" being used for the `:Continue` command, instead of using the |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1431 communication channel. |
1ce45478cbf1
patch 8.1.0080: can't see the breakpoint number in the terminal debugger
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
1432 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1433 |
12254 | 1434 Customizing ~ |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1435 *termdebug-customizing* *g:termdebug_config* |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1436 In the past several global variables were used for configuration. These are |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1437 deprecated, using the g:termdebug_config dictionary is preferred. When |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1438 g:termdebug_config exists the other global variables will not be used. |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1439 |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1440 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1441 GDB command ~ |
25619 | 1442 *g:termdebugger* |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1443 To change the name of the gdb command, set "debugger" entry in |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1444 g:termdebug_config or the "g:termdebugger" variable before invoking |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1445 `:Termdebug`: > |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1446 let g:termdebug_config['command'] = "mygdb" |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1447 Or if there is no g:termdebug_config: > |
25619 | 1448 let g:termdebugger = "mygdb" |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1449 |
26708 | 1450 If the command needs an argument use a List: > |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1451 let g:termdebug_config['command'] = ['rr', 'replay', '--'] |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1452 Or if there is no g:termdebug_config: > |
26708 | 1453 let g:termdebugger = ['rr', 'replay', '--'] |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1454 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1455 Several arguments will be added to make gdb work well for the debugger. |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1456 If you want to modify them, add a function to filter the argument list: > |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1457 let g:termdebug_config['command_filter'] = MyDebugFilter |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1458 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1459 If you do not want the arguments to be added, but you do need to set the |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1460 "pty", use a function to add the necessary arguments: > |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1461 let g:termdebug_config['command_add_args'] = MyAddArguments |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1462 The function will be called with the list of arguments so far, and a second |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1463 argument that is the name of the pty. |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1464 *gdb-version* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1465 Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
1466 interface. The "new-ui" command requires gdb version 7.12 or later. if you |
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
1467 get this error: |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12559
diff
changeset
|
1468 Undefined command: "new-ui". Try "help".~ |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12559
diff
changeset
|
1469 Then your gdb is too old. |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1470 |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1471 |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1472 Colors~ |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1473 *hl-debugPC* *hl-debugBreakpoint* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1474 The color of the signs can be adjusted with these highlight groups: |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1475 - debugPC the current position |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1476 - debugBreakpoint a breakpoint |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1477 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1478 The defaults are, when 'background' is "light": |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1479 hi debugPC term=reverse ctermbg=lightblue guibg=lightblue |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1480 hi debugBreakpoint term=reverse ctermbg=red guibg=red |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1481 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1482 When 'background' is "dark": |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1483 hi debugPC term=reverse ctermbg=darkblue guibg=darkblue |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1484 hi debugBreakpoint term=reverse ctermbg=red guibg=red |
12254 | 1485 |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1486 |
16871 | 1487 Shortcuts *termdebug_shortcuts* |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1488 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1489 You can define your own shortcuts (mappings) to control gdb, that can work in |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1490 any window, using the TermDebugSendCommand() function. Example: > |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1491 map ,w :call TermDebugSendCommand('where')<CR> |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1492 The argument is the gdb command. |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1493 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1494 |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1495 Popup menu *termdebug_popup* |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1496 |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1497 By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1498 these entries to the popup menu: |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1499 Set breakpoint `:Break` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1500 Clear breakpoint `:Clear` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1501 Evaluate `:Evaluate` |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1502 If you don't want this then disable it with: > |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1503 let g:termdebug_config['popup'] = 0 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1504 or if there is no g:termdebug_config: > |
13377
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1505 let g:termdebug_popup = 0 |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1506 |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1507 |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1508 Vim window width *termdebug_wide* |
1ffba37fd222
patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Christian Brabandt <cb@256bit.org>
parents:
13304
diff
changeset
|
1509 |
22958 | 1510 To change the width of the Vim window when debugging starts and use a vertical |
1511 split: > | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1512 let g:termdebug_config['wide'] = 163 |
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1513 Or if there is no g:termdebug_config: > |
22958 | 1514 let g:termdebug_wide = 163 |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1515 |
22958 | 1516 This will set 'columns' to 163 when `:Termdebug` is used. The value is |
1517 restored when quitting the debugger. | |
1518 | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1519 If the wide value is set and 'columns' is already a greater value, then a |
22958 | 1520 vertical split will be used without modifying 'columns'. |
1521 | |
28976
ad63d6a8ed21
patch 8.2.5010: the terminal debugger uses various global variables
Bram Moolenaar <Bram@vim.org>
parents:
28517
diff
changeset
|
1522 Set the wide value to 1 to use a vertical split without ever changing |
22958 | 1523 'columns'. This is useful when the terminal can't be resized by Vim. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1524 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1525 |
14421 | 1526 vim:tw=78:ts=8:noet:ft=help:norl: |