码农的自我修养之必备技能 学习笔记
一、程序员的利剑
键盘是一个程序员学习和工作中必不可少的一个工具,俗话说,工欲善其事必先利其器,作为一个合格的程序员,首先要做的就是熟悉电脑的键盘。键盘就是武侠中剑客手中的剑,想要成为武林高手,首先要学会使用这把“剑”,决不能还像新手一样,使用“一指禅”。练习的方式及其简单,没什么特殊技巧,记住下图的位置后,敲,敲,敲,不停的敲就完事了。

二、VSCode的使用
还记得刚开始写代码时用的是记事本,然后换成editplus++,后来用到了IDE,发现真是比那些文本编辑器不知道高到哪里去了。身为一个程序员,没用过几个IDE似乎都不好意思给别人打招呼,Eclipse、IDEA、Visual Studio,哪个IDE我没用过,对于VSCode我也早就听过它的大名,一直苦于没有机会尝试,借着高软的东风,我下载了它,打开了新世界的大门。它,轻量,只有几十MB的大小,妈妈再也不用担心我的磁盘空间了;它,灵活,支持windows、macOS、Linux平台;它,强大,不管你是C/C++、js、Python开发统统不在话下;它,美观,看哪简洁的界面,看哪绚烂的主题,AWSL。

1.界面认识
vscode默认以文件夹的形式打开对应的工程,左侧侧边栏可显示工程的目录结构,同时列举最近打开的文件和工程,方便用户打开最近的文件进行编辑和修改。左侧五个按钮依次为文档、搜索、分支管理、编译执行、插件管理。其中插件管理会经常的使用到,可以在李曼搜索各种语言或功能的插件。
2.快捷键
-
- F1 或 Ctrl+Shift+P(俗称万能键) :打开命令面板
- 按一下 Backspace 会进入到 Ctrl+P 模式
- 在 Ctrl+P 下输入 > 可以进入 Ctrl+Shift+P 模式
- 在 Ctrl+P 窗口下还可以直接输入文件名,跳转到该文件
- ? 列出当前可执行的动作
- ! 显示 Errors或 Warnings,也可以 Ctrl+Shift+M
- : 跳转到行数,也可以 Ctrl+G 直接进入
- @ 跳转到 symbol(搜索变量或者函数),也可以 Ctrl+Shift+O 直接进入
- @ 根据分类跳转 symbol,查找属性或函数,也可以 Ctrl+Shift+O 后输入" : "进入
- 新建文件: Ctrl+N
- 文件之间切换: Ctrl+Tab
- 打开一个新的VS Code编辑器: Ctrl+Shift+N
- 关闭当前窗口: Ctrl+W
- 关闭当前的VS Code编辑器: Ctrl+Shift+W
- 切出一个新的编辑器窗口(最多3个): Ctrl+
- 切换左中右3个编辑器窗口的快捷键: Ctrl+1 Ctrl+2 Ctrl+3
- 代码行向左或向右缩进: Ctrl+[ 、 Ctrl+]
- 复制或剪切当前行/当前选中内容: Ctrl+C 、 Ctrl+V
- 代码格式化: Shift+Alt+F
- 向上或向下移动一行: Alt+Up 或 Alt+Down
- 移动到行首: Home
- 移动到行尾: End
- 移动到文件结尾: Ctrl+End
- 移动到文件开头: Ctrl+Home
- 移动到定义处: F12
- 查看定义处缩略图(只看一眼而不跳转过去): Alt+F12
- 选择从光标到行尾的内容: Shift+End
- 选择从光标到行首的内容: Shift+Home
- 删除光标右侧的所有内容(当前行): Ctrl+Delete
- 扩展/缩小选取范围: Shift+Alt+Right 和 Shift+Alt+Left
- 多行编辑(列编辑): Alt+Shift+鼠标左键 或 Ctrl+Alt+Down/Up
- 同时选中所有匹配编辑(与当前行或选定内容匹配): Ctrl+Shift+L
- 下一个匹配的也被选中: Ctrl+D
- 回退上一个光标操作: Ctrl+U
- 撤销上一步操作: Ctrl+Z
- 手动保存: Ctrl+S
- 向上或向下复制一行: Shift+Alt+Up 或 Shift+Alt+Down
- 在当前行下方插入一行: Ctrl+Enter
- 在当前行上方插入一行: Ctrl+Shift+Enter
- 找到所有的引用: Shift+F12
- 同时修改本文件中所有匹配的: Ctrl+F2
- 跳转到下一个 Error 或 Warning: 当有多个错误时可以按 F8 逐个跳转
- 查找: Ctrl+F
- 查找替换: Ctrl+H
- 更多操作请见:https://code.visualstudio.com/docs
三、Git
令程序员最难过的事情是什么?开发好了,需求改了!比这还难过的是什么?又开发好了,被告知还是采用原来的吧,然后发现老版的没了,没了。。。有了Git神器过后,一切都变得此简单了,想要哪个时间段的代码就拿出那段,团队分享代码再也不用U盘,QQ传了,新写的代码和老版本的对比也是如此简单了。
1.介绍
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。下图就是分布式版本控制工具管理方式:

2.一般工作流程如下:
1.从远程仓库中克隆 Git 资源作为本地仓库。
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区。
4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

3.基本演示
1.在github创建一个远程仓库

2.git clone 远程拉取到本地

3.创建分支git checkout -b tanhao

4.远程同步,一番操作可以看到远程仓库已经有了本地的文件。


四、VIM
记得很早以前看过一个笑话,普通青年用IDE(VisualStudio/Eclipse/XCode);文艺青年用VIM、Emacs;二逼青年将IDE设置成VIM模式。虽然是玩笑话,也可以说明vi地位了。vim/vi 编辑器是当前linux下最流行的编辑器,拥有强大的功能,并且支持超多的自定义选项。熟练的使用vi 编辑器,能够让代码开发效率极大的提升。
1.vi的工作模式

2.常用快捷键
-
- 编辑: vim filename
- 插入: i
- 保存: w
- 退出: q
- 替换: %s
- 删除 : dd
- 删除多行: m,nd
- 分tab: tabn filename
- 复制:v 选中 p
- 粘贴:y
- 设置编码: set fileencoding
- 多行添加: ctrl + v 选中 shift+i 添加 esc
- 显示行号: set nu
- 粘贴: set paste
五、正则表达式
正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如有个程序要去检查一个邮箱地址类的字符串,如果编写程序去检查,将会非常麻烦,正则表达式就相当于一个定义字符串的模板,当要判断一个字符串属不属于邮箱地址的格式时,只需要用正则表达式的语法规则去定义一个模板,然后就可以和字符串进行匹配,比如这样[a-z A-Z 0-9]+@[a-z A-Z 0-9]+"."com 这样就定义了一个邮箱类的模板,非常方便自定义模 ,它用来匹配以及替换。既方便又灵活。常见的一些字符含义如下:
| 字符 | 描述 |
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。 |
| ^ | 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 |
| $ | 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 |
| * | 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 |
| ? | 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。 |
| {n} | n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 |
| {n,} | n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。 |
| {n,m} | m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 |
| ? | 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。 |
| . | 匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。 |

浙公网安备 33010602011771号