Window、Mac、Linux ChatGPT桌面App安装与使用教程

本文介绍了如何在不同操作系统(Windows、Mac、Linux)上安装和使用 ChatGPT 的桌面应用程序。我们还提供了一些关于桌面应用程序的基本使用教程,例如如何快速输入等功能。无论您是 ChatGPT 的新手还是有经验的用户,本文都将为您提供有用的指导,以便更好地利用 ChatGPT 桌面应用程序。 安装 APP 官方没有提供 app 版,但是在 Github 有第三方开源项目 Github 下载地址: https://github.com/lencx/ChatGPT 快捷输入 用过 Telegram bot 的人都知道他的快捷输入吧,很高兴 lencx/ChatGPT 也支持了。工作方式类似 Telegram bot command,可帮助您快速填充自定义模型,使 chatgpt 以您希望的方式工作。 进入控制中心配置即可实现 在 chatgpt 文本输入区,输入一个开头的字符调 / 出命令提示符,按空格键,默认会在输入区填充与该命令相关的文本(注意:如果包含多个命令提示符,则只会选择第一个作为填充,你可以继续输入直到第一个提示的命令是你想要的,然后按空格键。(按 Tab 键可以自动输入,直接回车是直接发送) 或使用鼠标单击多个命令之一)。填写完成后,只需按 Enter 键即可。 在斜杠命令下,使用 tab 键修改标签内容 {q}(只支持单次修改 #54)。使用键盘 ⇧(向上箭头)和 ⇩(向下箭头)键选择斜杠命令。

2023年3月7日 · 1 分钟 · 诚哥博客

微信小程序开发img、image标签居中裁剪以及mode属性详解

微信小程序开发中的 img 和 image 标签具有一个特殊的属性 mode,用于控制图片的裁剪、缩放和填充等行为。该属性不同于 HTML 中的 img 标签,仅适用于微信小程序开发。 mode 属性详解 mode 属性有不同的取值,包括 scaleToFill、 aspectFit、 aspectFill、 widthFix、 top、 bottom、 center、 left、 right 等,用于实现不同的图片显示效果。例如, scaleToFill 可以将图片拉伸至填充整个容器,而 aspectFit 可以保持原始宽高比并将图片缩放至容器内部,留白部分用背景色填充。 mode 属性在微信小程序中非常有用,特别是当你需要在小程序中显示各种不同大小的图片时。通过指定不同的 mode 值,你可以轻松地控制图片的显示效果,使其更加美观和适应不同的场景需求。 微信小程序中的 <img> 标签的 mode 属性用于控制图片的缩放和裁剪方式。该属性有以下取值: scaleToFill:不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 <image> 元素。 aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来,短边按比例缩放,显示在 <image> 元素的中间。 aspectFill:保持纵横比缩放图片,使图片的短边能完全显示出来,长边按比例缩放,显示在 <image> 元素的中间。 widthFix:宽度不变,高度自动变化,保持原图宽高比不变。 top:不缩放图片,只显示图片的顶部区域,图片的宽度会被拉伸至填满 <image> 元素。 bottom:不缩放图片,只显示图片的底部区域,图片的宽度会被拉伸至填满 <image> 元素。 center:不缩放图片,只显示图片的中间区域,图片的宽度会被拉伸至填满 <image> 元素。 left:不缩放图片,只显示图片的左边区域,图片的宽度会被拉伸至填满 <image> 元素。 right:不缩放图片,只显示图片的右边区域,图片的宽度会被拉伸至填满 <image> 元素。 topLeft:不缩放图片,只显示图片的左上边区域,图片的宽度会被拉伸至填满 <image> 元素。 topRight:不缩放图片,只显示图片的右上边区域,图片的宽度会被拉伸至填满 <image> 元素。 bottomLeft:不缩放图片,只显示图片的左下边区域,图片的宽度会被拉伸至填满 <image> 元素。 bottomRight:不缩放图片,只显示图片的右下边区域,图片的宽度会被拉伸至填满 <image> 元素。 使用示例: ...

2023年3月6日 · 1 分钟 · 诚哥博客

Vue3 如何在组合式 api 中获取循环中的组件的 Ref

