Typing
Visual Studio Code
基本配置
简单使⽤
⽆⿏标操作
Git
• 独⽴⽂件⽅式,⽐如另存为
• 补丁⽅式,⽐如diff
• 中⼼版本控制系统,⽐如Concurrent Versions System/cvs和 Subversion/svn
• 分布式版本控制系统,⽐如Git,是⽬前世界上最先进的分布式版本控 制系统(没有之⼀)
• 对于本地Repo,可能有多个branch,⾄少有⼀个叫master
• 本地Repo中的branch与⼀个或多个远程Repo中的branch存在跟踪关系
Git本地版本库的基本⽤法
• git init # 初始化⼀个本地版本库
• git status # 查看当前workspace的状态
• git add [FILES] # 把⽂件添加到index • git commit -m "wrote a commit log infro” # 把⽂件提交到仓库
• git log # 查看commit的⽇志,查看当前HEAD之前的commit,可以回到过去
• git reset —hard HEAD^^/HEAD~100/commit-id/commit-id的头⼏个字符 • git reflog # 可以查看当前HEAD之后的commit,可以回到未来
• git reset —hard commit-id/commit-id的头⼏个字符
Git远程版本库的基本⽤法
• git clone https://github.com/YOUR_NAME/REPO_NAME.git # 通过clone远端的版本 库从⽽在本地创建⼀个版本库,需要您先在github.com上注册账号并创建⼀个版本库
• git add / git commit / git reset —hard / git log等本地repo的操作
• 这⾥使⽤默认远程origin/master和本地master,没有创建其他分⽀
• git remote -v # 查看远程库信息
• git pull # 将远程repo更新到本地,实际上是git fetch + git merge
• git push # 将本地commit更新到远程repo
分⽀合并
• git pull # 将远程repo更新到本地,实际上是git fetch + git merge
• git branch
• git checkout -b mybranch # 创建⾃⼰的⼯作分⽀
• git add/git commit A2/A3
• git checkout master
• 当其他⼩伙伴在你git push之前已经更新过远程repo,这时你git push时可能会失败,因为在master上发⽣了分 叉,要⾸先git pull。
• git merge mybranch # 将⾃⼰的⼯作合并到master,并尽快更新到远程repo。如果不幸其他⼩伙伴的更新和你 本地的commit有冲突(都修改了同⼀位置),需要先处理冲突
• git push # 将本地commit更新到远程repo,
Git Rebase
• 在分⽀上完成⾃⼰的⼯作之后,为了让log记录将来更容易回朔参考,需要⽤git rebase重整⼀下
• git pull # 将远程repo更新到本地,实际上是git fetch + git merge
• git checkout -b mybranch # 创建⾃⼰的⼯作分⽀
• git add/git commit A2/A3。。。
• git rebase
• git rebase --continue
• git checkout master
• git pull
• git merge mybranch
• git push # 将本地commit更新到远程repo
fork + pull request
• 在github.com上还提供了⼀种基于Web的分叉合并⽅法,具体步骤如 下:
• 1、在github.com上使⽤fork创建⼀个版本库;
• 2、像第⼆关⼀样在⾃⼰fork的远程版本库上独⾃⼯作;
• 3、在github.com上创建⼀个pull request提交给原版本库
Vim
vi/vim的三种模式
• 命令模式(Command mode),⽤户刚刚启动vi/vim,便进⼊了命令模式。此状态 下敲击键盘动作会被vim识别为命令,⽽⾮输⼊字符。⽐如我们此时按下i,并不会 输⼊⼀个字符,i被当作了⼀个命令。命令模式只有⼀些基本的命令,因此仍要依 靠底线命令模式输⼊更多命令
• 输⼊模式(Insert mode),在命令模式下按下i就进⼊了输⼊模式,按ESC退出输⼊ 模式,切换到命令模式。
• 底线命令模式(Last line mode),在命令模式下按下:(英⽂冒号)就进⼊了底线 命令模式。底线命令模式可以输⼊单个或多个字符的命令,可⽤的命令⾮常多。基 本的命令有q(退出程序)、w(保存⽂件)等。按ESC键可随时退出底线命令模 式
移动光标
• h 或 向左箭头键(←) 光标向左移动⼀个字符
• j 或 向下箭头键(↓) 光标向下移动⼀个字符
• k 或 向上箭头键(↑) 光标向上移动⼀个字符
• l 或 向右箭头键(→) 光标向右移动⼀个字符
• 如果你将右⼿放在键盘上的话,你会发现 hjkl 是排列在⼀起的,因此可以使⽤这 四个按钮来移动光标。 如果想要进⾏多次移动的话,例如向下移动 30 ⾏,可以 使⽤ "30j" 或 "30↓" 的组合按键, 亦即加上想要进⾏的次数(数字)后,按下动作即 可
• n
• 0 或功能键[Home] 这是数字『 0 』:移动到这⼀⾏的前⾯字符处 (常⽤)
• $ 或功能键[End] 移动到这⼀⾏的后⾯字符处(常⽤)
• H 光标移动到这个屏幕的上⽅那⼀⾏的第⼀个字符
• M 光标移动到这个屏幕的中央那⼀⾏的第⼀个字符
• L 光标移动到这个屏幕的下⽅那⼀⾏的第⼀个字符
• G 移动到这个档案的后⼀⾏(常⽤)
• nG n为数字。移动到这个档案的第 n ⾏。例如 20G 则会移动到这个档案的第 20 ⾏
• gg 移动到这个档案的第⼀⾏,相当于 1G 啊! (常⽤)
• n
三种模式切换
• i, I 进⼊输⼊模式(Insert mode):
• i 为『从⽬前光标所在处输⼊』, I 为『在⽬前所在⾏的第⼀个⾮空格符处开始输⼊』。 (常⽤)
• a, A 进⼊输⼊模式(Insert mode):
• a 为『从⽬前光标所在的下⼀个字符处开始输⼊』, A 为『从光标所在⾏的后⼀个字符处开始输⼊』。(常⽤)
• o, O 进⼊输⼊模式(Insert mode):
• 这是英⽂字⺟ o 的⼤⼩写。o 为『在⽬前光标所在的下⼀⾏处输⼊新的⼀⾏』; O 为在⽬前光标所在处的上⼀⾏输⼊新的⼀⾏!(常 ⽤) • r, R 进⼊取代模式(Replace mode):
• r 只会取代光标所在的那⼀个字符⼀次;R会⼀直取代光标所在的⽂字,直到按下 ESC 为⽌;(常⽤)
• [Esc] 退出编辑模式,回到⼀般模式中(常⽤)
• 编辑模式在vi画⾯的左下⻆处会出现『--INSERT--』或『--REPLACE--』的字样
• :w 将编辑的数据写⼊硬盘档案中(常⽤)
• :w! 若⽂件属性为『只读』时,强制写⼊该档案。不过,到底能不能写⼊, 还是跟你对该档 案的档案权限有关啊!
• :w [filename] 将编辑的数据储存成另⼀个档案(类似另存新档)
• :q 离开 vi (常⽤)
• :q! 若曾修改过档案,⼜不想储存,使⽤ ! 为强制离开不储存档案。
• 注意⼀下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
• :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常⽤)
Regular Expression