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