云溪的 blog
  • Archive
  • Media
  • Search
  • Tags
  • About

vscode 自定义代码片段

实现效果 起因 最近在写一个全新的项目,在项目中频繁创建各种类,这就导致很多重复的东西需要频繁的写,例如类名,命名空间,继承关系…那么有没有一种 办法能解决这个问题呢? 提出设想 我想起了,最初用 sublime text 的时候,可以利用代码片段功能大段的生成html代码,当时就觉得十分的方便,那么 vscode 有没有这个功能呢?经过 google 之后我知道 vscode 是有代码片段功能的。既然有了想法,也具备了基础实施条件,那么接下来开始尝试实现之前的想法。 资料查询 经过一番 google 后发现对于 vscode snippet 介绍都在相对基础的简单应用(只是一些插入固定代码和光标介绍),者显然无法实现我们生成类名和明明空间的想法,google 无果,那么只能看看 vscode 官方文档果然有意想不到的收获,看完官网介绍后,基本就确定此路是可行的。 snippet 示例 在 File > Preferences (Code > Preferences on macOS) 中选择 User Snippets 在弹出框里选择对应的代码片段语言,我这里使用的是php "Print to console": { "prefix": "log", "body": [ "console.log('$1');", "$2" ], "description": "Log output to console" } 在打开的 php.json 中有示例代码: Print to console 代码片段名称 prefix 插件前缀 body 插件内容可以是字符串,也可以为数组,若为数组每个元素都做为单独的一行插入。 description 插件描述 Snippet 语法 制表位(Tabstops) 使用制表位(Tabstops)可是在代码片段中移动光标位置,使用$1,$2来指定光标的位置,数字代表光标的移动的顺序,值得注意的时$0代表光标的最后位置。如果有多个相同的制表位(Tabstops)会在编译器里同时出现多个光标(类似编译器的块编辑模式)。...

March 9, 2019 · 2 min · 云溪

编译安装php常见问题

configure: error: libxml2 not found. 详细错误如下: configure: error: libxml2 not found. Please check your libxml2 installation. make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target 'install'. Stop. 解决方法: $ sudo apt-get install libxml2-dev configure: error: png.h not found. 详细错误如下: configure: error: png.h not found. make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target 'install'. Stop....

February 24, 2019 · 1 min · 云溪

virtualbox 分享文件夹,无权访问问题

背景 在 windows 下使用 virtualbox 安装 linux 系统 实现 windows 下开发虚拟机里跑测试的效果 起因 由于项目使用文件目录是可以在 windows 和 linux 下共享的,因此使用 virtualbox 共享文件夹功能来实现项目文件夹在两个系统间共享,配置好共享文件后,发现在虚拟机的 linux 系统中没有权限操作目录. 百度之后发现原来是因为共享文件夹挂在后的文件是属于 vboxsf 组下的,而登陆用户不属于该组,因而无权对目录进行操作。 解决方法 既然知道原因,解决办法也是非常简单的就是将当前登录的用户加入 vboxsf 用户组即可: $ sudo usermod -aG vboxsf $(whoami) 需要注意的是该操作需要重启系统才能生效。

February 24, 2019 · 1 min · 云溪

gorm常见问题

sql: Scan error on column index 5, name “created_at”: unsupported Scan, storing driver.Value type []uint8 into type *time.Time DATETIME转换问题 执行Rows.Scan()时报告错误 原因是在调用sql.Open()时没有将parseTime设置为True。加入parseTime即可修复问题: db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true") invalid memory address or nil pointer dereference on simple learning example. Maybe a bug with latest version 代码实例 package main import ( "net/http" "strconv" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" ) var db *gorm.DB func init() { var err error db, err := gorm.Open("postgres", "host=localhost user=postgres dbname=postgres sslmode=disable password=pass") if err !...

December 22, 2018 · 1 min · 云溪

Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1

使用 gorm 插入数据时爆出 Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1 的错误信息,搜索之后发现原来是因为 msyql5.7 及以上不允许时间戳字段插入 ‘0000-00-00’ 数据,修复方法也比较简单,去掉sql_model 中的 NO_ZERO_DATE 配置即可 方式一 sql 配置 使用 select @@GLOBAL.sql_mode; 查出原有的配置信息,将配置信息去除 NO_ZERO_DATE 并复制 使用 SET GLOBAL sql_mode = '去除 NO_ZERO_DATE 后的剩余配置项' 经过以上步骤就可以完成设置了。 方式二 配置文件配置 打开 mysql 配置文件: $ sodo vim /etc/my.cnf 在 [mysqld] 配置项下插入 sql_mode 配置 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION 重启 mysql 完成配置 sql_model 参数详解 ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中 NO_AUTO_VALUE_ON_ZERO: 该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。 STRICT_TRANS_TABLES: 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE: 在严格模式下,不允许日期和月份为零 NO_ZERO_DATE: 设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。 ERROR_FOR_DIVISION_BY_ZERO: 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL NO_AUTO_CREATE_USER: 禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION: 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常 PIPES_AS_CONCAT: 将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似 ANSI_QUOTES: 启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符 参考链接 Error 1292 on update a row

December 22, 2018 · 1 min · 云溪
« Prev  Next  »
© 2026 云溪的 blog 备案号: 苏ICP备2026029040号-1