当前位置:首页>Linux>Linux + VS Code 开发效率工具:Snippets 入门指南

Linux + VS Code 开发效率工具:Snippets 入门指南

  • 2026-07-01 09:31:38
Linux + VS Code 开发效率工具:Snippets 入门指南
在日常开发中,我们经常会重复输入一些固定格式的代码,比如
intmain() {return0;}

或者:

for (inti=0i<n++i) {}

再比如 CMake 项目中经常写:

target_include_directories(app    PRIVATE${CMAKE_CURRENT_SOURCE_DIR}/include)

这些代码本身不难,但重复输入会浪费时间,也容易因为手误产生小问题。

这时候,Snippets 就派上用场了。

本文主要结合 Linux + VS Code + C++/CMake 开发环境,介绍 Snippets 的基本用法。内容分为六部分:

  1. Snippets 是什么?

  2. Snippets 有什么作用?

  3. Snippets 怎么用?

  4. 使用 Snippets 时的常见问题

  5. 总结


一、Snippets 是什么?

Snippets,中文通常叫做代码片段

简单来说,它是一种“代码模板自动展开”功能。

你可以提前定义一段常用代码,并给它设置一个简短的触发词。以后写代码时,只需要输入这个触发词,再按 Tab 或 Enter,VS Code 就会自动帮你展开成完整代码。

例如,我们定义一个 C++ 的 main 函数代码片段:

{"C++ Main": {"prefix""maincpp","body": ["#include <iostream>","","int main() {","    $0","    return 0;","}"    ],"description""C++ main 函数"  }}

以后在 .cpp 文件中输入:

maincpp

按下 Tab,就会自动生成:

#include <iostream>intmain() {return0;}

其中,$0 表示代码展开后,光标最终停留的位置。


二、Snippets 有什么作用?

Snippets 的核心作用就是:

减少重复输入,提高编码效率,统一代码风格。

对于机器人开发、C++ 项目开发、算法验证、ROS 工程、CMake 项目管理等场景,Snippets 都非常实用。


1. 快速生成常用代码结构

在 C++ 开发中,我们经常会写一些固定结构,例如:

  • main 函数

  • for 循环

  • class 类

  • struct 结构体

  • namespace

  • try-catch

  • std::cout

  • debug 输出语句

例如定义一个 for 循环 snippet:

{"For Loop": {"prefix""fori","body": ["for (int ${1:i} = 0; ${1:i} < ${2:n}; ++${1:i}) {","    $0","}"    ],"description""普通 for 循环"  }}

输入:

fori

展开后:

for (inti=0i<n++i) {}

这里的 ${1:i}${2:n} 是占位符。展开后可以按 Tab 在不同占位符之间跳转。


2. 减少重复代码,提高开发速度

比如 C++ 中常用的快速 IO:

std::ios::sync_with_stdio(false);std::cin.tie(nullptr);

可以配置成:

{"Fast IO": {"prefix""fio","body": ["std::ios::sync_with_stdio(false);","std::cin.tie(nullptr);"    ],"description""C++ 快速 IO"  }}

以后只需要输入:

fio

就能快速生成这两行代码。


3. 统一团队或个人代码风格

在项目开发中,一些代码结构最好保持统一,比如:

  • 类定义格式

  • 头文件保护格式

  • 日志输出格式

  • 单元测试模板

  • CMake 目标定义方式

例如 C++ 类模板:

{"Class": {"prefix""class","body": ["class ${1:ClassName} {","public:","    ${1:ClassName}() = default;","    ~${1:ClassName}() = default;","","private:","    $0","};"    ],"description""C++ class 模板"  }}

展开后:

classClassName {public:ClassName() =default;~ClassName() =default;private:};

这样可以让项目代码更加规范。


4. 辅助 CMake 项目开发

机器人相关开发经常会涉及 CMake,例如 ROS、ROS 2、传感器驱动、运动控制库、算法模块等都离不开 CMake。

Snippets 可以帮助我们快速生成 CMake 常用配置。

