作为一个软件工程师,我们就应当有称心如意的工具,就像勇士屠龙必须有趁手的好剑一样。今天就向大家推荐几种。我爱用的实用工具。
VScode
VScode并不是我们传统意义上的IDE,而是一个代码编辑器,拥有强大的跨平台能力,基本支持所有的主流操作系统。不仅如此,它还拥有海量的插件可供使用,通过安装相关插件并且正确配置之后,VScode的能力令人惊叹。下面就给大家介绍几种我爱用的插件,以及vscode的实用用法。
- 白咲花鼓励师————在 VS Code 中连续写代码一小时(时间可配置),会有白咲花出来萌你一下~
- background————Add a lovely background-image to your vscode.
- C/C++————通过配置,可以编译调试C/C++程序
- CMake————使用VScode进行工程化C/C++开发
- 一键安装所有Java环境 https://vscjavaci.blob.core.windows.net/vscodejavainstaller/release/0.2.2/VSCodeJavaInstaller-online-win-0.2.2.exe
- GO———— adds rich language support for the Go language to VS Code.
- markdown math————Adds math support to VS Code's built-in markdown preview using KaTeX.
- markdo pdf————converts Markdown files to pdf, html, png or jpeg files.
- one dark pro————Atom's iconic One Dark theme, and one of the most installed themes for VS Code
- Python————adds rich language support for the Python language to VS Code.
- vim————VSCodeVim is a Vim emulator for Visual Studio Code.
上课也讲过,vscode让人很爽的一点就是它自动集成了git,我们可以很轻松地做一些版本控制。按CTRL+shift+G即可进入。至于git的具体用法,我们后面会讲。
git
1.设置账户(需要和github账户设置一致)
git config --global user.name xxx
git config --global user.email xxx@foxmail.com
2.查看设置
git config --list
user.name=xxx
user.email=xxx@foxmail.com
3.创建git本地仓库
git init
此时会出现提示 : inialized empty Git repository in d://com/liu/.git
4.查看git状态
git status
一般来说会显示需要提交的文件(uncommited)和未追踪的文件(untracked)
uncommited:已有的,刚被修改尚未提交的
untracked:原先没有的,新建的
5.添加git文件到暂存区(需要和版本库区分)
git add
6.git提交文件
git commit -m "add a function in test.java"
-m表示注释,为提交时的说明,必须要有!
7.git删除文件(夹)
git rm test.txt //删除文件
git rm -r filebook //删除文件夹
git rm和直接删除的区别在于git rm会将此文件的操作记录删除,而直接删除仅仅是删除了物理文件,没有删除和此文件相关的记录。git rm后会在版本库产生区别(有操作日志),而直接删除没有。
可以用下面两种操作在版本库中删除文件:
git rm test.txt => git commit -m 'delete a file'
rm test.txt => git commit -am 'delete a file'
注意:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
8.git操作日志
git log --decorate --graph --oneline --all #显示当前及之前的版本号
git log --pretty=oneline #将版本历史显示为一行,历史版本号全部显示
git log --pretty=oneline --abbrev-commit #将版本历史显示为一行,历史版本号部分显示
git log --graph #查看分支合并图
9.版本回退
执行版本退回后,本地工作区的内容会自动和回退到的版本库版本的内容保持同步
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上个版本,以此类推,一次提交即为一个版本
git reset --hard e9efa77 回退到 e9efa77 版本
10.git还原操作
丢弃工作区的操作,但不会丢失暂存区的操作(add操作能将更改添加到暂存区),实际上就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
git checkout -- readme.txt
11.git暂存区撤销操作
工作区修改了文件,而且执行了add,但还没执行commit,暂存区还是可以撤销的
git reset HEAD readme.txt
备注:git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
12.查看分支
git branch
13.创建分支
git branch
14.创建并切换到分支
git checkout -b
备注:git checkout命令加上-b参数表示创建并切换,相当于以下两条命令
git branch
15.切换分支
git checkout
切换分支后,在git bash中显示为绿色
16.删除分支
git branch -d
如果分支没有合并,删除分支就表示会丢失修改,此时git无法使用-d删除,可使用-D强行删除
git branch -D
17.合并分支
git合并默认使用Fast forward模式,一旦删除分支,会丢掉分支信息,也就看不出来曾经做过合并
git merge
如果强制禁用Fast forward模式,即普通模式,Git就会在merge时生成一个新的commit
git merge --no-ff -m "there is a comment"
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
工作中,肯定需要不管有没有分支被删除,都要从分支历史上就查看所有的历史分支信息,所以要使用普通模式合并。
18.创建tag
(1)git tag
(2)对指定的commit版本创建tag
需要先找到历史commit的id
git log --pretty=oneline --abbrev-commit
然后对指定的commit创建tag:
git tag
(3)创建带有说明的tag,用-a指定标签名,-m指定说明文字
git tag -a
(4)通过-s用私钥签名一个标签,签名采用PGP签名
git tag -s
必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错,参考GnuPG帮助文档配置Key。
git fetch和git pull的区别
(1)git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
git fetch origin mastergit log -p master..origin/mastergit merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmpgit diff tmp git merge tmp
(2)git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些,因为在merge前,可以查看更新情况,然后再决定是否合并。
VIM
- 三种工作模式
- 命令模式:默认的工作模式
- 移动
命令行的移动:H,L,K,J:前后上下 移动到行首: 0 移动到行尾: $ 移动到文本首部:gg 移动到文本末尾:G 移动到指定行: 行号G
- 删除/撤销
x:删除光标所在字符 X: 删除光标前一个字符 dw: 在一个单词的前面按下, 删除一个单词 d0: 删除光标所在行前面的文字 删除光标所在行后面的文字:`d$ 或者 D` 删除所在行: `dd` 连续删除多行:`n dd` 撤 销: `u` 反撤销: `CTR r`
- 粘贴
粘贴:`p:在下一行粘贴, P:在当前行` 复制:`yy:复制当前行, n yy 复制n行`
可视模式:
按下v
v
,然后按下:H,L,K,J去选择自己需要的文本。
在可视模式下,删除是d
,复制是y
,如果需要选择一个位置粘贴,按下p/P
,粘贴和非可视模式下有所不同。
在可视模式下,是直接在当前字符位置(p
)或者在当前字符前面(P
)插入文本。- 查找:
1. / 查找文本:向下遍历查找 2. ? 查找文本:向上遍历查找 3. 在需要查找的字符处按下:# 遍历快捷键: N: 向上 n: 向下
其他操作
向右缩进:
>>
向左缩进:<<
编辑模式
- 从命令行进入编辑模式:AROS
a:在光标的后面插入 i: 在光标的前面插入 o: 在光标所在下边开辟一个新的行插入 s: 删除光标后面的字符再开始输入 A: 在当前行的尾部插入 I: 在当前行的头部插入 O: 在光标所在上边开辟一个新的行插入 S: 删除光标所在行再开始输入
末行模式: 只能从命令行模式进入末行模式,方法是在命令行模式下按下
:
。
```vim
行跳转:直接输入行号文本替换:
a) 指定行:先跳转到指定行,然后输入` :行号 s/被替换的内容/替换的内容`,如果是该行所有的内容:`s/被替换的内容/替换的内容/g` b) 所有行:`%s/被替换掉内容/替换内容/g`
末行模式下输入命令:
:!pwd
、:!ls
回到命令模式::w(保存文件)
,或者两次esc
```退出
当所有的操作完成,需要保存文件/退出,需要先回到末行模式
:保存:
:w
退出::q
退出不保存::q!
退出并保存::wq || x
or 在命令模式下:ZZ
- 命令模式:默认的工作模式
- vim分屏操作
- 垂直分屏:
:sp
- 屏幕切换:
ctr+w+w
- 屏幕切换:
- 水平分屏:
vsp
- 水平分屏指定文件:
vsp + 文件
- 水平分屏指定文件:
- 退出所有:
wqall
正则表达式
来源:https://www.cnblogs.com/ustcwz/p/12536503.html