大家应该都知道用表情符号规范git commit内容的一个很火很好玩的项目叫做Gitmoji。
Gitmoji是一个开源项目,专门规定了在 Github提交代码时应当遵循的emoji规范。
但是对于初学者,面对这么多的图标,经常不知道图标对应着什么意思,我就想有没有什么方法帮助我们快速查阅这些图标对应的意思,方便刚入门的中文开发者更好上手呢?这就是本文的初衷。
在汇总了自己以及网络上的方法后,有了本文这篇方便查阅gitmoji的指南,利用gitmoji帮助我们更好的git commit。
可以把这些图标和他们对应的意思都做成一个脚本,这样想要git commit的时候执行一下脚本就会弹出提示信息不就行了吗?
受到hooj0/git-emoji-guide项目的启发(介绍博客在git-emoji-guide中),里面有一个git-emoji-list.md,我想的是把它修改为一个emoji.sh的脚本,给这个脚本添加可执行权限后在终端中打印提示信息。
在~/Documents文件夹目录下执行gedit ./emoji.sh新建一个文件
把git-emoji-list.md的内容复制到emoji.sh后用VS Code打开。

考虑到脚本中的输出方式是echo “输出内容”,这就要求要在这么多行的最前面都加上echo ",在多行的最后面加上"。并且每一行中的两个小撇符号都要修改为'符号,不然无法正常输出。
需求明确后,参考博客vscode同时编辑多处的三种方法操作:
第一步,每行最前面都加上echo ":按shift+alt,再使用鼠标拖动,出现竖直的列光标,同时可以选中多列

写入echo "后效果如下

第二步,每行最后面加上":选中这些行,按shift+alt+i,可以在每行末尾出现光标

写入"后,效果如下

第三步,每一行中的第一次出现的小撇符号都修改为'符号:按住alt,用鼠标左键点击,可以出现多个光标,输入的内容可以在光标处同时增加。(这里需要每一行都去点一下,比较繁琐我就不具体截图说明了,看原博客即可理解)
第四步,每一行中的第二次出现的小撇符号都修改为'符号:操作同第三步

之后保存文件,添加可执行权限并运行即可看到提示信息(按下Tab键可以补全文件名):
$ sudo chmod +x emoji.sh
$ ./emoji.sh

此时emoji.sh只能在当前路径下运行,如果想要把它设置为全局运行的一个脚本,有许多种方式,我参考博客Ubuntu:配置环境变量的两种常用方法( .bashrc 和 /etc/profile )和ubuntu设置全局脚本_ubuntu环境变量的三种设置方法,介绍两种方法:
emoji.sh复制一份到/usr/local/bin/下:sudo cp ~/Documents/emoji.sh /usr/local/bin/。以后在任意路径下都可以直接执行emoji.sh。/home/zqchen/Documents/路径添加到环境变量PATH中:编辑/home/zqchen/.bashrc文件,在末尾添加一行:export PATH=/home/zqchen/Documents/:$PATHsource ./bashrc使之生效,也可以起到第一种方法的效果。这里先占个坑,以后有时间我会专门写一篇介绍添加环境变量的临时和永久的方法以及开机运行各个重要脚本的顺序。
第二种看到提示信息的方法是我发现的另外一个项目GIT颜文字COMMIT(CLI命令行模式),使用的Github仓库为:使用git颜文字美化commit,这个项目利用了emojify这一脚本工具(可以使得命令行中显示图标而非图标的符号代码),通过利用git config命令,新建一个专门写有commit提示信息的文本文件,完成git commit的提示的。
该方法的另外两个参考来源如下:
先在/home/zqchen/下执行gedit ./.zqchen_gitmessage.txt生成一个空的文本文件,之后去cangyan/git-emoji-template项目中把commit.template文件中的内容都复制到.zqchen_gitmessage.txt文件中。
不知道是不是Ubuntu20.04对图标显示做了新支持的原因,我这里不需要利用emojify脚本工具就可直接显示图标,于是我就没有参照原项目下载emojify。
git config --global commit.template /home/zqchen/.zqchen_gitmessage.txt
执行这句命令其实就是将如下内容写入到/home/zqchen/.gitconfig文件:

这样在终端中执行git commit并弹出nano编辑器后,Git工具就知道去哪里找到用户自己写的提示信息并将其显示出来了。效果如下:

Github上Gitmoji的创建者本人发起的一个完整的项目gitimoji-cli,这个项目也能实现很好的提示功能,但是功能太多还要下载npm等工具我就没有用。
后来发现hooj0/git-emoji-guide项目中的git-emoji-list.md文件作者的本意应该是这样用的(可以起到和我把它修改为一个脚本相同的功能):先将git-emoji-list.md放入PATH环境变量指向的位置,方便需要查看的时候能直接访问查看。
我选择执行sudo cp /home/zqchen/Documents/git-emoji-list.md /usr/local/bin/,把git-emoji-list.md复制一份放到/usr/local/bin/下面,因为/usr/local/一般存放的都是用户自己下载的软件之类的,如果之后自己不想要了可以放心删除。
$ alias emoji='cat /usr/local/bin/git-emoji-list.md'
$ emoji
alias命令是给一行冗长的命令起一个别名,参考ubuntu——cat和输出命令详解,发现cat命令有一个用法是直接打开一个文件(并没有进入编辑状态,是直接读取输出),效果和我上面修改成脚本的效果是一样的:

博客Ubuntu学习之alias命令提到这里的alias重启后会失效,可以通过把这条命令写入/home/user/.bashrc中达到alias永久化的目的。如果不想使用了可以unalias emoji去除这一别名。
如博客Ubuntu下git commit后会进入类似vim界面,不知道怎么操作所言,直接在Ubuntu的终端下git commit后进入的是nano编辑器的界面。其实也可以利用VS Code来完成这一系列操作。
暂不赘述,放上几个链接以供参考:
Github Gist这项服务,以前没有接触过PPS:本文同步发表于CSDN - 夏小正的鲜小海 - 使用Gitmoji进行git commit的快速查阅指南。
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h