软件工程师实用工具

作为一个软件工程师,我们就应当有称心如意的工具,就像勇士屠龙必须有趁手的好剑一样。今天就向大家推荐几种。我爱用的实用工具。

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 git checkout

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 #默认在HEAD版本
(2)对指定的commit版本创建tag
需要先找到历史commit的id
git log --pretty=oneline --abbrev-commit
然后对指定的commit创建tag:
git tag
(3)创建带有说明的tag,用-a指定标签名,-m指定说明文字
git tag -a -m "there is a tag description" []
(4)通过-s用私钥签名一个标签,签名采用PGP签名
git tag -s -m "there is a tag description" []
必须首先安装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

  1. 三种工作模式

    • 命令模式:默认的工作模式

      • 移动
      命令行的移动: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: 删除光标所在行再开始输入
      
    • 末行模式: 只能从命令行模式进入末行模式,方法是在命令行模式下按下:

      行跳转:直接输入行号     
      
      文本替换:
              
          a) 指定行:先跳转到指定行,然后输入` :行号 s/被替换的内容/替换的内容`,如果是该行所有的内容:`s/被替换的内容/替换的内容/g`
              
          b) 所有行:`%s/被替换掉内容/替换内容/g`
      
      末行模式下输入命令:`:!pwd`、`:!ls`
      回到命令模式:`:w(保存文件)`,或者两次`esc`
      
    • 退出
      当所有的操作完成,需要保存文件/退出,需要先回到末行模式:

      保存::w
      退出::q
      退出不保存::q!
      退出并保存::wq || x or 在命令模式下:ZZ

  2. vim分屏操作

  • 垂直分屏: :sp
    • 屏幕切换:ctr+w+w
  • 水平分屏:vsp
    • 水平分屏指定文件:vsp + 文件
  • 退出所有:wqall

正则表达式


posted @ 2020-03-21 09:13  eeezio  阅读(333)  评论(0编辑  收藏  举报