如何在已包含代码段的情况下使用Tab键完成到新代码段?

问题描述

如果我已经在摘要中,并且按了-rwxr-xr-x 1 root root 4027496 Jul 20 10:50 myisamchk -rwxr-xr-x 1 root root 3916200 Jul 20 10:50 myisam_ftdump -rwxr-xr-x 1 root root 3894296 Jul 20 10:50 myisamlog -rwxr-xr-x 1 root root 3945448 Jul 20 10:50 myisampack -rwxr-xr-x 1 root root 3608840 Jul 20 10:50 my_print_defaults -rwxr-xr-x 1 root root 3908456 Jul 20 10:50 MysqL -rwxr-xr-x 1 root root 3799752 Jul 20 10:50 MysqLadmin lrwxrwxrwx 1 root root 10 Jul 20 10:50 MysqLanalyze -> MysqLcheck -rwxr-xr-x 1 root root 4068280 Jul 20 10:50 MysqLbinlog -rwxr-xr-x 1 root root 3825320 Jul 20 10:50 MysqLcheck -rwxr-xr-x 1 root root 5350 Jul 20 10:50 MysqL_config -rwxr-xr-x 1 root root 3627200 Jul 20 10:50 MysqL_config_editor -rwxr-xr-x 1 root root 26952 Jul 20 10:50 MysqLd_multi -rwxr-xr-x 1 root root 27790 Jul 20 10:50 MysqLd_safe -rwxr-xr-x 1 root root 3875176 Jul 20 10:50 MysqLdump -rwxr-xr-x 1 root root 7865 Jul 20 10:50 MysqLdumpslow -rwxr-xr-x 1 root root 22627736 Jul 20 10:50 MysqL_embedded -rwxr-xr-x 1 root root 3791912 Jul 20 10:50 mysqlimport -rwxr-xr-x 1 root root 5224224 Jul 20 10:50 MysqL_install_db lrwxrwxrwx 1 root root 10 Jul 20 10:50 MysqLoptimize -> MysqLcheck -rwxr-xr-x 1 root root 3616952 Jul 20 10:50 MysqL_plugin -rwxr-xr-x 1 root root 4286152 Jul 20 10:50 MysqLpump lrwxrwxrwx 1 root root 10 Jul 20 10:50 MysqLrepair -> MysqLcheck -rwxr-xr-x 1 root root 39016 Jan 12 2018 MysqLreport -rwxr-xr-x 1 root root 3788520 Jul 20 10:50 MysqL_secure_installation -rwxr-xr-x 1 root root 3790504 Jul 20 10:50 MysqLshow -rwxr-xr-x 1 root root 3809512 Jul 20 10:50 MysqLslap -rwxr-xr-x 1 root root 3653288 Jul 20 10:50 MysqL_ssl_rsa_setup -rwxr-xr-x 1 root root 3569976 Jul 20 10:50 MysqL_tzinfo_to_sql -rwxr-xr-x 1 root root 4446416 Jul 20 10:50 MysqL_upgrade ,我将进入下一个占位符。但是,如果我已经在一个占位符中,并且已经键入了一个会触发另一个代码段的前缀,那么如果按Tab键,我将继续执行下一个占位符,而不是扩展刚刚输入的前缀。有没有办法扩展我在摘要中键入的前缀?

这是一个例子:

tab

如果我输入 "test": { "prefix": "t","body": "|${1}|${2}",},"text": { "prefix": "a","body": "asdfghjkl",} ,我将转到:t
如果我在第一个占位符中键入||并按Tab键,将得到:a,将光标放在$ {2}占位符处
我想得到:|a|

解决方法

主要问题是,键入a后,您将拥有|a|,而vscode不会将a识别为代码段前缀。似乎|a要进行vscode。因此,如果您实际上将第二个前缀设为|,那么该前缀将被识别为该前缀,例如:

"text": {
  "prefix": "|a","body": "asdfghjkl",}

您仍然需要 Ctrl + Space 来显示建议,而 Enter 来接受建议。一个 Tab 将会转到下一个制表位

或者,如果您可以插入空格

"test4": {
  "prefix": "t","body": "| ${1}|${2}",// space added here
},

那么您不必修改第二个片段。


另外,请确保您拥有

Editor > Suggest: Snippets Prevent Quick Suggestions

已禁用(默认为启用),因此您可以在第一个代码段中触发建议-但如上所述,您必须使用 Ctrl + Space 手动触发它们

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...