news 2026/5/5 19:31:37

VSCode摸鱼新姿势:用PowerShell脚本在终端里“自动翻页”看小说(支持断点续读)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VSCode摸鱼新姿势:用PowerShell脚本在终端里“自动翻页”看小说(支持断点续读)

VSCode终端小说阅读器:用PowerShell打造沉浸式摸鱼体验

作为一名程序员,我们每天有大量时间面对VSCode终端。有没有想过把这些碎片时间利用起来,在编码间隙享受阅读的乐趣?今天我要分享的不仅是一个简单的文本阅读脚本,而是一套完整的终端阅读解决方案——支持自动翻页、断点续读、阅读速度调节,甚至能伪装成日志输出。

1. 为什么选择终端阅读?

在办公室环境中,传统的阅读方式往往太过显眼。浏览器标签、电子书阅读器都容易被一眼识破。而终端阅读有三大独特优势:

  • 隐蔽性:终端输出文字看起来就像程序日志或调试信息
  • 低资源占用:不需要额外安装阅读软件或插件
  • 可定制性:可以完全控制阅读体验的每个细节

我最初尝试过各种阅读插件,但要么功能臃肿,要么容易被发现。直到用PowerShell脚本实现了这个方案,才真正找到了工作和阅读的完美平衡点。

2. 基础阅读器实现

让我们从最核心的功能开始——逐页显示文本内容。以下是基础版本的PowerShell脚本:

$content = Get-Content -Path "C:\books\novel.txt" -Encoding UTF8 -Raw $length = $content.Length $i = 0 $pageSize = 500 # 每页字符数 while ($i -lt $length) { Clear-Host $content.Substring($i, [Math]::Min($pageSize, $length - $i)) # 等待用户按Enter或自动翻页 $null = Read-Host "按Enter继续(3秒后自动翻页)" Start-Sleep -Seconds 3 $i += $pageSize }

这个脚本实现了:

  1. 读取UTF-8编码的文本文件
  2. 每次显示500个字符
  3. 提供3秒阅读时间后自动翻页
  4. 也可以按Enter立即翻页

3. 增强版功能实现

基础版本虽然能用,但离完美的摸鱼工具还有差距。我们需要增加以下功能:

3.1 断点续读功能

$bookPath = "C:\books\novel.txt" $bookmarkPath = "C:\books\bookmark.txt" # 读取上次阅读位置 if (Test-Path $bookmarkPath) { $lastPosition = Get-Content $bookmarkPath $i = [int]$lastPosition } else { $i = 0 } # 主阅读循环 while ($i -lt $content.Length) { # ...显示内容逻辑... # 保存阅读位置 $i | Out-File $bookmarkPath }

3.2 阅读速度调节

# 从配置文件读取设置 $config = Get-Content "config.json" | ConvertFrom-Json $autoScrollDelay = $config.readSpeed # 单位:秒 # 或者在脚本运行时调整 Write-Host "当前速度: $autoScrollDelay秒/页 (1-加速, 2-减速)" $key = [Console]::ReadKey($true) switch ($key.Key) { 'D1' { $autoScrollDelay = [Math]::Max(1, $autoScrollDelay - 1) } 'D2' { $autoScrollDelay = [Math]::Min(10, $autoScrollDelay + 1) } }

3.3 伪装模式

为了让阅读看起来更像工作,我们可以添加一些伪装元素:

