Linux终端中显示git分支信息
前言以下方法为gpt-4给出, 复杂情况的话, 可自行重新对gpt-4进行提问解答。 本文仅做总结(避免之后遇到类似问题再浪费提问等待的时间)。
方法没有显示Git仓库的分支信息,可能是因为你的命令提示符(prompt)没有被正确地配置来显示这些信息。
如果你想在保留原有样式的情况下显示Git分支信息,可以将以下代码添加到你的命令提示符(prompt)设置中, 你可以尝试修改你的.bashrc或.bash_profile文件(通常位于你的用户目录下),在末尾添加以下代码:
12345678910# Git branch in prompt.parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'}# Preserve your original PS1ORIG_PS1="$PS1"# Add git branch info to the original PS1export PS1= ...
olive-自动化录制工具的编译部署
本文内容为在Linux系统下, 如何编译olive的源码并后台部署+开机自启动, 并对虚拟机配置静态ip以稳定访问。
Ubuntu代理设置遇到socks5无法使用bug
bug复现版本: ubuntu 22.04
在某个端口上运行socks5服务后。
在ubuntu终端中, 使用常用的 终端代理命令, 配置socks5代理, 配置完毕后, 使用时会遇到如下bug:
curl: (97) Failed to receive SOCKS5 connect request ack.
浪费了一整天时间, 没找到原因。
最后只能在通过配置全局代理来使用了。
注意:
配置全局代理时, 即使是用的socks5代理, 也请把http以及https的代理也 配置 上, 否则可能无法使用(我也不知道原因是啥)
在配置全局代理的情况下, 会出现ssh连接后进入的终端, 无法使用全局代理的bug, 但在 本机的终端 使用是没问题的。
由于今天的这些小bug, 打破了我的固有认知, 因此浪费了一天时间。 (故以后需注意, 对于不重要的事情, 只求解决即可, 不要过分追求其原因)
Hyper-V的基础常用设置-零碎知识汇总
前言本文章为了记录Hyper-V的基础常用设置, 节省时间。
如何创建虚拟机懒得解释, 我这里直接上图吧:
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
以上步骤, 即为基础创建步骤
其中若上述’第9步’选择的是以后安装操作系统这个选项, 可通过以下步骤来配置镜像:
1、
2、
3、
4、此步骤很重要
其中上述’第6步’中的重新设置内存, 也可在设置中设置。(往大了设置可在运行状态进行, 往小了设置只能在关机状态下设置)
其中上述’第7步’中的随时设置网络, 如下图所示
注意:
若是 Linux , 需要更改此选项, 如下图所示:
若是 Windows11, 需要勾选上此选项, 如下图所示:
虚拟交换机管理器的使用当新建交换机设置为”外部”时请移步此文章查看设置方式: Hyper-V的虚拟网络交换机创建
当新建交换机设置设置为”内部”时这里的创建方式同”外部”一致, 不过多介绍。 但是, 与”外部”不同的是, 内部的交换机需要我们自己在”网络适配器”中进行设 ...
Android命名规范
包名规范在Android项目中,包命名规范通常是使用反向的域名,以确保唯一性。你给出的样例 org.srackhall.habitTracking 的确遵循了这样的命名方式,但我想指出几个小点以帮助你确保它更加遵循一般的约定和最佳实践:
全部小写:通常包名中的所有字母都应该是小写的。这是因为在某些UNIX和Linux系统中,文件名区分大小写,而为了避免任何混淆,包名由全小写字母构成成为了一个约定。
没有空格或特殊字符:包名中不应包含空格、连字符、下划线或其他特殊字符。
意义明确:包名应该能够反映出App的内容或组织的结构
必须使用真实域名的反写吗?不一定必须使用真实域名的反写作为包名,但这是一种广泛接受的最佳实践,主要原因是为了避免冲突和确保唯一性。这不是由编译器强加的规则,而是一个约定俗成的习惯,旨在帮助开发者避免在全球范围内发生命名冲突。如果你在做实验性项目、个人学习项目或者内部使用的应用,选择包名时更加自由,不一定要按照反写域名的方式来。但是,如果你计划将你的应用发布到应用商店、开源,或者用于商业用途,那么使用一个独特且遵循常规命名约定的包名将是个明智的选择。这样可以降低将来 ...
quasar中如何安装使用测试工具
弃用通知之前的Testing Harnesses Manager现已弃用, 也就是不再提供quasar test这个命令。 想要启动测试, 直接通过运行它们的搭建脚本来启动(即在 package.json 中的 script 自行查看或配置)。
因此, 如果你之前一直在使用的话, 可以通过下图所示操作弃用:
我们删除的文件中的内容如图:
安装1234567cd your-quasar-projectquasar ext add @quasar/testing-e2e-cypress# orquasar ext add @quasar/testing-unit-jest# orquasar ext add @quasar/testing-unit-vitest
重新覆盖式安装, 也是执行上述命令。
其它的具体可查看文档https://github.com/quasarframework/quasar-testing
鉴于quasar的魔改,安装请优先参考quasar框架文档, 而不是所安装工具的官方文档。
现在如何使用如下图, 我一般使用的是 npm run test: ...
vscode扩展管理
前言vscode以及发展成日常必备的软件了。而且, 其扩展的管理的性能方便, 我之前已经写过相关的分析和配置文章了。
今天这篇文章的目的是, 介绍下vscode扩展的默认按照路径, 以及如何自定义其它路径<即将扩展的安装路径指定的特定目录下>
其实, 了解这些还有一个原因就是, 项尝试下, 是否可以在防火墙配置中, 对具体的插件扩展, 做网络限制 最终结论是: 不可以。
正文在Visual Studio Code中,--extensions-dir是一个命令行选项,用于指定扩展的安装位置。默认情况下,VSCode的扩展安装在用户的扩展文件夹中。在Windows上,这个位置是%USERPROFILE%\\.vscode\\extensions。
你可以通过在VSCode的快捷方式的”目标”字段中添加--extensions-dir选项来更改这个位置。例如,你可以将其更改为:
1"E:\\soft\\VSCode\\Microsoft VS Code\\Code.exe" --extensions-dir "E:\\soft\\VSCode\\vs ...
js/ts中深/浅拷贝和深赋值
前言涉及到多端同步的一致性解决方案, 在不考虑性能的前提下追求通用性。故实现如下文所属方法。
正文不过多解释, 最终代码如下图(花了我一下午时间研究js这玩意, 懒得过多写文章了), 功能也写的很明显了。已在写的过程中,跑了一定量的测试用例, 相对可靠, 还未上生产环境<上生产环境前, 会尽可能的制作全面的测试用例来绝对验证>。 后续不再对此文章进行维护, 如果你看到时文章没有删除且我的项目已有足够多的用户帮忙验证, 则代表两个函数实现的没问题。
最终, 我决定 将api 命名如下:
deepAssign() // 代表 与 Object.assign()完全相反的, 纯深拷贝(即图中左侧项)
deepAssign_shallowCopy() // 代表 赋值时采用深拷贝, 而拷贝时采用与Object.assign()相同的浅拷贝(即图中右测项)
nodejs-electron零碎
electron中, 子进程的加载全解将 stdio 选项设置为 inherit 或 pipe 主要影响的是子进程的输入和输出行为:
inherit: 子进程将继承父进程的标准输入、输出和错误流。这意味着子进程的输出会直接显示在父进程的终端中。这种方式不会对子进程的执行产生其他影响,只是改变了输出的显示方式。
pipe: 子进程的标准输入、输出和错误流会被重定向到父进程中。你可以通过监听这些流来捕获子进程的输出。这种方式也不会对子进程的执行产生其他影响,但需要你在父进程中处理这些流。
ignore: 忽略子进程的标准输入。
总结来说,这些设置主要影响的是子进程的输出行为,不会对子进程的执行逻辑产生其他影响。
下面我们来重点说下pipe通过设置 stdio 选项为 pipe,你可以与子进程进行通信。具体来说,你可以通过监听子进程的 stdout 和 stderr 事件来接收子进程的输出,并且可以通过 stdin 向子进程发送输入。
1234567891011121314151617181920212223242526const { spawn } = req ...
通过gomobile为移动端<android、ios>编写sdk
前言为了能在移动端使用go语言打包的程序(如使用gin、gorm、gen、FTP、webdav服务等), 我先尝试了直接在移动端调用运行由go+gcc交叉编译的二进制文件, 发现由于移动端的权限限制, 虽技术上行得通, 但实际的可行性太差, 于是乎我想到了通过打包sdk的方式, 满足需求。 而本文,就是对后者的尝试。
在此文章https://srackhall.top/2023/09/17/capacitor-fragments/最开始, 有我对在移动端调用运行由go+gcc交叉编译的二进制文件的尝试, 感兴趣的可以去阅读, 欢迎邮件交流。
最终, 实现了sdk调用, 不过需要注意的是, 目前我们只能引入一个sdk(即使需要多个arr, 但也请将其合并后打包成一个add)
sdk的形式, 完全拥有go语言本身的完整运行时。(比如go中的init函数, 即使多次调用此模块下的函数, init也只会在模块内函数首次被调用之前执行一次, 并不会重复执行)
android studio环境这个就不过多赘述了, 下图中所圈的两项, 最好给带上
说实话, 关于环境搭建过程中涉及的li ...

.png)