例如:

{"CMake Minimal C++ Project": {"prefix""cmakemin","body": ["cmake_minimum_required(VERSION ${1:3.16})","","project(${2:MyProject} LANGUAGES CXX)","","set(CMAKE_CXX_STANDARD ${3:17})","set(CMAKE_CXX_STANDARD_REQUIRED ON)","set(CMAKE_EXPORT_COMPILE_COMMANDS ON)","","add_executable(${4:app}","    src/main.cpp",")"    ],"description""最小 C++ CMake 项目模板"  }}

在 CMakeLists.txt 中输入:

cmakemin

即可生成基础 CMake 项目结构。


5. 配合变量和正则表达式生成更智能的代码

VS Code snippets 支持一些内置变量,例如:

变量含义
$TM_FILENAME当前文件名
$TM_FILENAME_BASE不带扩展名的文件名
$CURRENT_YEAR当前年份
$CURRENT_MONTH当前月份
$CURRENT_DATE当前日期
$SELECTED_TEXT当前选中的文本

例如,根据当前文件名自动生成类名:

{"Class From File Name": {"prefix""classfile","body": ["class ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/} {","public:","    ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}() = default;","    ~${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}() = default;","","private:","    $0","};"    ],"description""根据文件名生成 PascalCase 类"  }}

假设当前文件名是:

user_service.cpp

展开后会生成:

classUserService {public:UserService() =default;~UserService() =default;private:};

这就是 snippet 中正则转换的典型应用。


三、Snippets 怎么用?

下面以 VS Code 为例,介绍 Snippets 的实际配置方法。


1. 打开 Snippets 配置入口

在 VS Code 中按:

Ctrl + Shift + P

打开命令面板,然后输入:

Configure User Snippets

然后选择对应语言的 snippets 文件。

如果是 C++,选择:

cpp.json

如果是 CMake,选择:

cmake.json

如果想创建所有语言都能用的 snippets,可以选择:

New Global Snippets file...

2. Snippet 的基本结构

一个 snippet 通常由四部分组成:

{"Snippet Name": {"prefix""trigger","body": ["code line 1","code line 2"    ],"description""description text"  }}

字段含义如下:

字段作用
Snippet Name代码片段名称
prefix触发词
body展开后的代码内容
description描述信息

例如:

{"Cout": {"prefix""cout","body": ["std::cout << ${1:value} << '\\n';"    ],"description""std::cout 输出"  }}

输入:

cout

展开后:

std::cout<<value<<'\n';

3. 占位符用法

Snippets 中最常用的语法是占位符。

$1$2$3

表示光标跳转顺序。

{"Function": {"prefix""func","body": ["${1:void} ${2:functionName}(${3:params}) {","    $0","}"    ],"description""普通函数模板"  }}

展开后:

voidfunctionName(params) {}

光标会依次跳转到:

  1. void

  2. functionName

  3. params

  4. 函数体


$0

表示最终光标停留位置。

{"If Statement": {"prefix""if","body": ["if (${1:condition}) {","    $0","}"    ],"description""if 语句"  }}

相同编号会同步修改

例如:

{"For Loop": {"prefix""fori","body": ["for (int ${1:i} = 0; ${1:i} < ${2:n}; ++${1:i}) {","    $0","}"    ],"description""for 循环"  }}

展开后:

for (inti=0i<n++i) {}

如果把第一个 i 改成 j,后面的 i 也会同步变成 j


4. 选项占位符

Snippets 还支持选项选择。

语法如下:

${1|选项1,选项2,选项3|}

例如 CMake 中经常用到 PRIVATEPUBLICINTERFACE

{"CMake Target Include Directories": {"prefix""targetinc","body": ["target_include_directories(${1:target}","    ${2|PRIVATE,PUBLIC,INTERFACE|}","        ${3:${CMAKE_CURRENT_SOURCE_DIR}/include}",")"    ],"description""给目标添加 include 目录"  }}

展开时可以选择:

PRIVATE

