软件使用技巧

使用 Neovim 进行 Python 开发

本文仅以 Windows 下的 LazyVim 配置环境为例。

启用 Python 支持

可启用 LazyVim 自带的 Python 语言插件。在 %LOCALAPPDATA%\nvim\lua\config\lazy.lua 文件中加入以下高亮代码:

lua    -- import any extras modules here
    { import = "lazyvim.plugins.extras.lang.python" },
    -- { import = "lazyvim.plugins.extras.lang.typescript" },
    -- { import = "lazyvim.plugins.extras.lang.json" },
    -- { import = "lazyvim.plugins.extras.ui.mini-animate" },

选择 Virtualenv

当 Neovim 打开一个 Python 项目时,默认会加载项目根目录下的 venv 路径下的 Virtualenv 。可以使用 venv-selector.nvim 插件为当前项目选择指定的 Virtualenv 。使用命令 :VenvSelect 或者快捷键 <leader>cv 打开 Virtualenv 选择窗口。不过默认只能识别出 venv 目录中的 Virtualenv ,可以进行配置来支持其他目录名称。

……

Windows 下 Neovim 的 nvim.treesitter 插件无法加载 yaml 模块

Neovim 的插件 nvim.treesitter 无法加载 yaml 模块,错误消息为:Failed to load parser for language ‘yaml’: uv_dlopen: The specified procedure could not be found. 可以按照本文提供的方案解决该错误

Windows 下使用 Neovim

虽然在 Windows 下的 VSCode 用得挺好,但还是想折腾一下 Neovim 试试。Neovim 安装完毕后只是一个简陋的编辑器,需要自己配置和安装各种插件才能进行日常使用,幸好已经有很多现成的开源配置项目,像 LunarVimAstroNvimLazyVim 等。经过试用,发现 AstroNvim 在 Windows 上有一些未解决的 BUG ,比如一直报「 E65: Illegal back reference 」错误。 LunarVim 暂时还没机会测试。暂且选择使用 LazyVim 的配置。

……

PyPi 使用 API 令牌进行身份验证

像往常一样使用 twine upload 命令将 Python 项目上传到 PyPi 上,意外地遇到了 401 错误:

WARNING  Error during upload. Retry with the --verbose option for more details.
ERROR    HTTPError: 401 Unauthorized from https://upload.pypi.org/legacy/
         User fournoas has two factor auth enabled, an API Token or Trusted Publisher must be used to upload in place of password.

应该是 PyPi 调整了安全策略,不再允许启用两步验证的账号使用用户名密码来上传项目了,必须使用 API 令牌来进行身份验证。

登录 PyPi ,进入账户设置页,点击「添加 API 令牌」按钮创建 API 令牌。然后修改 ~/.pypirc 配置文件, 用户名字段改为 __token__ ,密码字段改为刚才创建的令牌:

……

自用 NAS 应用软件清单

搭建个人 NAS 服务的应用软件

用 Dnspooh 自建安全 DNS 服务器

Dnspooh 是一款使用 Python 开发的开源 DNS 代理/中继,支持 DoH 和 DoT 协议。用户可以将 Dnspooh 部署在本地,借助它可以让不支持 DoH 和 DoT 协议的客户端应用或操作系统使用安全的 DNS 服务,从而避免被运营商或网管之类的中间人劫持或嗅探。

除此之外, Dnspooh 还支持可插拔中间件用于扩展软件功能。 Dnspooh 内置了几个比较有用的中间件:缓存中间件用于加速访问;黑名单中间件用于屏蔽域名和 IP 地址; Hosts 中间件用于自定义解析结果;日志中间件用于记录解析记录、监控应用行为;规则中间件提供更加灵活复杂的操作。

……

Fournoas 说:

Edge浏览器更新后,地址栏右侧会出现一个很恶心的“发现”按钮,在命令行中运行下面命令(或者直接快捷键 WIN+R 运行),然后重启浏览器就可以禁用这个按钮了:

powershellREG ADD HKLM\Software\Policies\Microsoft\Edge /v HubsSidebarEnabled /t REG_DWORD /d 0
阻止浏览器 WebRTC 泄露真实 IP 地址

WebRTC 的全称是 Web Real-Time Communication ,即网页即时通信,用于支持浏览器进行实时语音对话或视频对话,并于 2011 年被纳入 W3C 推荐标准.现在几乎所有的主流浏览器都支持该功能。然而用户在日常中很少使用到浏览器的这个功能,反而这个功能会导致泄露用户的真实 IP 地址,无论用户是否启用了代理。因此,强烈建议对上网有隐匿需求的用户关闭浏览器的这个功能。

……

VirtualBox 命令行管理工具——VBoxManage

VBoxManage 是 Oracle VM VirtualBox 的命令行管理工具。在 Windows 系统中,软件默认安装在 C:\Program Files\Oracle\VirtualBox 目录下。运行该命令前,可以将命令行的当前路径切换到软件安装路径:

……

    为 Hugo 静态网站添加全文检索功能

    Hugo 是一种使用 Go 语言编写的静态网站构建工具。在其官网文章《Search for your Hugo Website》中,介绍几种为静态网站添加全文检索功能的方法。本文采用 Pagefind 为纯静态网站实现全文检索功能。

    Pagefind 是一个独立的命令行工具,可以通过 npm install pagefind 来安装。其原理是:运行 Pagefind 命令,扫描所有静态网页并生成索引;用户搜索时,通过网页中内嵌的 JavaScript 脚本来访问预先生成的索引,从而实现静态全文检索。

    ……