function ShowFakeLog { param($text) # 添加时间戳 $timestamp = Get-Date -Format "HH:mm:ss" # 随机生成"日志级别" $logLevels = "INFO","DEBUG","WARN","ERROR" $level = $logLevels | Get-Random Write-Host "[$timestamp] [$level] $text" } # 使用示例 ShowFakeLog "正在加载模块..."

4. 完整解决方案

将以上功能整合,我们得到完整版的终端阅读器:

<# .SYNOPSIS VSCode终端阅读器 - 摸鱼专用 .DESCRIPTION 这是一个支持断点续读、速度调节的终端文本阅读器, 专为程序员在VSCode中隐蔽阅读设计。 #> # 配置文件路径 $configPath = Join-Path $PSScriptRoot "reader_config.json" # 默认配置 $defaultConfig = @{ BookPath = "C:\books\current.txt" BookmarkPath = "C:\books\bookmark.txt" PageSize = 500 AutoScrollDelay = 3 FakeLogMode = $true } # 加载或创建配置 if (Test-Path $configPath) { $config = Get-Content $configPath | ConvertFrom-Json } else { $config = $defaultConfig $config | ConvertTo-Json | Out-File $configPath } # 主阅读函数 function Start-Reading { param( [string]$BookPath, [string]$BookmarkPath, [int]$PageSize, [int]$AutoScrollDelay, [bool]$FakeLogMode ) # 读取内容 $content = Get-Content -Path $BookPath -Encoding UTF8 -Raw $length = $content.Length # 读取书签 if (Test-Path $BookmarkPath) { $i = [int](Get-Content $BookmarkPath) } else { $i = 0 } # 主循环 while ($i -lt $length) { Clear-Host # 显示内容 $page = $content.Substring($i, [Math]::Min($PageSize, $length - $i)) if ($FakeLogMode) { $page -split "`n" | ForEach-Object { ShowFakeLog $_ } } else { Write-Host $page } # 保存进度 $i += $PageSize $i | Out-File $BookmarkPath -Force # 等待控制 $key = [System.Console]::ReadKey($true) switch ($key.Key) { 'RightArrow' { $AutoScrollDelay = [Math]::Max(1, $AutoScrollDelay - 1) } 'LeftArrow' { $AutoScrollDelay = [Math]::Min(10, $AutoScrollDelay + 1) } 'Escape' { return } default { Start-Sleep -Seconds $AutoScrollDelay } } } Write-Host "已读完本书!" -ForegroundColor Green Remove-Item $BookmarkPath -ErrorAction SilentlyContinue } # 启动阅读 Start-Reading @config

5. 高级技巧与优化

要让这个阅读器更加完美,还可以考虑以下优化:

5.1 文本预处理

# 移除多余空行和空格 $content = [System.Text.RegularExpressions.Regex]::Replace($content, "\s+", " ") # 智能分段 - 每500字符尽量在句子结束处分页 $sentences = [System.Text.RegularExpressions.Regex]::Split($content, "(?<=[.!?])\s+") $pages = @() $currentPage = "" foreach ($sentence in $sentences) { if ($currentPage.Length + $sentence.Length -ge $PageSize) { $pages += $currentPage $currentPage = "" } $currentPage += $sentence + " " }

5.2 快捷键绑定

在VSCode的keybindings.json中添加:

{ "key": "ctrl+alt+r", "command": "workbench.action.terminal.sendSequence", "args": { "text": "& 'C:\\scripts\\reader.ps1'\u000D" }, "when": "terminalFocus" }

这样就能用Ctrl+Alt+R快速启动阅读器了。

5.3 阅读统计

# 记录阅读时长 $startTime = Get-Date # ...阅读循环... $endTime = Get-Date $totalTime = $endTime - $startTime Write-Host "本次阅读时长: $($totalTime.Hours)小时$($totalTime.Minutes)分钟" Write-Host "平均阅读速度: $([math]::Round($i / $totalTime.TotalMinutes)) 字符/分钟"

6. 部署与使用建议

为了获得最佳体验,我建议这样设置:

  1. 文件组织

    C:\books\ ├── novels\ # 存放小说文本 ├── bookmarks\ # 存放阅读进度 └── reader.ps1 # 主脚本
  2. VSCode配置

    • 将终端字体调小一些(10-12px)
    • 使用深色主题减少屏幕反光
    • 调整终端高度为6-8行,看起来更像在查看日志
  3. 日常使用技巧

    • 将小说文件命名为"debug_log.txt"之类的不起眼名字
    • 偶尔在阅读中穿插一些真实的命令输出
    • 使用Alt+Tab快速切换而不是最小化窗口

这个项目最让我满意的是它的可扩展性。你可以根据自己的需求不断添加新功能,比如:

  • 多本书籍管理
  • 阅读进度同步(通过安全的云存储)
  • 夜间模式(自动调整终端颜色)
  • 章节导航功能
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 19:29:30

大厂扎堆布局,3D AI 乙游成风口,AI 女性向游戏能取代乙女游戏吗?

游戏界 AI 新趋势&#xff1a;女性向游戏引入 AI游戏界打开 AI 新市场&#xff0c;女性向游戏赛道也开始引入 AI。女性向游戏已在大众视野中崭露头角&#xff0c;伽马数据《女性向游戏调研报告》显示&#xff0c;其是游戏产业增长最快的赛道&#xff0c;展现出显著商业潜力与市…

作者头像 李华
网站建设 2026/5/5 19:26:04

现代Web应用架构演进:从分层设计到全栈类型安全实践

1. 项目概述&#xff1a;从“Carnelian”看现代Web应用架构的演进最近在GitHub上看到一个挺有意思的项目&#xff0c;叫kordspace/carnelian。乍一看这个名字&#xff0c;可能很多人会联想到某种宝石&#xff0c;但在这个语境下&#xff0c;它其实是一个现代Web应用架构的实践案…

作者头像 李华
网站建设 2026/5/5 19:21:26

AsciidocFX配置完全手册:自定义主题、字体与快捷键设置

AsciidocFX配置完全手册&#xff1a;自定义主题、字体与快捷键设置 【免费下载链接】AsciidocFX Asciidoc Editor and Toolchain written with JavaFX 21 (Build PDF, Epub, Mobi and HTML books, documents and slides) 项目地址: https://gitcode.com/gh_mirrors/as/Asciid…

作者头像 李华
网站建设 2026/5/5 19:19:27

如何快速上手ISD:5分钟学会交互式systemd单元管理

如何快速上手ISD&#xff1a;5分钟学会交互式systemd单元管理 【免费下载链接】isd isd (interactive systemd) – a better way to work with systemd units 项目地址: https://gitcode.com/gh_mirrors/isd3/isd ISD&#xff08;interactive systemd&#xff09;是一款…

作者头像 李华
网站建设 2026/5/5 19:12:52

Dify 0.9.5+多模态能力深度解析(官方未公开的5个隐藏API调用技巧)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Dify 0.9.5多模态能力概览与演进脉络 Dify 自 0.9.5 版本起正式引入多模态扩展框架&#xff0c;支持文本、图像、音频等异构数据的统一编排与协同推理。该演进并非简单叠加模型接口&#xff0c;而是通过…

作者头像 李华