或者:

PUBLIC

或者:

INTERFACE

5. 变量用法

VS Code snippets 支持内置变量。

例如文件头注释:

{"File Header": {"prefix""header","body": ["/**"," * @file $TM_FILENAME"," * @brief ${1:Description}"," * @date $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"," */","","$0"    ],"description""文件头注释"  }}

假设当前文件名是 main.cpp,展开后可能得到:

/*** @file main.cpp* @brief Description* @date 2026-05-14*/

6. 正则转换用法

Snippet 中还可以使用正则表达式对变量或占位符进行转换。

基本语法是:

${变量/正则/替换内容/选项}

例如,把当前文件名转换成大写:

{"Uppercase Filename": {"prefix""upfile","body": ["${TM_FILENAME_BASE/(.*)/${1:/upcase}/}"    ],"description""文件名转大写"  }}

如果当前文件是:

hello.cpp

展开结果:

HELLO

常见转换方式:

写法作用
${1:/upcase}转大写
${1:/downcase}转小写
${1:/capitalize}首字母大写
${1:/camelcase}转 camelCase
${1:/pascalcase}转 PascalCase

7. 常用 C++ snippets 示例

下面是一组适合 C++ 日常开发的 snippets,可以放到 cpp.json 中。

{"C++ Main": {"prefix""maincpp","body": ["#include <iostream>","","int main() {","    $0","    return 0;","}"    ],"description""C++ main 函数"  },"C++ Main With Fast IO": {"prefix""mainfast","body": ["#include <iostream>","","int main() {","    std::ios::sync_with_stdio(false);","    std::cin.tie(nullptr);","","    $0","","    return 0;","}"    ],"description""带快速 IO 的 C++ main 函数"  },"Fast IO": {"prefix""fio","body": ["std::ios::sync_with_stdio(false);","std::cin.tie(nullptr);"    ],"description""C++ 快速 IO"  },"For Loop": {"prefix""fori","body": ["for (int ${1:i} = 0; ${1:i} < ${2:n}; ++${1:i}) {","    $0","}"    ],"description""普通 for 循环"  },"Range Based For Loop": {"prefix""fore","body": ["for (const auto& ${1:item} : ${2:container}) {","    $0","}"    ],"description""范围 for 循环"  },"Cout": {"prefix""cout","body": ["std::cout << ${1:value} << '\\n';"    ],"description""std::cout 输出"  },"Debug Print": {"prefix""dbg","body": ["std::cerr << \"${1:var} = \" << ${1:var} << '\\n';"    ],"description""调试输出变量"  },"Class": {"prefix""class","body": ["class ${1:ClassName} {","public:","    ${1:ClassName}() = default;","    ~${1:ClassName}() = default;","","private:","    $0","};"    ],"description""C++ class 模板"  },"Pragma Once": {"prefix""once","body": ["#pragma once","","$0"    ],"description""头文件 pragma once"  }}

8. 常用 CMake snippets 示例

下面是一组适合 CMakeLists.txt 的 snippets,可以放到 cmake.json 中。

{"CMake Minimal C++ Project": {"prefix""cmakemin","body": ["cmake_minimum_required(VERSION ${1:3.16})","","project(${2:MyProject} LANGUAGES CXX)","","set(CMAKE_CXX_STANDARD ${3:17})","set(CMAKE_CXX_STANDARD_REQUIRED ON)","set(CMAKE_CXX_EXTENSIONS OFF)","set(CMAKE_EXPORT_COMPILE_COMMANDS ON)","","add_executable(${4:app}","    src/main.cpp",")"    ],"description""最小 C++ CMake 项目模板"  },"CMake Add Executable": {"prefix""addexe","body": ["add_executable(${1:app}","    ${2:src/main.cpp}",")"    ],"description""添加可执行文件目标"  },"CMake Target Include Directories": {"prefix""targetinc","body": ["target_include_directories(${1:target}","    ${2|PRIVATE,PUBLIC,INTERFACE|}","        ${3:${CMAKE_CURRENT_SOURCE_DIR}/include}",")"    ],"description""给目标添加 include 目录"  },"CMake Target Link Libraries": {"prefix""targetlink","body": ["target_link_libraries(${1:target}","    ${2|PRIVATE,PUBLIC,INTERFACE|}","        ${3:library}",")"    ],"description""给目标链接库"  },"CMake Target Compile Options": {"prefix""targetopts","body": ["target_compile_options(${1:target}","    PRIVATE","        -Wall","        -Wextra","        -Wpedantic",")"    ],"description""给目标添加编译选项"  }}

