1010< body >
1111 < h1 > VIM学习笔记 终端模式的快捷键映射(tmap)</ h1 >
1212
13- < h2 class ="article "> < a id ="" > </ a > </ h2 >
13+ < h2 class ="article "> < a id ="cmd_:tmap " > :tmap命令 </ a > </ h2 >
1414 < p > </ p >
1515 < a href ="# " title =""> </ a >
1616 < p > 在内置的终端窗口中,为了能正常使用外部 shell 本身的快捷键,Vim 禁用了绝大部分快捷键。也就是说,在内置终端窗口中键入shell命令,既不是插入模式也不是命令行模式,所以imap与cmap都不会生效。Vim为此定义了一种特殊模式,叫做终端作业(Terminal-Job)模式。如果希望为终端作业模式自定义快捷键,那么需要使用< code > :tmap</ code > 命令。</ p >
1717 < p > 例如定义< kbd > Shift+Insert</ kbd > 键,用于在终端中粘贴系统剪切板的内容:</ p >
1818 < p style ="text-indent:2em "> < code class ="inset "> :tmap <S-Insert> <C-W>"+</ code > </ p >
19- < p > 请注意,在内置终端窗口中,< kbd > Esc</ kbd > 键也保留为外部shell所用,并不会返回到普通模式。</ p >
19+ < p > 请注意:在内置终端窗口中,< kbd > Esc</ kbd > 键也保留为外部shell所用,并不会返回到终端普通(Terminal-Normal)模式。</ p >
20+ < p > 可以点击< kbd > Ctrl-\ Ctrl-N</ kbd > 快捷键,返回到终端普通模式。请参考< code class ="inset "> :help CTRL-\_CTRL-N</ code > 帮助信息。</ li >
21+ < p > 也可以自定义< kbd > Shift+Del</ kbd > 键,用于返回到终端普通模式:</ p >
22+ < p style ="text-indent:2em "> < code class ="inset "> :tnoremap <S-Del> <C-\><C-N></ code > </ p >
23+ < p > 在内置终端窗口中,点击< kbd > i</ kbd > 或< kbd > a</ kbd > 键,则可以返回做终端作业模式,继续执行命令。</ p >
24+ < p > 使用以下命令,可以删除所有终端作业模式的键盘映射:</ p >
25+ < p style ="text-indent:2em "> < code class ="inset "> :tmapclear</ code > </ p >
2026
21- < h2 class ="article "> < a id ="opt_termwinkey "> termwinkey </ a > </ h2 >
27+ < h2 class ="article "> < a id ="opt_termwinkey "> termwinkey选项 </ a > </ h2 >
2228 < p > 'termwinkey'选项,用于设置终端窗口中引导为< kbd > <CTRL-W></ kbd > 系列命令的键。其默认值为空,即在终端窗口与普通窗口中,< kbd > <CTRL-W></ kbd > 引导的快捷键含义保持一致。</ p >
29+ < p style ="text-indent:2em "> < code class ="inset "> :set termwinkey?</ code > </ p >
30+ < p style ="text-indent:2em "> < code class ="msg "> termwinkey=</ code > </ p >
2331 < p > 使用默认选项的好处在于,不论是在普通窗口还是在终端窗口之中,点击< kbd > <CTRL-Ww></ kbd > 键都可以切换到下一窗口;点击< kbd > <CTRL-Wp></ kbd > 键都可以切换到之前所在窗口。也就是说,适用于普通窗口的< kbd > <CTRL-W></ kbd > 快捷键,也同样适用于终端窗口。</ p >
24- < p > 使用< kbd > <CTRL-W:></ kbd > 快捷键,则可以进入vim命令行 。</ p >
32+ < p > 使用< kbd > <CTRL-W:></ kbd > 快捷键,则可以在内置终端中进入vim命令行模式 。</ p >
2533 < p > 请注意,为了保持操作的一致性,不建议对'termwinkey'选项进行修改。</ p >
2634 < p > < a href ="https://yyq123.github.io/learn-vim/images/.png " title =""> < img src ="https://yyq123.github.io/learn-vim/images/.png " alt ="" width ="500 " height ="" /> </ a > </ p >
27- < p > 自定义< kbd > Shift-Tab</ kbd > 键,用于切换至下一普通窗口或终端窗口:</ p >
28- < p style ="text-indent:2em "> < code class ="inset "> :map <S-Tab> <C-W>w</ code > </ p >
2935
3036 < p style ="color:gray; font-size:0.6em "> < a href ="http://yyq123.github.io/learn-vim/images/.png " title =""> < img src ="http://yyq123.github.io/learn-vim/images/.png " alt ="" /> </ a > </ br > Source: medium.com/free-code-camp</ p >
3137
@@ -38,24 +44,15 @@ <h2 class="article"><a id="opt_termwinkey">termwinkey</a></h2>
3844 </ ul >
3945
4046 < span style ="font-weight:bold; color:#4169E1; margin-left:0.2em "> ?</ span >
41- < p style ="text-indent:2em "> < code class ="inset "> :help :tmap </ code > </ p >
47+ < p style ="text-indent:2em "> < code class ="inset "> :h terminal-input </ code > </ p >
4248
43- < table summary ="Commands " border ="1 " frame ="border " rules ="all " cellspacing ="0 " cellpadding ="3 ">
44- < caption style ="margin:0.5em; font-weight:bold "> 选项列表</ caption >
45- < thead >
46- < tr > < th style ="white-space: nowrap "> 选项</ th > < th > 描述</ th > < th > 帮助信息</ th > </ tr >
47- </ thead >
48- < tbody >
49- < tr > < td > < code class ="inset "> !</ code > </ td > < td > 如果包含,表示。例如,。</ td > < td style ="white-space: nowrap "> < code class ="inset "> :help viminfo-!</ code > </ td > </ tr >
50- </ tbody >
51- </ table >
5249
5350 < table summary ="Commands " border ="2 " frame ="hsides " rules ="all " cellspacing ="0 " cellpadding ="3 ">
5451 < caption > 命令小结</ caption >
5552 < tbody >
56- < tr > < td > < code class ="inset "> :</ code > </ td > < td rowspan =" 2 " > </ td > </ tr >
57- < tr > < td > < code class ="inset "> :</ code > </ td > </ tr >
58- < tr > < td > < code class ="inset "> :</ code > </ td > < td > </ td > </ tr >
53+ < tr > < td > < code class ="inset "> :tmap </ code > </ td > < td > 创建终端作业模式的键盘映射 </ td > < td > < code class =" inset " > :help :tmap </ code > </ td > </ tr >
54+ < tr > < td > < code class ="inset "> :tmapclear </ code > </ td > < td > 删除所有终端作业模式的键盘映射 </ td > < td > < code class =" inset " > :help :tmapc </ code > </ td > </ tr >
55+ < tr > < td > < code class ="inset "> :set termwinkey </ code > </ td > < td > 设置终端窗口中引导CTRL-W系列命令的键 </ td > < td > < code class =" inset " > :help termwinkey </ code > </ td > </ tr >
5956 < tr > < td > < code class ="inset "> :</ code > </ td > < td > </ td > </ tr >
6057 < tr > < td > < code class ="inset "> :</ code > </ td > < td > </ td > </ tr >
6158 </ tbody >
0 commit comments