Vim
Vim 的工作模式vim 有6种工作模式。
普通模式:使用 vim 打开一个文件时默认模式。也叫命令模式,运行用户通过各种命令浏览代码、滚屏等操作。
插入模式:也可以叫做编辑模式,在普通模式下敲击i、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
命令行模式:在普通模式下,先输入冒号:,接着输入命令 ,就可以通过配置命令对 vim 进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。
可视化模式:在普通模式下敲击键盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。
替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击R键就可以直接替换。
EX模式:类似于命令行模式,可以一次运行多个命令。
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用ESC键返回到普通模式。
命令模式用户刚刚启动vim,便进入里命令模式
此状态下敲击键盘动作会被 Vim 识别为命令, ...
Rust
Rust 教程第一个 Rust 程序Rust语言代码文件后缀名为.rs,如helloworld.rs。
fn main() { println!("Hello World!");}
使用rustc命令编译helloworld.rs文件:
rustc helloworld.rs # 编译 helloworld.rs 文件
编译后会生成helloworld可执行文件:
./helloworld # 执行 helloworldHello World!
Rust 环境搭建安装 Rust 编译工具Rust 编译工具从链接 安装 Rust - Rust 程序设计语言 (rust-lang.org) 中下载的Rustup安装。下载好的Rustup在Windows 上是一个可执行程序 rustup-init.exe。(在其他平台上应该是rustup-init.sh)。
现在执行 rustup-init 文件:
上图显示的是一个命令行安装向导。
如果你已经安装MSVC(推荐),那么安装过程会非常的简单,输入 1 并回车,直接进入第二步。
如果你安装 ...
Java
Spring BootHikari数据库连接池配置spring: datasource: url: jdbc:mysql://127.0.0.1:3306/yami_shops?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource ...
gRPC入门与实操
gRPC入门与实操为什么选择gRPC历史长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式)。WebApi + JSON 是优选的,很重要的一点是它们两者都是平台无关的三方标准,且足够语义化,便于程序员使用,在异构(前后端、多语言后端)交互场景下是不二选择。然而,在后端服务体系改进特别是后来微服务兴起后,我们发现,前后端交互理所当然认可的 WebApi + JSON 在后端体系内显得有点不太合适:
JSON 字符编码方式使得传输数据量较大,而后端一般并不需要直接操作 JSON,都会将 JSON 转为平台专有类型后再处理;既然需要转换,为什么不选择一个数据量更小,转换更方便的格式呢?
调用双方要事先约定数据结构和调用接口,稍有变动就要手动更新相关代码(Model 类和方法签名);是否可以将约定固化为文档,服务提供者维护该文档,调用方根据该文档可以方便地生成自己需要的代码,在文档变化时代码也可以自动更新?
[之前] WebApi 基于的 Http[1.1] 协议已经诞生 20 多年,其定义的交互模式在今日已经捉 ...
设计模式
设计模式工厂模式概述该模式用来封装和管理类的创建,终极目的是为了解耦,实现创建者和调用者的分离。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
工厂模式可以细分为三种:
简单工厂模式
工厂方法模式
抽象工厂模式
传统模式创建不同种类的pizza对象
Pizza orderPizza(String type) { Pizza pizza; if(type.equals("chess"){ pizza = new ChessPizza(); }else if(type.equals("greek"){ pizza = new GreekPizza(); }else if(type.equals("apple"){ pizza = new ApplePizza(); } .... //准备材料 pizza.prepare(); //烘烤 pizza.bake(); //切 pizza.cut(); //装盒 pizza.box(); r ...
PowerDesigner
PowerDesigner简介PowerDesigner是图形化的建模环境,几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序。它可与许多流行的数据库设计模型。
新建数据库物理模型File -> New Model…
Model types -> Physical Data Model -> Physical Diagram
DBMS可以选择数据库
修改当前DBMSDatabase -> Change Current DBMS
New 选择要修改的DBMS
根据Name生成CommentSQL ServerTools -> Resources -> DBMS…
会弹出DBMS 列表
为了不修改原有的,所以这里选择新建一个DBMS,选择New
取名,选择拷贝原有的DBMS
另存到默认路径
接着会弹出DBMS属性页面
修改关键特征树,在 Script\Objects\Table\TableComment和Script\Objects\Col ...
Redis
安装Redis下载解压后
tar -zxvf redis-4.0.11.tar.gz
安装gcc
yum install -y gcc
进入redis解压目录
使用make命令
make MALLOC=libcmake install PREFIX=/usr/redis
Redis配置复制解压后的安装程序文件夹里的redis.conf
到redis安装文件夹
修改监听端口
bind 127.0.0.1 6379
修改库的个数
# Set the number of databases. The default database is DB 0, you can select# a different one on a per-connection basis using SELECT <dbid> where# dbid is a number between 0 and 'databases'-1databases 16
修改端口号port
# Accept connections on the specified port, defaul ...
SQL Server
SQL Server建库字符集问题ALTER DATABASE ACT_DEV SET SINGLE_USER WITH ROLLBACK IMMEDIATE;ALTER DATABASE ACT_DEV COLLATE Chinese_PRC_CI_AS;ALTER DATABASE ACT_DEV SET MULTI_USER;
精度标度精度指数字的位数,标度指小数点后的位数。例如,123.45,精度是5,标度是2,decimal(5, 2)
Typora
Typora快捷键字体操作快捷键
功能
快捷键
字体加粗
Ctrl+B
下划线
Ctrl+U
倾斜
Ctrl+I
删除线
Alt+Shift+5
插入功能快键键
功能
快键键
插入图片(本地图片可直接拖入)
Ctrl+Shift+I
插入表格
Ctrl+T
插入有序列表
Ctrl+Shift+[
插入无序列表
Ctrl+Shift+]
插入超链接
Ctrl+K
插入代码片
Ctrl+Shift+`
插入代码块
Ctrl+Shift+K
插入公式块
Ctrl+Shift+M
插入引用块
Ctrl+Shift+Q
标题段落快捷键
功能
快捷键
段落(正文)
Ctrl+0
一级标题
Ctrl+1
二级标题
Ctrl+2
三–六级标题(以此类推)
Ctrl+3–6
提升标题级别
Ctrl+‘+’
降低标题级别
Ctrl+‘-’
设置引用图片存储路径
Typora添加右键新建Markdown文件步骤新建一个txt文本文件,写入:
Windows Registry Editor Ver ...
Winform
WinformNet Framework控件属性Name表示控件名
this.button1.Name = "button1";
Text表示控件文本显示
this.button.Text = "button1";
控件事件button按钮clickcomboBoxSelectedIndexChanged问题:SelectedIndexChanged控件,初始加载的时候总会进去两次,SelectedValue 值总为System.Data.DataRowView。
原因:最后才发现自己是先绑定数据源,后设置控件ValueMember和DisplayMember属性。
解决办法:正确的做法是先设置这两个属性,后绑定数据源。
绑定数据源DataTable dt = new DataTable();dt.Columns.Add("ID", typeof(string));dt.Columns.Add("NAME", typeof(string));DataRow dr = dt.NewRow();dr[&qu ...