四、使用 Snippets 时的常见问题

1. 输入触发词后没有提示怎么办?

可以检查以下几点:

文件语言模式是否正确

VS Code 右下角应该显示当前语言类型,例如:

C++

或者:

CMake

如果语言模式不对,snippet 可能不会触发。


snippet 是否放到了正确文件中

C++ snippets 应该放在:

cpp.json

CMake snippets 应该放在:

cmake.json

JSON 格式是否正确

Snippet 配置是 JSON 格式,常见错误包括:

  • 少写逗号

  • 多写逗号

  • 引号没有闭合

  • 花括号没有配对

  • 反斜杠没有正确转义


是否启用了 Tab 补全

可以在 VS Code 设置中添加:

{"editor.tabCompletion""on"}

也可以输入触发词后按:

Ctrl + Space

手动调出补全菜单。


2. 特殊字符怎么写?

由于 snippets 写在 JSON 文件中,所以有些字符需要转义。

双引号

如果想生成:

std::cout<<"hello"<<'\n';

在 snippet 中需要写成:

"std::cout << \"hello\" << '\\n';"

反斜杠

如果想生成 C++ 里的 \n,可以写:

"std::cout << ${1:value} << '\\n';"

或者:

"std::cout << ${1:value} << \"\\n\";"

3. 正则中的反斜杠要双写

例如正则中的:

\d+

在 JSON 字符串里要写成:

"\\d+"

这是因为 JSON 本身也使用反斜杠作为转义字符。


五、总结

Snippets 是一个非常轻量但实用的开发效率工具。

它的核心思想很简单:

把经常重复输入的代码结构,提前做成模板,需要时通过触发词快速展开。

对于 C++ 和机器人开发来说,Snippets 可以帮助我们快速生成:

  • C++ 基础代码结构

  • 类、函数、循环、调试语句

  • CMake 项目配置

  • 测试模板

  • 文件头注释

  • 根据文件名生成类名或宏定义

它并不会改变你的编程能力,但可以明显减少机械重复输入,让你把更多精力放在算法、架构和业务逻辑上。

如果你平时使用 Linux + VS Code 进行 C++、CMake、ROS 或机器人相关开发,非常推荐花一点时间配置一套自己的 snippets。配置一次,长期受益。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 11:18:09 HTTP/2.0 GET : https://f.mffb.com.cn/a/493815.html
  2. 运行时间 : 0.247070s [ 吞吐率:4.05req/s ] 内存消耗:4,868.33kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=777e5dd15914fbeb64b50c23f90a4a23
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000341s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000575s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000327s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000277s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000542s ]
  6. SELECT * FROM `set` [ RunTime:0.000222s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000591s ]
  8. SELECT * FROM `article` WHERE `id` = 493815 LIMIT 1 [ RunTime:0.020938s ]
  9. UPDATE `article` SET `lasttime` = 1783048689 WHERE `id` = 493815 [ RunTime:0.002410s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.010105s ]
  11. SELECT * FROM `article` WHERE `id` < 493815 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001680s ]
  12. SELECT * FROM `article` WHERE `id` > 493815 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.024705s ]
  13. SELECT * FROM `article` WHERE `id` < 493815 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.029937s ]
  14. SELECT * FROM `article` WHERE `id` < 493815 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.073739s ]
  15. SELECT * FROM `article` WHERE `id` < 493815 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014109s ]
0.248555s