玩转vscode

ubuntu玩转vscode

主要内容:ubuntu 使用vscode实现日常的各种需求,如何写书?golang编程,大幅度提升自己的效率

vscode之golang编程

ubuntu之基础构建

基础软件设施安装

shell 篇
  • 一句话安装zsh sudo apt-get install git zsh wget -y; sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
编程篇
  • vscode 官网下载安装,使用自带的应用市场安装,可能会不能使用中文输入法
golang IDC
  • golang.org 下载最新的golang 版本
  • 安装目录一般将基础环境放在/opt下
  • 创建gopath ,编辑 ~/.zshrc ,设置环境变量GOROOT, GOPATH, PATH指定GOROOT,GOPATH , 配置环境变量 GO111MODULE=on, 开启 go mod,机器重启

vscode 插件

插件选择

  • go
  • koroFileHeader

插件配置

{
    "go.goroot": "GOROOT",
    "go.gopath": "GOPATH",
    "go.inferGopath": true,
    "go.autocompleteUnimportedPackages": true,
    "go.gocodePackageLookupMode": "go",
    "go.gotoSymbol.includeImports": true,
    "go.useCodeSnippetsOnFunctionSuggest": true,
    "go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
    "go.docsTool": "gogetdoc",
    "go.useLanguageServer": true,
    "go.alternateTools": {
        "go-langserver": "gopls",
    },
    "go.languageServerExperimentalFeatures": {
    "format": true,
    "autoComplete": true,
    "gopls": {
        "enablePlaceholders": true,
    },
},
"fileheader.customMade": {
    "Author": "jaxiu",
    "GitHub": "https://github.com/hexiu",
    "Date": "Do not edit", // 文件创建时间(不变)
    "LastEditors": "jaxiu", // 文件最后编辑者
    "LastEditTime": "Do not edit" // 文件最后编辑时间
},
"fileheader.configObj": {
    "beforeAnnotation": {
        "py": "#!/usr/bin/env python\n# coding:UTF-8", // py文件默认,可修改
        "sh": "#!/bin/bash\n# " // sh文件默认,可修改
    },
    "language": {
        "languagetest": {
        "head": "/$$",
        "middle": " $ @",
        "end": " $/"
    },
    "sh": {
        "head": "##",
        "middle": " # @",
        "end": "##"
    },
    "py": {
        "head": "'''",
        "middle": " @",
        "end": "'''"
    },
    "go": {
        "head": "///",
        "middle": " // @",
        "end": "//"
    },
    "java": {
        "head": "/**",
        "middle": " * @",
        "end": " */"
    }
    },
    "autoAdd": false, // 自动添加头部注释开启才能自动添加
    "autoAlready": false, // 默认开启:只让支持的语言,自动添加头部注释. false:所有文件自动添加头部注释
    },
    "http.proxy": "http://domain:12345",
    "go.coverOnTestPackage": false,
    "files.autoSave": "afterDelay",
    "editor.formatOnSave": true,
    "window.zoomLevel": 1,
    "[go]": {
    },
}

通过以上的配置,vscode 已经完全可以驾驭golang编程

vscode 之 markdown高级用法

基础环境构建

七牛云账号注册
  • 打开 七牛云官网 ,注册七牛云用户
  • 进入控制台
  • 点击对象存储
  • 初始化一个空间,后续vscode 默认上传的图片在这里
  • 打开个人中心的密钥管理初始化一对密钥,这是api上传使用的凭证。
  • 拿着这些信息,以及七牛云分配的域名配置vscode的七牛云插件 (此处的插件配置是页面化的
vscode 插件安装
  • markdownlint
  • paste image to qiniu
vscode 插件配置
  • 此处参考七牛云账号注册模块

markdown 使用测试

  • 使用Vscode书写markdown,然后去复制一个图片粘贴到粘贴版,在vscode中按快捷键 : Ctrl + Alt + V
  • 文件上传成功的截图
  • 这里可能会有上传失败的问题,可以看以下github下的issues
  • 使用issues中的打包版本替换原有的版本(一般的vscode插件放在 ~/.vscode下) ======= API
├── admin.sh                     # 进程的start|stop|status|restart控制文件
├── conf                         # 配置文件统一存放目录
│   ├── config.yaml              # 配置文件
│   ├── server.crt               # TLS配置文件
│   └── server.key
├── config                       # 专门用来处理配置和配置文件的Go package
│   └── config.go
├── db.sql                       # 在部署新环境时,可以登录MySQL客户端,执行source db.sql创建数据库和表
├── docs                         # swagger文档,执行 swag init 生成的
│   ├── docs.go
│   └── swagger
│       ├── swagger.json
│       └── swagger.yaml
├── handler                      # 类似MVC架构中的C,用来读取输入,并将处理流程转发给实际的处理函数,最后返回结果
│   ├── handler.go
│   ├── sd                       # 健康检查handler
│   │   └── check.go
│   └── user                     # 核心:用户业务逻辑handler
│       ├── create.go            # 新增用户
│       ├── delete.go            # 删除用户
│       ├── get.go               # 获取指定的用户信息
│       ├── list.go              # 查询用户列表
│       ├── login.go             # 用户登录
│       ├── update.go            # 更新用户
│       └── user.go              # 存放用户handler公用的函数、结构体等
├── main.go                      # Go程序唯一入口
├── Makefile                     # Makefile文件,一般大型软件系统都是采用make来作为编译工具
├── model                        # 数据库相关的操作统一放在这里,包括数据库初始化和对表的增删改查
│   ├── init.go                  # 初始化和连接数据库
│   ├── model.go                 # 存放一些公用的go struct
│   └── user.go                  # 用户相关的数据库CURD操作
├── pkg                          # 引用的包
│   ├── auth                     # 认证包
│   │   └── auth.go
│   ├── constvar                 # 常量统一存放位置
│   │   └── constvar.go
│   ├── errno                    # 错误码存放位置
│   │   ├── code.go
│   │   └── errno.go
│   ├── token
│   │   └── token.go
│   └── version                  # 版本包
│       ├── base.go
│       ├── doc.go
│       └── version.go
├── README.md                    # API目录README
├── router                       # 路由相关处理
│   ├── middleware               # API服务器用的是Gin Web框架,Gin中间件存放位置
│   │   ├── auth.go
│   │   ├── header.go
│   │   ├── logging.go
│   │   └── requestid.go
│   └── router.go
├── service                      # 实际业务处理函数存放位置
│   └── service.go
├── util                         # 工具类函数存放目录
│   ├── util.go
│   └── util_test.go
└── vendor                         # vendor目录用来管理依赖包
    ├── github.com
    ├── golang.org
    ├── gopkg.in
    └── vendor.json