- 分类
- Using
软件使用技巧
Windows Subsystem for Linux 是 Windows 上运行 Linux 环境的兼容层。WSL 有两个版本,分别是 WSL 1 和 WSL 2,后者现在是 Windows 默认安装的版本。两个版本在底层实现上有很大区别,WSL 1 通过 lxss.sys 和 lxcore.sys 这两个 Windows 内核驱动来模拟 Linux 内核,而 WSL 2 通过 Hyper-V 虚拟机托管运行了一个经过优化过的 Linux 内核,能够提供完整的 Linux 系统调用,并支持 systemd 和 IPv6。缺点是跨系统的文件系统访问性能比 WSL 1 差很多(但 WSL 2 的文件 IO 性能比 WSL 1 的更好)。因此,当使用 WSL 作为开发环境时,建议不要将源代码存放在 Windows 的文件系统下。
……
本文仅适用于 Google Chrome, Microsoft Edge 等使用 Chromium 内核的浏览器。此内核的浏览器会将浏览器的访问历史记录储存在一个 SQLite 数据库文件中,可以用任何支持 SQLite 数据库 GUI 工具打开。常用的免费 SQLite 数据库 GUI 工具有:
在不同的操作系统下, Google Chrome 的历史记录数据库文件默认保存路径如下:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\History
~/.config/google-chrome/Default/History
/Users/<username>/Library/Application Support/Google/Chrome/Default/History
在 Windows 下, Microsoft Edge 的历史记录数据库文件保存路径为:
……
不久之前,我在 Windows 平台上最常用的文本编辑器还是 Notepad3 和 Notepad++ 。前者用来替换系统自带的记事本;后者用来处理一些稍微复杂,但还没有上升到需要动用专业 IDE 的文本编辑工作。最近发现新版本的 Notepad++ 会频繁卡顿,但由于拖延症和考虑到更换新软件的适应成本,就一直没有想过要换掉它。直到前几周 Notepad++ 被爆出存在多个缓冲区溢出漏洞,特别地,其中还包含了几个可以执行任意代码的高危漏洞。本来作为一个个人维护的开源项目,爆出几个漏洞来也无伤大雅。然而离谱的是,漏洞发现者早在今年四月份就向 Notepad++ 的作者报告了漏洞,但是这几个漏洞一直没有被修复。直到漏洞细节被公开的半个月后,这几个漏洞才得以修复。是时候另觅一款好用的轻量级文本编辑器了。
……
xdg-open
是 Linux 下的一个命令,可以调用对应的程序来打开目标文件,等同于在文件管理器中双击打开该文件。Ubuntu 用户可以通过执行 sudo apt install xdg-utils -y
来安装 xdg-open
命令,这个命令的用法也很简单:
xdg-open { file | URL }
遗憾的是, Windows 系统并没用提供类似的命令,不过我们可以通过 Windows 自带的 rundll32.exe 命令来实现一个类似功能的脚本。
RunDLL32.exe 用来加载指定的 DLL 文件并调用指定的导出函数。用法如下:
……
HeidiSQL 是 Windows 平台上一个开源数据库管理工具,支持 MariaDB, MySQL, SQL Server, PostgreSQL, SQLite, Interbase 和 Firebird 。HeidiSQL 使用 Delphi 编写,和其他诸如 Navicat, DBeaver 等专业数据库管理工具相比, 它更加轻量、启动和响应速度更快。
HeidiSQL 将数据库密码加密后保存在配置文件中,不过这种加密方式非常简单。可以在 HeidiSQL 的源代码文件 source/apphelpers.pas 中找到加密和解密算法:
……
之前一直使用 Oh My Posh 美化终端提示符。不过 Oh My Posh 配置起来比较麻烦,就一直在使用官方提供的默认配置。然而在默认配置下, Oh My Posh 某些特性在 Windows 下体验不太友好。比如,在提示符中显示无意义的用户名;又或者当前路径过长导致输入命令换行。
最近试用了一款名叫 Starship 的类似的软件。也许是受到其官网宣传的蛊惑,感觉 Starship 的启动速度确实要比 Oh My Posh 快那么一些。此外, Starship 的配置也要比 Oh My Posh 简单一些。因此,决定抛弃 Oh My Posh ,改用 Starship 。
……
本文仅以 Windows 下的 LazyVim 配置环境为例。
可启用 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" },
当 Neovim 打开一个 Python 项目时,默认会加载项目根目录下的 venv 路径下的 Virtualenv 。可以使用 venv-selector.nvim
插件为当前项目选择指定的 Virtualenv 。使用命令 :VenvSelect
或者快捷键 <leader>cv
打开 Virtualenv 选择窗口。不过默认只能识别出 venv 目录中的 Virtualenv ,可以进行配置来支持其他目录名称。
……
Neovim 的插件 nvim.treesitter 无法加载 yaml 模块,错误消息为:Failed to load parser for language ‘yaml’: uv_dlopen: The specified procedure could not be found. 可以按照本文提供的方案解决该错误