本文将介绍 Vue 3 中如何在组合式 API 中获取循环中的组件的 ref。我们将通过在父组件中使用 ref 指令和 v-for 指令来声明和动态创建一个引用,然后在 onMounted 生命周期钩子中循环遍历数据来获取每个子组件的引用并存储在对应的引用中。这种方法可以让我们轻松地在循环中获取子组件的引用并进行操作,非常方便实用。 基本用法 在 Vue 3 中,可以使用 ref 和 v-for 指令来在循环中获取组件的引用。 首先,在组件中,使用 ref 指令来声明一个引用: <template> <div ref="myComponent"></div> </template> 然后,在包含循环的父组件中,可以使用 v-for 指令来遍历数据并在循环中获取子组件的引用: <template> <div v-for="item in items" :key="item.id"> <my-component ref="myComponentRefs[item.id]"></my-component> </div> </template> <script> import { ref, onMounted } from "vue"; export default { setup() { const myComponentRefs = ref({}); const items = [{ id: 1 }, { id: 2 }, { id: 3 }]; onMounted(() => { items.forEach(item => { myComponentRefs.value[item.id] = myComponentRefs.value[item.id].$refs.myComponent; }); }); return { items, myComponentRefs, }; }, }; </script> 上面的例子中,使用 ref 指令在父组件中声明了一个名为 myComponentRefs 的引用。然后,在循环中,使用 myComponentRefs[item.id] 来动态创建一个引用来存储子组件的引用。在 onMounted 生命周期钩子中,通过循环遍历 items 数组来获取每个子组件的引用并存储在对应的引用中。 ...

2023年3月3日 · 2 分钟 · 诚哥博客

命令行、nodejs获取git提交次数的方式的几种方式

本文将探讨使用命令行工具以及.git 文件夹内的文件,使用 Node.js 或者 Git 来获取提交次数的几种方式。首先,可以利用 Git 命令行工具来获取提交次数,例如 git rev-list HEAD --count。这个命令会返回你在当前库上执行提交操作的总次数。此外,也可以使用 Node.js 库,例如 git-rev-list,它可以帮助你获取你的代码库信息,其中包括提交次数。最后,你也可以在.git 文件夹内的“refs/head/master”文件中获取提交次数,其中存放的每一行都是一次提交,只要读取该文件中的行数就可以得到提交次数。 命令行获取 Git 提交次数 要在命令行中获取 Git 仓库的提交次数,可以使用以下命令: git rev-list --count HEAD 这将返回当前分支的提交次数,其中 HEAD 代表当前分支的最新提交。如果要获取所有分支的提交总数,可以使用以下命令: git rev-list --all --count 这将返回所有分支的提交总数。 nodejs 获取 Git 提交次数 方式 1 要使用 Node.js 获取 Git 仓库的提交次数,可以使用 child_process 模块来运行 Git 命令并获取输出。以下是一个示例代码: const { exec } = require("child_process"); // 执行Git命令获取提交次数 exec("git rev-list --count HEAD", (err, stdout, stderr) => { if (err) { console.error(`执行Git命令出错: ${err}`); return; } // 输出提交次数 console.log(`提交次数为: ${stdout}`); }); ...

2023年3月2日 · 1 分钟 · 诚哥博客

Vue2、Vue3双向绑定封装组件例子

Vue2、Vue3 双向绑定封装组件例子:本文将讲述如何使用 Vue2 和 Vue3 的双向绑定功能,来创建封装组件,并且提供了一个实际的示例。 Vue2 以下是一个简单的双向绑定组件示例,使用 Vue 的 v-model 指令来实现数据的双向绑定: <template> <div> <label for="input">输入:</label> <input type="text" id="input" :value="value" @input="$emit('input', $event.target.value)" /> </div> </template> <script> export default { props: { value: { type: String, required: true, }, }, }; </script> 在这个示例中,组件接受一个名为 value 的 prop,用于传递输入框的值。在模板中,使用 :value 绑定输入框的值到 value prop 上,实现初始值的渲染。同时,使用 @input 监听输入框的输入事件,并通过 $emit 方法触发名为 input 的自定义事件,传递输入框的新值作为参数。这样,父组件就可以通过 v-model 指令将数据双向绑定到这个组件上。 假设父组件中有一个名为 text 的 data 属性,可以像这样使用这个组件: <template> <div> <my-input v-model="text" /> <p>输入的文本是:{{ text }}</p> </div> </template> <script> import MyInput from "./MyInput.vue"; export default { components: { MyInput, }, data() { return { text: "", }; }, }; </script> Vue3 在这个示例中,通过 v-model 指令将父组件的 text 数据属性双向绑定到 MyInput 组件的 value prop 上,实现了输入框值的同步更新。同时,通过模板插值将 text 数据属性渲染到页面上,实时显示输入框中的文本。 ...

2023年2月27日 · 1 分钟 · 诚哥博客