Verne in GitHub

Vim 窗口使用

之前的文章讲过 Vim Buffer 的管理 这使得工作可以在 Vim 中持续进行,而不需要退出然后重新载入文件。但是如果 Buffer 只能填满一个 Vim 窗口,假如想要在 Vim 中实现分屏,那么就必须要依赖于 Vim 的 Window。又因为 Vim 的 Windows 经常用来做分屏,又有的时候被称为 splits 。 Windows Vim 在启动时只会打开单个窗口,可以使用 Ctrl-w s 来水平分隔窗口,或者使用 Ctrl-w v 来垂直分隔窗口。 在 Vim 中有很多方式打开 Windows 命令 Read more ...

2015-05-15 vim , linux , editor , vim-window , vim-buffer

中文字符编码

总结一下常用的中文编码。 Unicode 编码 Unicode 是基于国际标准化组织(International Organization for Standardization,简称 ISO)所制定的 ISO/IEC 10646 ,即通用字符集(Universal Character Set,简称 UCS)的标准来发展,在 1991 年首次以书本的形式(The Unicode Standard)对外发布。 Unicode 的编码方式与 ISO 10646 的通用字符集(UCS)概念相对应,使用 16 位编码空间。16 位 Unicode 字符构成 Read more ...

2015-05-15 encoding , chinese

msi笔记本型号对比

最近看笔记本,有一同学十分钟爱MSI的笔记本,于是乎就查阅了一下该笔记本的型号,顺手做一下笔记。以下就是MSI(微星)游戏笔记本常见型号,命名的解释。 ##GE系列 入门级 体积与效能的平衡点 高端性价比 GE是主打影音系列,属于体积与效能的平衡点,体积并不会像GT或GX那样的庞大,不过仍有不错的效能。也可以说是入门级别的游戏本,主要是价格相对便宜。其中CPU可以自行更换,显卡为焊死在主板上的无法更换,单2.5寸硬盘位(SATA3接口)+单MSATA硬盘位(SATA3接口,主要用于MSATA接口的SSD升级)。相比GT和GX系列重量较轻,便携,因空间 Read more ...

2015-05-11 msi , laptop

Vim 小技巧

这篇文章主要总结了我在使用 Vim 过程中遇到的一些问题及解决方案,都是一些比较零碎的内容,如果要看 Vim 系统的内容可以参考之前的几篇文章。 Vim 中格式话 JSON 依赖 jq 命令: sudo apt install jq 然后在 vim 中就可以: :%!jq . 查看 Vim 使用的配置 在 vim 中输入 :script 来查看 Vim 加载使用的配置 查看 Vim 的版本 :version 来查看 Vim 的版本 在有一次使用 Vim 的时候总是无法将 Vim 选中的内容和系统粘贴板用到一起 "+y 和 "+p 根本 Read more ...

2015-05-08 vim , tips

Vim 学习笔记 2: 组合命令

