Mercurial > vim
annotate runtime/doc/terminal.txt @ 22081:2b9a2bc77b42 v8.2.1590
patch 8.2.1590: Vim9: bufnr() doesn't take "true" argument
Commit: https://github.com/vim/vim/commit/fe136c9a85412f4bdb5de70ef8416af5fa382b28
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Sep 4 18:35:26 2020 +0200
patch 8.2.1590: Vim9: bufnr() doesn't take "true" argument
Problem: Vim9: bufnr() doesn't take "true" argument.
Solution: use tv_get_bool_chk(). (closes https://github.com/vim/vim/issues/6863)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 04 Sep 2020 18:45:04 +0200 |
parents | 661eb972cb22 |
children | d4c7b3e9cd17 |
rev | line source |
---|---|
20753 | 1 *terminal.txt* For Vim version 8.2. Last change: 2020 Jun 06 |
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| |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
42 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
|
43 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
|
44 Customizing |termdebug-customizing| |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 |
12254 | 46 {only available when compiled with the |+terminal| feature} |
15878 | 47 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
|
48 |
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 1. Basic use *terminal-use* |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 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
|
53 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
|
54 :term bash |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
56 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
|
57 :term make myprogram |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 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
|
60 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
|
61 |
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
|
62 |
11814
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
63 Typing ~ |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
64 *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
|
65 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
|
66 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
|
67 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
|
68 |
16023 | 69 *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
|
70 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
|
71 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
|
72 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
|
73 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
|
74 |
18831 | 75 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
|
76 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
|
77 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
|
78 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
|
79 CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode| |
16023 | 80 CTRL-W " {reg} paste register {reg} *t_CTRL-W_quote* |
11914 | 81 Also works with the = register to insert the result of |
82 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
|
83 CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C| |
16023 | 84 CTRL-W gt go to next tabpage, same as `gt` *t_CTRL-W_gt* |
85 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
|
86 |
13735 | 87 See option 'termwinkey' for specifying another key instead of CTRL-W that |
88 will work like CTRL-W. However, typing 'termwinkey' twice sends 'termwinkey' | |
89 to the job. For example: | |
90 'termwinkey' CTRL-W move focus to the next window | |
91 'termwinkey' : enter an Ex command | |
92 '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
|
93 '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
|
94 'termwinkey' CTRL-\ send a CTRL-\ to the job in the terminal |
13735 | 95 'termwinkey' N go to terminal Normal mode, see below |
16023 | 96 'termwinkey' CTRL-N same as CTRL-W N |t_CTRL-W_N| |
97 '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
|
98 *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
|
99 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
|
100 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
|
101 *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
|
102 CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
103 CTRL-BREAK will also kill the job. |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
104 |
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
105 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
|
106 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
|
107 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
|
108 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
|
109 |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
110 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
|
111 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
|
112 sent to the job running in the terminal. For example, to make F1 switch |
12559 | 113 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
|
114 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
|
115 You can use Esc, but you need to make sure it won't cause other keys to |
20753 | 116 break (cursor keys start with an Esc, so they may break), this probably only |
117 works in the GUI: > | |
12559 | 118 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
|
119 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
|
120 |
14952
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
14695
diff
changeset
|
121 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
|
122 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
|
123 |
20241 | 124 *options-in-terminal* |
12559 | 125 After opening the terminal window and setting 'buftype' to "terminal" the |
14123 | 126 TerminalOpen autocommand event is triggered. This makes it possible to set |
12559 | 127 options specifically for the window and buffer. Example: > |
14123 | 128 au TerminalOpen * if &buftype == 'terminal' | setlocal bufhidden=hide | endif |
129 The <abuf> is set to the terminal buffer, but if there is no window (hidden | |
130 terminal) then setting options will happen in the wrong buffer, therefore the | |
131 check for &buftype in the example. | |
12457
dfb8254aa735
patch 8.0.1108: cannot specify mappings for the terminal window
Christian Brabandt <cb@256bit.org>
parents:
12455
diff
changeset
|
132 |
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
|
133 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
|
134 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
|
135 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
|
136 |
11814
d3d0db111d17
patch 8.0.0787: cannot send CTRL-W command to terminal job
Christian Brabandt <cb@256bit.org>
parents:
11774
diff
changeset
|
137 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
138 Size and color ~ |
12826 | 139 *terminal-size-color* |
13735 | 140 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
|
141 (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
|
142 |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
143 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
|
144 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
|
145 |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
146 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
|
147 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
|
148 |
13100
656ab57d1ddc
update a few runtime files
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
149 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
|
150 example: > |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
151 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
|
152 The highlight needs to be defined before the terminal is created. Doing it |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
153 later, or setting 'wincolor', will only have effect when the program running |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
154 in the terminal displays text or clears the terminal. |
d73d982499ae
patch 8.2.0455: cannot set the highlight group for a specific terminal
Bram Moolenaar <Bram@vim.org>
parents:
19303
diff
changeset
|
155 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
|
156 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
|
157 |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13592
diff
changeset
|
158 *g:terminal_ansi_colors* |
13735 | 159 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
|
160 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
|
161 `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
|
162 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
|
163 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
|
164 the underlying terminal. |
20552 | 165 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
|
166 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
|
167 |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
|
168 |
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
|
169 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
170 Command syntax ~ |
11774
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
171 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
172 :[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
|
173 Open a new terminal window. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
174 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
175 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
|
176 the input and output to the terminal. |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
177 If [command] is not given the 'shell' option is used. |
12254 | 178 if [command] is NONE no job is started, the pty of the |
179 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
|
180 |
13476
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
181 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
|
182 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
|
183 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
|
184 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
|
185 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
|
186 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
|
187 |
20241 | 188 No Vim command can follow, any | is included in |
189 [command]. Use `:execute` if you must have a Vim | |
190 command following in the same line. | |
191 | |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
192 A new buffer will be created, using [command] or |
11914 | 193 'shell' as the name, prefixed with a "!". If a buffer |
194 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
|
195 parentheses. E.g. if "gdb" exists the second terminal |
11914 | 196 buffer will use "!gdb (1)". |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
197 |
12192
6947d5bcf57f
patch 8.0.0976: cannot send lines to a terminal job
Christian Brabandt <cb@256bit.org>
parents:
12160
diff
changeset
|
198 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
|
199 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
|
200 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
|
201 ++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
|
202 |
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
203 *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
|
204 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
|
205 ++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
|
206 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
|
207 |terminal-close| |
13476
d130044d4f1f
patch 8.0.1612: need to close terminal after shell stopped
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
208 ++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
|
209 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
|
210 ++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
|
211 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
|
212 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
|
213 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
|
214 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
|
215 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
216 ++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
|
217 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
|
218 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
|
219 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
|
220 ++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
|
221 no window will be used. |
13437 | 222 ++norestore Do not include this terminal window |
223 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
|
224 ++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
|
225 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
|
226 `:!command` *E279* |
39b0c28fe495
patch 8.1.2251: ":term command" may not work without a shell
Bram Moolenaar <Bram@vim.org>
parents:
18489
diff
changeset
|
227 {only works on Unix currently} |
13438
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
228 ++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
|
229 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
|
230 |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
|
231 ++rows={height} Use {height} for the terminal window |
13125 | 232 height. If the terminal uses the full |
233 Vim height (no window above or below | |
14006 | 234 the terminal window) the command line |
13125 | 235 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
|
236 ++cols={width} Use {width} for the terminal window |
13125 | 237 width. If the terminal uses the full |
238 Vim width (no window left or right of | |
239 the terminal window) this value is | |
240 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
|
241 ++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
|
242 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
|
243 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
|
244 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
|
245 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
|
246 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
|
247 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
|
248 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
|
249 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
|
250 ++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
|
251 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
|
252 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
|
253 ++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
|
254 {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
|
255 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
|
256 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
|
257 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
258 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
|
259 function. |
14637 | 260 If you want to split the window vertically, use: > |
261 :vertical terminal | |
262 < Or short: > | |
263 :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
|
264 |
13438
33eea5ce5415
patch 8.0.1593: :qall never exits with an active terminal window
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
265 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
|
266 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
|
267 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
|
268 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
|
269 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
|
270 :term ++kill=term tail -f /tmp/log |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
271 |
12267
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
272 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
|
273 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
|
274 `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
|
275 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
|
276 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
|
277 |
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
|
278 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
|
279 `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
|
280 |
e3bde71afff0
patch 8.0.1013: terminal window behaves different from a buffer with changes
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
281 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
|
282 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
|
283 current window into a terminal window. If there are unsaved changes this |
14006 | 284 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
|
285 |
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
|
286 *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
|
287 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
|
288 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
|
289 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
|
290 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
|
291 |
12064
407a475c67fd
patch 8.0.0912: cannot run a job in a hidden terminal
Christian Brabandt <cb@256bit.org>
parents:
12031
diff
changeset
|
292 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
|
293 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
|
294 :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
|
295 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
|
296 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
|
297 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
298 *E947* *E948* |
11967
12833414cc02
patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents:
11965
diff
changeset
|
299 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
|
300 cannot be quit easily, see |abandon|. |
11914 | 301 |
302 When the job has finished and no changes were made to the buffer: closing the | |
303 window will wipe out the buffer. | |
304 | |
305 Before changes can be made to a terminal buffer, the 'modifiable' option must | |
306 be set. This is only possible when the job has finished. At the first change | |
307 the buffer will become a normal buffer and the highlighting is removed. | |
308 You may want to change the buffer name with |:file| to be able to write, since | |
309 the buffer name will still be set to the command. | |
310 | |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
311 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
312 Resizing ~ |
12826 | 313 *terminal-resizing* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
314 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
|
315 |
13735 | 316 1. The 'termwinsize' option is empty: The terminal size follows the window |
317 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
|
318 |
13735 | 319 2. The 'termwinsize' option is "rows*cols", where "rows" is the minimal number |
320 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
|
321 |
13735 | 322 3. The 'termwinsize' option is "rowsXcols" (where the x is upper or lower |
323 case). The terminal size is fixed to the specified number of screen lines | |
324 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
|
325 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
326 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
|
327 be seen (the lower-left part). |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
328 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
329 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
|
330 terminal. |term_setsize()| can be used only when in the first or second mode, |
13735 | 331 not when 'termwinsize' is "rowsXcols". |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
332 |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
333 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
334 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
|
335 *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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 |
13735 | 341 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
|
342 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
|
343 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
|
344 |
12487
3f16cf18386c
patch 8.0.1123: cannot define a toolbar for a window
Christian Brabandt <cb@256bit.org>
parents:
12457
diff
changeset
|
345 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
|
346 |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
|
347 |
13680
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
348 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
|
349 |
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
350 *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
|
351 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
|
352 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
|
353 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
|
354 '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
|
355 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
|
356 |
12031
9897241c08b5
patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents:
11967
diff
changeset
|
357 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
|
358 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
|
359 "(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
|
360 |
13680
c32e9628dc30
patch 8.0.1712: terminal scrollback is not limited
Christian Brabandt <cb@256bit.org>
parents:
13668
diff
changeset
|
361 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
|
362 the top, those lines are remembered and can be seen in Terminal-Normal mode. |
13735 | 363 The number of lines is limited by the 'termwinscroll' option. When going over |
13912 | 364 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
|
365 |
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
|
366 |
12254 | 367 Cursor style ~ |
12826 | 368 *terminal-cursor-style* |
12254 | 369 By default the cursor in the terminal window uses a not blinking block. The |
370 normal xterm escape sequences can be used to change the blinking state and the | |
371 shape. Once focus leaves the terminal window Vim will restore the original | |
372 cursor. | |
373 | |
374 An exception is when xterm is started with the "-bc" argument, or another way | |
375 that causes the cursor to blink. This actually means that the blinking flag | |
376 is inverted. Since Vim cannot detect this, the terminal window cursor | |
377 blinking will also be inverted. | |
378 | |
379 | |
13437 | 380 Session ~ |
381 *terminal-session* | |
382 A terminal window will be restored when using a session file, if possible and | |
383 wanted. | |
384 | |
385 If "terminal" was removed from 'sessionoptions' then no terminal windows will | |
386 be restored. | |
387 | |
388 If the job in the terminal was finished the window will not be restored. | |
389 | |
390 If the terminal can be restored, the command that was used to open it will be | |
391 used again. To change this use the |term_setrestore()| function. This can | |
392 also be used to not restore a specific terminal by setting the command to | |
393 "NONE". | |
394 | |
395 | |
12826 | 396 Special keys ~ |
397 *terminal-special-keys* | |
398 Since the terminal emulator simulates an xterm, only escape sequences that | |
399 both Vim and xterm recognize will be available in the terminal window. If you | |
400 want to pass on other escape sequences to the job running in the terminal you | |
401 need to set up forwarding. Example: > | |
402 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
|
403 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
|
404 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
|
405 return '' |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
406 endfunc |
12826 | 407 |
408 | |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
409 Unix ~ |
12826 | 410 *terminal-unix* |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
411 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
|
412 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
|
413 |
11914 | 414 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
|
415 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
|
416 $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
|
417 start with "xterm" |
11914 | 418 ROWS number of rows in the terminal initially |
419 LINES same as ROWS | |
420 COLUMNS number of columns in the terminal initially | |
421 COLORS number of colors, 't_Co' (256*256*256 in the GUI) | |
422 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
|
423 VIM_TERMINAL v:version |
11914 | 424 |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
425 |
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
426 MS-Windows ~ |
12826 | 427 *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
|
428 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
|
429 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
|
430 window. |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
431 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
432 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
|
433 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
434 winpty.dll |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
435 winpty-agent.exe |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
436 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
437 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
|
438 |
edf1a2a247fa
patch 8.0.0769: build problems with terminal on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
439 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
|
440 |
12160
b80c0172d1a8
patch 8.0.0960: job in terminal does not get CTRL-C
Christian Brabandt <cb@256bit.org>
parents:
12064
diff
changeset
|
441 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
|
442 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
|
443 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
|
444 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
|
445 *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
|
446 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
|
447 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
|
448 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
|
449 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
|
450 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
|
451 ConPTY problems have been fixed "winpty" will be preferred. |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
452 |
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
|
453 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
|
454 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
|
455 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
456 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
457 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
458 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
|
459 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
460 *term_dumpdiff()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
461 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
|
462 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
|
463 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
|
464 |term_dumpwrite()|. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
465 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
|
466 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
|
467 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
|
468 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
469 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
|
470 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
|
471 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
|
472 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
|
473 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
474 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
|
475 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
|
476 "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
|
477 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
|
478 "term_rows" vertical 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
|
479 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
|
480 "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
|
481 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
|
482 "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
|
483 "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
|
484 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
|
485 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
|
486 "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
|
487 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
|
488 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
|
489 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
|
490 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
|
491 "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
|
492 session file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
493 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
494 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
|
495 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
|
496 used: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
497 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
|
498 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
|
499 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
|
500 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
|
501 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
|
502 + 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
|
503 - missing position in second file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
504 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
505 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
|
506 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
|
507 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
508 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
|
509 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
|
510 < |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
511 *term_dumpload()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
512 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
|
513 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
|
514 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
|
515 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
|
516 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
|
517 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
518 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
|
519 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
520 Can also be used as a |method|: > |
18343 | 521 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
|
522 < |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
523 *term_dumpwrite()* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
524 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
|
525 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
|
526 {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
|
527 |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
|
528 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
|
529 *E958* |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
530 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
|
531 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
|
532 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
533 {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
|
534 "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
|
535 "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
|
536 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
537 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
|
538 name: > |
18343 | 539 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
|
540 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
541 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
|
542 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
|
543 screen. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
544 {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
|
545 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
546 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
|
547 GetBufnr()->term_getaltscreen() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
548 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
549 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
550 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
|
551 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
|
552 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
|
553 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
|
554 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
|
555 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
|
556 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
557 {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
|
558 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
|
559 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
560 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
|
561 GetBufnr()->term_getansicolors() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
562 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
563 < {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
|
564 |+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
|
565 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
566 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
|
567 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
|
568 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
|
569 bold |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
570 italic |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
571 underline |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
572 strike |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
573 reverse |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
574 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
575 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
|
576 GetAttr()->term_getattr() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
577 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
578 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
579 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
|
580 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
|
581 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
|
582 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
583 "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
|
584 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
|
585 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
|
586 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
587 "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
|
588 "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
|
589 is hidden. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
590 "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
|
591 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
|
592 "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
|
593 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
|
594 "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
|
595 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
596 {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
|
597 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
|
598 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
|
599 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
600 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
|
601 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
|
602 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
603 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
|
604 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
|
605 {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
|
606 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
|
607 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
608 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
|
609 GetBufnr()->term_getjob() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
610 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
611 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
612 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
|
613 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
|
614 {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
|
615 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
616 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
|
617 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
|
618 returned. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
619 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
620 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
|
621 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
622 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
|
623 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
|
624 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
625 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
626 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
|
627 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
|
628 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
|
629 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
|
630 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
|
631 < 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
|
632 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
|
633 < (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
|
634 |
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()|. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
636 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
637 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
|
638 GetBufnr()->term_getscrolled() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
639 |
17259
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 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
|
642 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
|
643 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
|
644 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
|
645 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
646 {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
|
647 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
|
648 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
|
649 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
650 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
|
651 GetBufnr()->term_getsize() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
652 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
653 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
654 term_getstatus({buf}) *term_getstatus()* |
19099 | 655 Get the status of terminal {buf}. This returns a String with |
656 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
|
657 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
|
658 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
|
659 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
|
660 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
|
661 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
662 {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
|
663 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
|
664 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
|
665 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
666 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
|
667 GetBufnr()->term_getstatus() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
668 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
669 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
670 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
|
671 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
|
672 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
|
673 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
674 {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
|
675 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
|
676 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
|
677 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
678 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
|
679 GetBufnr()->term_gettitle() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
680 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
681 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
682 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
|
683 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
|
684 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
|
685 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
686 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
|
687 (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
|
688 (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
|
689 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
690 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
|
691 GetBufnr()->term_gettty() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
692 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
693 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
694 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
|
695 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
|
696 terminal windows. |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
697 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
698 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
699 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
|
700 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
|
701 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
|
702 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
703 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
|
704 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
|
705 returned. |
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 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
|
708 "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
|
709 "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
|
710 "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
|
711 "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
|
712 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
|
713 "width" cell width: 1 or 2 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
714 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
715 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
|
716 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
|
717 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
718 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
719 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
|
720 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
|
721 {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
|
722 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
723 {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
|
724 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
|
725 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
726 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
|
727 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
|
728 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
729 |
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
|
730 term_setapi({buf}, {expr}) *term_setapi()* |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
731 Set the function name prefix to be used for the |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
|
732 function in terminal {buf}. For example: > |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
733 :call term_setapi(buf, "Myapi_") |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
734 :call term_setapi(buf, "") |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
735 < |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
736 The default is "Tapi_". When {expr} is an empty string then |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
737 no |terminal-api| function can be used for {buf}. |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
738 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
739 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
|
740 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
|
741 {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
|
742 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
|
743 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
|
744 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
745 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
|
746 0 black |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
747 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
|
748 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
|
749 3 brown |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
750 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
|
751 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
|
752 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
|
753 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
|
754 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
|
755 9 red |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
756 10 green |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
757 11 yellow |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
758 12 blue |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
759 13 magenta |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
760 14 cyan |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
761 15 white |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
762 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
763 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
|
764 '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
|
765 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
|
766 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
|
767 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
768 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
|
769 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
|
770 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
771 < {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
|
772 feature} |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
773 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
774 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
|
775 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
|
776 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
|
777 be stopped. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
778 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
|
779 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
|
780 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
|
781 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
|
782 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
783 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
|
784 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
|
785 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
786 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
|
787 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
|
788 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
789 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
790 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
|
791 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
|
792 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
|
793 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
|
794 < 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
|
795 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
796 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
|
797 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
|
798 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
799 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
|
800 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
|
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 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
803 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
|
804 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
|
805 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
|
806 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
|
807 changed. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
808 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
809 {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
|
810 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
|
811 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
|
812 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
813 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
|
814 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
|
815 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
816 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
817 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
|
818 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
|
819 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
820 {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
|
821 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
|
822 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
|
823 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
|
824 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
825 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
|
826 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
|
827 message. |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
828 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
|
829 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
830 {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
|
831 |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
|
832 are supported: |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
833 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
|
834 "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
|
835 "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
|
836 "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
|
837 "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
|
838 "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
|
839 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
|
840 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
|
841 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
|
842 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
843 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
|
844 "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
|
845 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
|
846 "term_rows" vertical 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
|
847 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
|
848 "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
|
849 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
|
850 "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
|
851 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
|
852 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
|
853 "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
|
854 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
|
855 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
|
856 "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
|
857 "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
|
858 session file |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
859 "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
|
860 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
|
861 "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
|
862 "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
|
863 "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
|
864 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
|
865 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
|
866 "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
|
867 "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
|
868 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
|
869 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
|
870 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
|
871 "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
|
872 "Terminal" |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
873 "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
|
874 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
|
875 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
|
876 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
|
877 "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
|
878 "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
|
879 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
|
880 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
|
881 "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
|
882 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
|
883 "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
|
884 |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
|
885 |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
|
886 |
18033
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
887 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
|
888 GetCommand()->term_start() |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
889 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
890 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
891 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
|
892 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
|
893 {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
|
894 {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
|
895 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
|
896 |
049a7481d737
patch 8.1.2012: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
897 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
|
898 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
|
899 |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
900 ============================================================================== |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
901 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
|
902 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
903 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
|
904 - 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
|
905 - 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
|
906 - 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
|
907 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
|
908 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
909 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
910 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
|
911 *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
|
912 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
|
913 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
|
914 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
|
915 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
|
916 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
917 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
|
918 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
|
919 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
|
920 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
921 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
|
922 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
|
923 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
|
924 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
925 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
926 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
|
927 *terminal-api* |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
928 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
|
929 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
|
930 <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
|
931 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
932 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
|
933 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
|
934 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
|
935 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
936 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
|
937 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
938 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
|
939 |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
940 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
|
941 The function is called with two arguments: the buffer number |
18831 | 942 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
|
943 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
|
944 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
|
945 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
|
946 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
|
947 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
|
948 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
|
949 ["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
|
950 < 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
|
951 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
|
952 if len(a:arglist) == 2 |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
953 echomsg "impression " . a:arglist[0] |
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
954 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
|
955 endif |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
956 endfunc |
13547
87a9c1be0ae3
patch 8.0.1647: terminal API may call any user function
Christian Brabandt <cb@256bit.org>
parents:
13535
diff
changeset
|
957 < 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
|
958 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
|
959 |
13575
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
960 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
|
961 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
962 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
|
963 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
|
964 open a new window to edit {filename}. |
13857 | 965 Note that both the job and Vim may change the current |
966 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
|
967 |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
968 [options] is only used when opening a new window. If present, |
19968 | 969 it must be a Dict. Similarly to |++opt|, these entries are |
16808 | 970 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
|
971 "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
|
972 "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
|
973 "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
|
974 "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
|
975 "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
|
976 "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
|
977 "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
|
978 "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
|
979 "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
|
980 |++bad| |
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
981 |
13535
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
982 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
|
983 ["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
|
984 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
985 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
|
986 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
|
987 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
|
988 redraw |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
989 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
|
990 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
991 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
|
992 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
|
993 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
994 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
995 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
|
996 *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
|
997 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
|
998 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
|
999 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
|
1000 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1001 $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
|
1002 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1003 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
|
1004 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
|
1005 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
|
1006 |
e9ffb5b35266
patch 8.0.1641: job in terminal can't communicate with Vim
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
1007 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1008 4. Remote testing *terminal-testing* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1009 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1010 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
|
1011 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
|
1012 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
|
1013 inspects the resulting screen state. |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1014 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1015 Functions ~ |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1016 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1017 |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
|
1018 |term_wait()| wait for screen to be updated |
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1019 |term_scrape()| inspect terminal screen |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1020 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1021 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1022 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1023 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
|
1024 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1025 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
|
1026 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
|
1027 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
|
1028 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
|
1029 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1030 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
|
1031 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
|
1032 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
|
1033 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
|
1034 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1035 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1036 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
|
1037 *terminal-dumptest* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1038 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
|
1039 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
|
1040 - Write a file you want to test with. This is useful for testing syntax |
19303 | 1041 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
|
1042 - 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
|
1043 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
|
1044 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
|
1045 command. |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1046 - 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
|
1047 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
|
1048 - 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
|
1049 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
|
1050 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
|
1051 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
|
1052 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
|
1053 - 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
|
1054 - 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
|
1055 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1056 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
|
1057 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
|
1058 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
|
1059 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1060 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
|
1061 and the failed dump, e.g.: > |
18719 | 1062 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
|
1063 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1064 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
|
1065 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
|
1066 reference: > |
18719 | 1067 :!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
|
1068 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1069 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1070 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
|
1071 *terminal-screendump* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1072 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1073 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
|
1074 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
|
1075 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
|
1076 :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
|
1077 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1078 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
|
1079 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1080 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
|
1081 :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
|
1082 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1083 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
|
1084 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
|
1085 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
|
1086 :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
|
1087 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1088 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
|
1089 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
|
1090 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1091 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
|
1092 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1093 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1094 Comparing screen dumps ~ |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1095 *terminal-diffscreendump* |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1096 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1097 |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
|
1098 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
|
1099 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
|
1100 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1101 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
|
1102 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
|
1103 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
|
1104 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
|
1105 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1106 You can usually see what differs in the second part. Use the 'ruler' to |
14695 | 1107 relate it to the position in the first or second dump. Letters indicate the |
1108 kind of difference: | |
1109 X different character | |
1110 > cursor in first but not in second | |
1111 < cursor in second but not in first | |
1112 w character width differs (single vs double width) | |
1113 f foreground color differs | |
1114 b background color differs | |
1115 a attribute differs (bold, underline, reverse, etc.) | |
1116 ? character missing in both | |
1117 + character missing in first | |
1118 - 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
|
1119 |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13476
diff
changeset
|
1120 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
|
1121 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
|
1122 |
013c44d9dc09
patch 8.0.1526: no test using a screen dump yet
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
1123 ============================================================================== |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
16871
diff
changeset
|
1124 6. Debugging *terminal-debug* *terminal-debugger* |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1125 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1126 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
|
1127 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
|
1128 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
|
1129 |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1130 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
|
1131 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
|
1132 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
|
1133 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1134 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1135 Starting ~ |
12826 | 1136 *termdebug-starting* |
12254 | 1137 Load the plugin with this command: > |
1138 packadd termdebug | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1139 < *:Termdebug* |
14519 | 1140 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
|
1141 command name, for example: > |
12559 | 1142 :Termdebug vim |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1143 |
12254 | 1144 This opens two windows: |
13051 | 1145 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1146 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
|
1147 can directly interact with gdb. The buffer name is "!gdb". |
13051 | 1148 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1149 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
|
1150 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
|
1151 that it does not interfere with controlling gdb. The buffer |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1152 name is "gdb program". |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1153 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1154 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
|
1155 source file location will be displayed, if possible. A sign is used to |
18831 | 1156 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
|
1157 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1158 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
|
1159 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
|
1160 toolbar there. |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1161 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1162 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
|
1163 the same as any command running in a terminal window. |
12254 | 1164 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1165 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
|
1166 opened windows are closed. |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1167 |
13682
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1168 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
|
1169 *:TermdebugCommand* |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1170 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
|
1171 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
|
1172 additional parameters. > |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1173 :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
|
1174 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1175 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
|
1176 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
|
1177 (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
|
1178 :TermdebugCommand! vim --clean |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1179 |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1180 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
|
1181 arguments. E.g.: > |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1182 :Termdebug vim core |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1183 :Termdebug vim 98343 |
fc660a6ef37d
patch 8.0.1713: terminal debugger doesn't handle arguments
Christian Brabandt <cb@256bit.org>
parents:
13680
diff
changeset
|
1184 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1185 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
|
1186 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
|
1187 |
12254 | 1188 |
12559 | 1189 Example session ~ |
12826 | 1190 *termdebug-example* |
12559 | 1191 Start in the Vim "src" directory and build Vim: > |
1192 % make | |
18489 | 1193 Make sure that debug symbols are present, usually that means that $CFLAGS |
1194 includes "-g". | |
1195 | |
12559 | 1196 Start Vim: > |
1197 % ./vim | |
18489 | 1198 |
12559 | 1199 Load the termdebug plugin and start debugging Vim: > |
1200 :packadd termdebug | |
1201 :Termdebug vim | |
1202 You should now have three windows: | |
1203 source - where you started, has a window toolbar with buttons | |
1204 gdb - you can type gdb commands here | |
1205 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
|
1206 |
12559 | 1207 You can use CTRL-W CTRL-W or the mouse to move focus between windows. |
1208 Put focus on the gdb window and type: > | |
1209 break ex_help | |
1210 run | |
1211 Vim will start running in the program window. Put focus there and type: > | |
1212 :help gui | |
18831 | 1213 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
|
1214 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
|
1215 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
|
1216 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
|
1217 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
|
1218 debugger executes a line of source code. |
12559 | 1219 |
1220 Click "Next" a few times until the for loop is highlighted. Put the cursor on | |
1221 the end of "eap->arg", then click "Eval" in the toolbar. You will see this | |
1222 displayed: | |
1223 "eap->arg": 0x555555e68855 "gui" ~ | |
1224 This way you can inspect the value of local variables. You can also focus the | |
1225 gdb window and use a "print" command, e.g.: > | |
1226 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
|
1227 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
|
1228 mouse rests on text that can be evaluated by gdb. |
12559 | 1229 |
1230 Now go back to the source window and put the cursor on the first line after | |
1231 the for loop, then type: > | |
1232 :Break | |
1233 You will see a ">>" marker appear, this indicates the new breakpoint. Now | |
1234 click "Cont" in the toolbar and the code until the breakpoint will be | |
1235 executed. | |
1236 | |
1237 You can type more advanced commands in the gdb window. For example, type: > | |
1238 watch curbuf | |
1239 Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution | |
1240 will now continue until the value of "curbuf" changes, which is in do_ecmd(). | |
1241 To remove this watchpoint again type in the gdb window: > | |
1242 delete 3 | |
1243 | |
1244 You can see the stack by typing in the gdb window: > | |
1245 where | |
1246 Move through the stack frames, e.g. with: > | |
1247 frame 3 | |
1248 The source window will show the code, at the point where the call was made to | |
1249 a deeper level. | |
1250 | |
1251 | |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1252 Stepping through code ~ |
12826 | 1253 *termdebug-stepping* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1254 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
|
1255 - 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
|
1256 - 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
|
1257 - 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
|
1258 entering functions |
db9ffed7e1fc
patch 8.0.1293: setting a breakpoint in the terminal debugger sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
12826
diff
changeset
|
1259 - 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
|
1260 - 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
|
1261 - 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
|
1262 - continue continue execution |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1263 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1264 *:Run* *:Arguments* |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1265 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
|
1266 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
|
1267 `: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
|
1268 `: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
|
1269 |
18130 | 1270 *:Break* set a breakpoint at the cursor position |
1271 :Break {position} | |
18343 | 1272 set a breakpoint at the specified position |
18130 | 1273 *: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
|
1274 |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1275 *: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
|
1276 *:Over* execute the gdb "next" command (`:Next` is a Vim command) |
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1277 *: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
|
1278 *: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
|
1279 *: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
|
1280 |
13051 | 1281 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
|
1282 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
|
1283 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
|
1284 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
|
1285 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
|
1286 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
|
1287 Eval `:Evaluate` |
13051 | 1288 This way you can use the mouse to perform the most common commands. You need |
1289 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
|
1290 *: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
|
1291 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
|
1292 :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
|
1293 |
13592
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1294 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
|
1295 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
|
1296 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
|
1297 abandoned. |
a64485061f75
patch 8.0.1668: terminal debugger: can't re-open source code window
Christian Brabandt <cb@256bit.org>
parents:
13589
diff
changeset
|
1298 |
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
|
1299 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
|
1300 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
|
1301 - 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
|
1302 - 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
|
1303 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
|
1304 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
|
1305 |
12425
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1306 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1307 Inspecting variables ~ |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1308 *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
|
1309 `:Evaluate` evaluate the expression under the cursor |
20552 | 1310 `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
|
1311 `: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
|
1312 `:'<,'>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
|
1313 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1314 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
|
1315 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
|
1316 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1317 |
29d21591ad6b
patch 8.0.1092: terminal debugger can't evaluate expressions
Christian Brabandt <cb@256bit.org>
parents:
12411
diff
changeset
|
1318 Other commands ~ |
12826 | 1319 *termdebug-commands* |
13706
bfd9249f72e0
patch 8.0.1725: terminal debugger doesn't handle command arguments
Christian Brabandt <cb@256bit.org>
parents:
13682
diff
changeset
|
1320 *: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
|
1321 *: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
|
1322 *: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
|
1323 isn't one |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1324 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1325 |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1326 Prompt mode ~ |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1327 *termdebug-prompt* |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1328 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
|
1329 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
|
1330 - 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
|
1331 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
|
1332 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
|
1333 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
|
1334 - 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
|
1335 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
|
1336 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
|
1337 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1338 *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
|
1339 Prompt mode can be used even when the |+terminal| feature is present with: > |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1340 let g:termdebug_use_prompt = 1 |
20552 | 1341 < |
1342 *termdebug_map_K* | |
1343 The K key is normally mapped to :Evaluate. If you do not want this use: > | |
1344 let g:termdebug_map_K = 0 | |
14107
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1345 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1346 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1347 Communication ~ |
12826 | 1348 *termdebug-communication* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1349 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
|
1350 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
|
1351 will break the debugger. |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1352 |
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
|
1353 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
|
1354 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
|
1355 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
|
1356 "-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
|
1357 "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
|
1358 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
|
1359 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1360 |
12254 | 1361 Customizing ~ |
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
|
1362 |
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
|
1363 GDB command *termdebug-customizing* |
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
|
1364 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1365 To change the name of the gdb command, set the "termdebugger" variable before |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1366 invoking `:Termdebug`: > |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1367 let termdebugger = "mygdb" |
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
|
1368 < *gdb-version* |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1369 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
|
1370 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
|
1371 get this error: |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12559
diff
changeset
|
1372 Undefined command: "new-ui". Try "help".~ |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12559
diff
changeset
|
1373 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
|
1374 |
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
|
1375 |
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
|
1376 Colors *hl-debugPC* *hl-debugBreakpoint* |
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
|
1377 |
12411
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1378 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
|
1379 - debugPC the current position |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1380 - debugBreakpoint a breakpoint |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1381 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1382 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
|
1383 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
|
1384 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
|
1385 |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1386 When 'background' is "dark": |
5d4d744151c2
patch 8.0.1085: terminal debugger can't set breakpoints
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
1387 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
|
1388 hi debugBreakpoint term=reverse ctermbg=red guibg=red |
12254 | 1389 |
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
|
1390 |
16871 | 1391 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
|
1392 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1393 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
|
1394 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
|
1395 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
|
1396 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
|
1397 |
274c9f1fbfd2
patch 8.1.0071: terminal debugger only works with the terminal feature
Christian Brabandt <cb@256bit.org>
parents:
14063
diff
changeset
|
1398 |
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
|
1399 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
|
1400 |
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
|
1401 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
|
1402 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
|
1403 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
|
1404 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
|
1405 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
|
1406 If you don't want this then disable it 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
|
1407 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
|
1408 |
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
|
1409 |
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
|
1410 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
|
1411 |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1412 To change the width of the Vim window when debugging starts, and use a |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1413 vertical split: > |
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1414 let g:termdebug_wide = 163 |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14126
diff
changeset
|
1415 This will set &columns to 163 when `:Termdebug` is used. The value is restored |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1416 when quitting the debugger. |
14123 | 1417 If g:termdebug_wide is set and &columns is already larger than |
12559 | 1418 g:termdebug_wide then a vertical split will be used without changing &columns. |
1419 Set it to 1 to get a vertical split without every changing &columns (useful | |
1420 for when the terminal can't be resized by Vim). | |
12455
85ddf8e00595
patch 8.0.1107: terminal debugger jumps to non-existing file
Christian Brabandt <cb@256bit.org>
parents:
12425
diff
changeset
|
1421 |
11621
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1422 |
b8299e742f41
patch 8.0.0693: no terminal emulator support
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1423 |
14421 | 1424 vim:tw=78:ts=8:noet:ft=help:norl: |