Alacritty 配置 JetBrains Mono 字体

在 ~/.config/alacritty/ 目录下创建 alacritty.yml 1 2 mkdir ~/.config/alacritty/;\ touch ~/.config/alacritty/alacritty.yml 写入 alacritty.yml 配置 1 2 3 4 5 font: normal: family: Jetbrains Mono style: Regular size: 12

十二月 26, 2023 · 1 分钟 · 27 字 · HCY

为 xv6-riscv 移植扫雷(minesweeper) 2048 以及非常简单的 sl

前言 我使用的 xv6-riscv 是 fork MIT 官方的库,在它的基础上面进行移植,这个教学系统原本是与 6.1810 一起配套使用的,下面这个是官方仓库地址: 👉 https://github.com/mit-pdos/xv6-riscv 这是我所做过的移植交互程序及之前 SZU OS 课程在 xv6 上面做的一些实验: 👉 我对 xv6-riscv 的一些改动 2048 移植以及相关移植准备 终端交互移植最关键的就是要把缺失的库函数都补完,首先就得增加和改进 xv6-riscv 原有的终端交互相关的库 在 xv6-riscv 的顶层目录下新建一个 include 文件夹,里面存放改进的头文件 Head What it does assert.h 断言的相关宏定义和函数声明,用于断言检查 ctype.h 字符处理的函数和宏定义,对字符进行分类和转换 limits.h 定义了各种数据类型的取值范围以及其他与整数类型相关的常量 stdarg.h 提供了支持可变参数函数的宏和类型定义 stdbool.h 定义了布尔类型和相关的常量,没错,xv6-riscv 原本甚至不支持 bool 型变量 stddef.h 提供了一些与指针、大小和偏移量相关的常量和类型定义 stdio.h 用于处理标准输入输出 stdlib.h 用于内存管理、字符串转换、伪随机数生成、算术运算和程序终止等 termios.h 用于控制和配置终端的行为 unistd.h 定义了一些与系统调用、文件操作、进程控制、环境变量和程序终止相关的函数和常量 上面这些改进的库函数里面最关键的是 termios.h 和 stdio.h ,没错,xv6-riscv 连标准输入输出都没有,刷新终端都做不到。。。即便如此 termios.h 移植之后也是极度残缺的,因为没有 xv6-riscv 压根就没有提供 ioctl 的系统调用!也正是因为这个原因,C语言里面的标准库 curses.h (可以控制光标位置、输出文本、设置颜色、处理用户输入等,使用这些函数和宏,可以在终端中实现基本的交互式图形界面) 压根移植不了,这进一步导致 vi 移植不了 ...

六月 6, 2023 · 2 分钟 · 264 字 · HCY

Vim ripgrep quickfix netrw nmap autocmd wincmd 。。。大杂烩 ?!

啊,这篇文章就随意一点吧,就意识流地写吧(虽然一直都是这样子),记录一下最近搞 Neovim 的心得 1. 如何使用 nvim + coc 如何滚动悬浮窗口内的内容呢? 使用 nvim + coc 编写代码的时候,弹出来的悬浮窗口内有滚动条,我怎样才能滚动悬浮窗口内的内容呢?试试 ctrl-w ctrl-w 切换到 floatwin 中,再翻页;更顺手一些的操作是:如果触发 floatwin 的按键是 nmap K, 连按两次 K 就会切换到 floatwin 中 👉 https://segmentfault.com/q/1010000040349668 或者直接映射相关的键位,参考官方 Github 的 Readme 👉 https://github.com/neoclide/coc.nvim/commit/ 2. Vim f和t的快捷方式 [ 移动到指定字符 ] 如果我们想在当前行内快速移动,可以使用f, t, F, T命令 “f"命令移动到光标右边的指定字符上,例如,“fx”,会把移动到光标右边的第一个’x’字符上,“F"命令则反方向查找,也就是移动到光标左边的指定字符上 “t"命令和"f"命令的区别在于,它移动到光标右边的指定字符之前,例如,“tx"会移动到光标右边第一个’x’字符的前面,“T"命令是"t"命令的反向版本,它移动到光标左边的指定字符之后 这四个命令只在当前行中移动光标,光标不会跨越回车换行符 可以在命令前面使用数字,表示倍数,例如,“3fx"表示移动到光标右边的第3个’x’字符上 “;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令,这两个命令前也可以使用数字来表示倍数 👉 https://www.jianshu.com/p/a46a89b460a9 3. 如何在 Vim 里面使用 ripgrep ? 关于这个问题有两种解决思路: 使用 Vim 里面自带的 quickfix 将 rg 搜索结果切割填充到 quickfix 里面,这个部分由 Vim 自己完成,要想使用这个功能,只需要在你的 vimrc 或者 init.vim 里面添加这句话就行 ...

五月 24, 2023 · 6 分钟 · 1113 字 · HCY

Git 列出除了 .gitignore 以外的所有文件(包括 tracked 和 untracked 的)

在执行 git ls-files 的时候,只会列出被 git 跟踪了 (tracked) 的文件,而不会列出那些新建未跟踪的文件 (untracked) ,这个时候用以下命令就可以列出除了 .gitignore 以外的所有文件(包括 tracked 和 untracked 的): 1 git ls-files --exclude-standard --cache --others 这个命令也可以简写成: 1 git ls-files --exclude-standard -c -o 或者: 1 git ls-files --exclude-standard -co 各项参数的意思(参考 Git 官方文档): -c –cached Show all files cached in Git’s index, i.e. all tracked files. (This is the default if no -c/-s/-d/-o/-u/-k/-m/–resolve-undo options are specified.) -o –others Show other (i.e. untracked) files in the output ...

五月 18, 2023 · 1 分钟 · 103 字 · HCY

Linux 下文件名字乱码(无效的编码)(invalid encoding)(Windows)

文件是在 Windows 下创建的,Windows 的文件名中文编码默认为 GBK ,而 Linux 中默认文件名编码为 UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码 安装 convmv : 1 sudo apt-get install convmv convmv 使用方法: 1 convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数: -r 递归处理子文件夹 –notest 真正进行操作,默认情况下是不对文件进行真实操作 –list 显示所有支持的编码 –unescap 可以做一下转义,比如把%20变成空格 Eg: 1 convmv -f GBK -t UTF-8 --notest –-unescap *.mp3 参考链接👉 https://www.shuzhiduo.com/A/RnJWmlWvdq/

五月 17, 2023 · 1 分钟 · 48 字 · HCY