Vim 学习笔记进阶版,初级版可以参考这篇文章 这篇文章主要分为替换操作,多窗口操作,Vim 的 Tab 操作,以及 Visual mode 命令模式等等。 组合命令 combine command Vim 所有的操作都是原子化的,将操作组合起来能够实现非常快捷的 Input。在引入 . 命令时需要记住这么几条原则, Vim 哲学的第一条,不要重复自己,所有重复的命令都可以使用 . 来实现,而在这一条之后需要注意的是使得操作可重复,每一次的编辑命令有意识的让其可以重复,这样就可以达成一键移动,一键执行,来实现重复编辑的脏活累活。 . (dot Read more ...

2015-05-07 vim , command , linux , editor

Vim 学习笔记:移动和编辑

Vim 入门及简单使用,包括简单介绍 Vim 模式,移动,和编辑命令。 这篇文档相较于之前的入门教程会相对比较丰富,建议入门后再阅读。可以了解到在基础操作上一些能够快速提高效率的方法。 模式切换 Change between modes 如果你不知道 Vim 的各种模式,可以参考 Vim 模式 Insert -> Normal : ESC/Ctrl-[ Insert -> Command : (Insert -> Normal) -> : Normal -> Command : : Normal -> Ins Read more ...

2015-05-06 vim , linux , command , editor

Vim 中不同模式间的切换

之前的一篇文章介绍了 Vim 的多模式,这篇文章重点来讲一讲如何在这些模式之间随心的切换。 Normal - Insert Normal - Visual 在普通模式和可视模式之间切换。 Normal -> Visual 上一篇文章 提到过 v 是通向可视模式的大门,记住 v 普通模式切换到可视模式可以有如下的方式: 命令 作用 v 字符可视模式 V 行可视模式 C Read more ...

2015-05-05 vim , linux , editor , linux , vim-mode

如何写单测

单元测试是白盒测试,又被称为模块测试,是最小的测试单元。 单测应该做到: 一次检测一个方法 提供方法所需的参数 验证结果的准确性 Why 为什么需要单测 正确性保证 提高代码质量,高内聚,低耦合 代码重构时回归验证 测试内容 测试的内容可以包括 模块接口 局部数据结构 分支路径 错误处理 边界测试 评价测试的指标,覆盖范围,是否测试代码覆盖了基本表达语句,基本逻辑块。 语句覆盖,每一个基本语句是否被覆盖 判定覆盖,分支的每一个路径是否都被覆盖 循环覆盖,循环体,0,1, Read more ...

2015-05-05 unit-test , junit , java , testing

Vim插件Vundle

简单介绍 经Code Rush推荐,之后又陆陆续续看到很多在使用这款插件,所以在入门插件的时候就第一个安装了此插件,VIM如果不依靠插件来增强功能可谓鸡肋。而VIM提供的插件又很多,新手可能无从下手。幸好让我接触到了这个Vundle插件,Vundle用来安装,管理其他插件,这样以后安装插件卸载插件的问题就迎刃而解了。用Vundle管理插件有以下好处: 自动下载安装插件 自动更新插件 只需要保存一份配置文件即可在新环境下安装所有插件 自动清理没用的插件 安装 下载地址 https://github.com/gmarik/ Read more ...

2015-05-04 vim , vim-plugin , vundle

Ubuntu 下安装 java 及问题配置

记录一下 sudo apt-get install software-properties-common sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 或者下载 Oracle 的版本 wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b660 Read more ...

2015-05-02 java , jdk , apt-get

最近文章

  • Nowledge Mem 使用半年体验:让所有 AI Agent 共享同一份记忆 今年 2 月份我把 [[Nowledge Mem]] 装到 MacBook 上,想解决的是一个很常见的问题:我希望在 [[Perplexity]] 网页上查过的资料,直接在 Claude Code 中可以记住。但没想到大半年过去,它已经变成了我每天都在用的软件,而且是那种「不在后台跑着就会觉得别扭」的存在。我在 Claude Code、[[Codex]]、[[OpenClaw]] 里开的每一个会话,开头都会先从它这里拿一份简报;网页上和 AI 聊过的东西会自动同步进去;我做过的决定、踩过的坑、服务器的配置,都沉淀成一条条可以被任何 Agent 检索的记忆。说它是我所有 Agent 的记忆和大脑,一点都不夸张。
  • Aside AI 浏览器介绍:既能自己干活,也能接入 Agent 前两天整理了一篇 AI 浏览器自动化方案怎么选,把 Playwright、MCP、Agent 专用浏览器、WebMCP 这些路线梳理了一遍。在那篇文章里我提到,「内置 Agent 的 AI 浏览器」这一类里我最看好的是 Aside,原因是它的密码管理器设计得很用心,但篇幅有限没有展开。今天就单独写一篇,聊聊这个浏览器到底能做什么、和 [[Comet]]、[[Dia Browser]] 有什么不一样,以及我现在是怎么用它的。如果你看完想试试,可以用我的邀请链接 注册,注册后会额外获得 100 Credits。
  • AI 浏览器自动化方案怎么选:从 Playwright、MCP 到 Agent 浏览器和 WebMCP 的全景梳理 最近我一直在研究「让 AI 用浏览器」这件事。起因是看到 Nowledge 写了一个 browse-now Skill,可以直接让 Claude 控制浏览器,紧接着又偶然发现了 [[Ego Lite]] 这款专门为 Agent 设计的浏览器。顺着这条线,我把 Aside、BrowserOS、Deta Surf 这几款 AI 浏览器挨个调研了一遍,越看越发现它们的侧重点和实现方式差别很大:有人在做测试框架,有人在做浏览器插件,有人从 Chromium 内核开始为 Agent 改造浏览器,还有人在推动新的 Web 标准。它们看起来都在「让 AI 操作网页」,解决的却根本不是同一个问题。
  • 入手 GL.iNet Comet Pro(RM10):支持 Wi-Fi 6 的远程 IP KVM 家里的 [[Homelab]] 一直是一台 4 盘位的小主机跑 [[Proxmox VE]],上面跑着 Ubuntu 虚拟机、一堆 Docker 服务和下载机。平时远程管理全靠 SSH 加 [[Tailscale]],只要系统还活着基本没什么问题。真正让我不放心的是系统起不来的时候:升级内核后卡在启动界面、改网卡配置时手滑导致网络没起来、BIOS 被重置后不再从正确的硬盘启动,这时候 SSH 连不上,Tailscale 也不会在线,人不在家就只能干等。最近正好赶上一波促销,我入手了 [[GL.iNet]] 的 Comet Pro(型号 GL-RM10)远程 [[IP KVM]],叠加各种限时优惠之后实际支付 590.76 元,算是把 Homelab 远程管理的最后一块短板补上了。
  • 用 PowerContext 给多个 Coding Agent 做任务交接 现在我写代码基本是 [[Codex]] 和 [[Claude Code]] 轮着用。有时候是 Codex 的额度先用完了,有时候是某一步我觉得 Claude Code 更合适,于是一个任务经常要在两个 Agent 之间换手。真正麻烦的不是换工具本身,而是换手的那一刻:新会话对前面发生的事一无所知。之前选了哪个库、哪个旧接口不能动、改了哪些文件、测试跑没跑过,这些信息全都留在上一段对话里。我只能手动复述一遍,或者把一大段聊天记录贴回去,前者容易漏掉关键约束,后者浪费 Token,还会让模型在几千行历史里抓不住重点。说到底,我缺的不是一个更大的上下文窗口,而是一份能在 Agent 之间传递、而且接手方可以核对的「当前状态」。在写这篇文章的时候还出现了另外一个思路就是利用 [[magpie]] 将模型路由给充足额度的账号,这个之后再写文章说。