将当前commit独立成分支
情况:已经commit了,但是想让某个commit之后的都分离到独立的分支,原来的分支恢复到那个commit。
第一步,新建分支:
1 | git checkout -b newbranch |
第二步,回到原分支(比如master):
1 | git checkout master |
第三部,reset hard:
1 | git reset --hard <某commit的id> |
<某commit的id>
通过git reflog
来看。
之前一直很不爽,在使用一些code snippet的时候vscode的intellisense完全不动,搞到要手打,很绝望。今天终于突发奇想用合适的关键词搜到了解决办法:Intellisense not working in code snippets - VS Code。简单来说只需要在settings.json里添加一行"editor.suggest.snippetsPreventQuickSuggestions": false
就行了。
当然,在设置界面直接搜索editor.suggest.snippetsPreventQuickSuggestions
取消勾中也可以。默认是勾上的,就是true
。
起因是smartgit的open file打开python文件时用了mousepad,然而我想用vscode。smartgit通过xdg-open来打开文件,因此设定xdg-open的默认应用设置才有用。
参考:xdg-open default applications behavior
首先需要确定对于xdg来说文件的类型是什么。通过xdg-mime
来做:
1 | xdg-mime query filetype <文件或目录> |
例子:
1 | ➜ xdg-mime query filetype hugo-encryptor.py |
确定了文件类型之后就可以设置默认应用:
1 | xdg-mime default <xx.desktop> <文件类型> |
官方有个WalkThrough教程。有些小东西需要注意。
首先是dll的header开头的那几个ifdef。原文是这样的:
1 |
第一行的MATHLIBRARY_EXPORTS
要特别注意,如果自己的示范库不是叫MathLibrary,比如叫DemoDLL,那么就应该改成DEMODLL_EXPORTS
。具体是什么EXPORT,可以看项目属性(Alt+Enter)的C/C++
-预处理器
的预处理器定义
里面的值。
否则就会在编译时报错C4273
(inconsistent DLL linkage),因为编译器会当成是dll import。
第二个是client app,直接右键引用,把dll那个项目给引进,就可以了。
相比sln,cmake定义ifdef
就自由得多,只要跟CMakeLists.txt
里面target_compile_definitions
的一致即可。例如CMakeLists.txt
是这样:
1 | target_compile_definitions(dlldemo PUBLIC MATHLIBRARY_EXPORTS) |
今天登录ssh的时候,shell提示根目录已经用了79%了。第一反应是log太多了没清,检查一下,果然,占了1.8G:
1 | ➜ journalctl --disk-usage |
自然是要去找怎么压缩日志文件的空间。当然,最简单的办法就是清空/var/log/journal
目录
查了一下,askubuntu论坛上有解决方法。
单次清理日志,清理到只剩200M的话,用这个命令:
1 | ➜ journalctl --vacuum-size=200M |
如果是想让系统自动控制大小,就要改/etc/systemd/journald.conf
了。当然,按照传统,应该在/etc/systemd/journald.conf.d/
里新建一个配置文件,填以下内容:
1 | SystemMaxUse=200M |
还有其他参数可以设置,参考journald.conf.d(5)。
参考askubuntu。
但是由于时过境迁,正确的程序是gio,所以查询现在的默认应用的命令是:
1 | gio mime inode/directory |
在我的电脑上这个命令输出如下:
用于“inode/directory”的默认应用程序:pcmanfm.desktop
已注册的应用程序:
code.desktop
pcmanfm.desktop
org.gnome.Nautilus.desktop
org.gnome.baobab.desktop
推荐的应用程序:
code.desktop
pcmanfm.desktop
org.gnome.Nautilus.desktop
org.gnome.baobab.desktop
如果要修改成别的,比如改成code,那就执行:
1 | gio mime inode/directory code.desktop |
不需要像原文一样–query和–set。
.desktop文件的文档链接是:gnome - desktop files。简单来说,一个合格的.desktop文件需要定义至少四个内容:
1 | [Desktop Entry] |
显示在桌面上的快捷方式的名字是由Name决定的,跟.desktop文件的名字没有关系。
所以写一个Name是Intel但是文件名是AMD的.desktop也不是不可以
实际上这跟hugo的特点是一样的,hugo也是文件名跟实际标题可以完全不一样
hugo居然拒绝渲染.开头的文件,真是无语了
上星期六去了妈妈那边拜山,今天去拜爷爷。地方不太记得是哪里,可能是南海殡仪馆?是去火葬场的纪念楼拿的骨灰。
去到的时候被告知,2019年新规定,不能再拿骨灰出来拜,以后都只能拿个牌位出来。这次因为是新规定之后的第一次,所以就最后一次可以拿出来拜。
点上香烛之后,突然开始下雨,就跟爷爷去世那天一样的大雨。不得不说有一种奇怪的感觉。撑了伞挡雨,等烧完之后,我和爸爸一起去办事大厅交钱先做个牌位。大家都很不满,觉得要去西樵的墓园买个墓地,一方面好让奶奶也来拜,另一方面也不用受这鸟气。
听说要十几万一个,确实挺贵的
下午吃完饭,再去旧屋烧纸钱。虽然不给在火葬场烧,但是仪式还是要的。今天大风,烧起来烟不大;但是因为以前没遇到风这种情况,所以我挑起还没烧完的灰想让它们接触空气继续烧的时候搞到到处都是,被骂了一顿。姑妈和姑丈给旧屋打扫了一下,但是后边也不会经常有人来,可能下次来又会满了灰尘。
很累,回到家之后睡了一个半钟,超沉,就像模拟人生里的一个描述:睡得跟死人一样(形容吸血鬼睡了个好觉的心情)。
Markdown里显示公式一般用的是MathJax。用中文搜索Hugo上的MathJax,都是比较老的教程,比如知乎 - 使用了静态网页生成器:从WordPress 到 Hugo。
MathJax是发布在Github上的,项目地址:MathJax。根据它的README.md可知可以把需要用到的js放到服务器上,用自己的服务器来提供所需的组件。
还不是因为不喜欢让cdn加载
1 | git clone https://github.com/mathjax/MathJax.git mj-tmp |
随后,在主题提供的header-addtion或者类似的提供往html的header里添加代码的文件里添加script。比如对于官方推荐的ananke主题,这个添加header的文件是themes/ananke/layouts/partials/head-additions.html
。往该文件中添加:
1 | <script id="MathJax-script" async src="/mathjax/tex-chtml.js"></script> |
即可让博客实现显示公式的功能。
virtualbox可以方便地分配共享文件夹,但是文件权限默认是777,owner也不太好看。为了修改默认权限,需要用mount -o。
假设分配的文件夹名字是nugo,挂载点是/mnt/nugo,那么用到的挂载命令是:
1 | mount -t vboxfs -o fmask=133,dmask=0222,uid=你的用户的uid nugo /mnt/nugo |
用7减去fmask和dmask的值就是chmod中的权限值,r=4,w=2,x=1。
可以写一个systemd unit file来在开机时设定好权限:
1 | [Unit] |