Github 备忘清单
===
Github.com 上 80 个键盘快捷键和一些搜索技巧的备忘清单
键盘快捷键
--------
### 站点范围的快捷方式
快捷键 | 说明
:- | -
`S` | 聚焦搜索栏
`G` `N` | 转到您的通知
`H` | 打开并关注用户、问题或拉取请求悬浮卡
`Esc` | 当专注于上面时,关闭 hovercard
### 资料库
快捷键 | 说明
:- | -
`G` `C` | 转到 `Code` 选项卡
`G` `I` | 转到 `Issues` 选项卡
`G` `P` | 转到拉取请求选项卡
`G` `B` | 转到 `Projects` 选项卡
`G` `W` | 转到 `Wiki` 选项卡
### 源码浏览
快捷键 | 说明
:- | -
`T` | 激活文件查找器
`L` | 跳转到代码中的一行
`W` | 切换到新的分支或标签
`Y` | 将 URL 扩展为其规范形式
`I` | 显示或隐藏对差异的评论
`B` | 打开责备视图
### 源代码编辑
快捷键 | 说明
:- | -
`Ctrl` `F` | 开始在文件编辑器中搜索
`Ctrl` `G` | 找下一个
`Ctrl` `Shift` `G` | 查找上一个
`Ctrl` `Shift` `F` | 代替
`Ctrl` `Shift` `R` | 全部替换
`Alt` `G` | 跳转到行
`Ctrl` `Z` | 撤消
`Ctrl` `Y` | 重做
### 注释
快捷键 | 说明
:- | -
`Ctrl` `B` | 为粗体文本插入 Markdown 格式
`Ctrl` `I` | 插入斜体文本的 Markdown 格式
`Ctrl` `K` | 插入 Markdown 格式以创建链接
`Ctrl` `Shift` `P` | 在编写和预览评论选项卡之间切换
`Ctrl` `Enter` | 提交评论
`Ctrl` `.` | 打开已保存的回复菜单,然后使用已保存的回复自动填充评论字段
`Ctrl` `G` | 插入一个建议
`R` | 在回复中引用所选文字
### 项目板
快捷键 | 说明
:- | -
`Enter/Space` | 开始移动焦点列
`Esc` | 取消正在进行的移动
`Enter` | 完成正在进行的移动
`Left/H` | 向左移动列
`Ctrl` `Left/H` | 将列移动到最左边的位置
`Right/L` | 向右移动列
`Ctrl` `Right/L` | 将列移动到最右边的位置
`Enter/Space` | 开始移动聚焦卡
`Esc` | 取消正在进行的移动
`Enter` | 完成正在进行的移动
`Down/J` | 向下移动卡片
`Ctrl` `Down/J` | 将卡片移动到列的底部
`Up/K` | 向上移动卡片
`Ctrl` `Up/K` | 将卡片移动到列的顶部
`Left/H` | 将卡片移动到左侧列的底部
`Shift` `Left/H` | 将卡片移动到左侧列的顶部
`Ctrl` `Left/H` | 将卡片移动到最左边一列的底部
`Ctrl` `Shift` `Left/H` | 将卡片移至最左侧列的顶部
`Right` | 将卡片移动到右侧列的底部
`Shift` `Right/L` | 将卡片移动到右侧列的顶部
`Ctrl` `Right/L` | 将卡片移动到最右侧列的底部
`Ctrl` `Shift` `Right/L` | 将卡片移至最右侧列的顶部
### 问题和拉取请求列表
快捷键 | 说明
:- | -
`C` | 创建问题
`Ctrl` `/` | 将光标聚焦在问题或拉取请求搜索栏上
`U` | 按作者过滤
`L` | 按标签过滤或编辑标签
`M` | 按里程碑过滤或编辑里程碑
`A` | 按受让人过滤或编辑受让人
`O` | 打开问题
### 问题和拉取请求
快捷键 | 说明
:- | -
`Q` | 请求审稿人
`M` | 设定一个里程碑
`L` | 应用标签
`A` | 设置受让人
### 通知
快捷键 | 说明
:- | -
`E/L/Y` | 标记为已读
`Shift` `M` | 静音线程
### 拉取请求的变化
快捷键 | 说明
:- | -
`C` | 打开拉取请求中的提交列表
`T` | 打开拉取请求中已更改文件的列表
`J` | 在列表中向下移动选择
`K` | 在列表中向上移动选择
`Ctrl` `Shift` `Enter` | 在拉取请求差异上添加单个评论
`Alt` `(click)` | 在拉取请求中折叠和展开所有过时的审阅评论之间切换
### 网络图
快捷键 | 说明
:- | -
`Left/H` | 向左滚动
`Right/L` | 向右滚动
`Up/K` | 向上滑动
`Down/J` | 向下滚动
`Shift` `Left/H` | 一直向左滚动
`Shift` `Right/L` | 一直向右滚动
`Shift` `Up/K` | 一直向上滚动
`Shift` `Down/J` | 一直向下滚动
搜索技巧
---
### 范围搜索
:-- | --
:-- | --
`org:rails language:ruby` | 指定组织 `rails` 和编程语言 `ruby`
`repo:torvalds/linux io_uring` | 指定仓库 `torvalds/linux` 搜索 `io_uring`
`owner:tpope path:*.vim` | 指定拥有者 `tpope` 和文件后缀为 `*.vim`
`created:"> 2022-10-22" language:C#` | 创建于 `2022-10-22` 以后,语言为 `C#` 的条件
### 文件路径
:-- | --
:-- | --
`path:__init__.py` | 文件为 `__init__.py` 里面的内容搜索
`path:/.*shrc$/` | 文件路径包含 `.*shrc` 结尾的文件中搜索内容
`path:/src/*.js` | `src` 目录中的 `.js` 后缀的文件中搜索内容
`path:/(^\|\/)README\.md$/` | 使用正则,仅匹配特定文件名(而不是路径的一部分)
### 完全符合
:-- | --
:-- | --
`out of memory` | 文本匹配 `out of memory`
### 布尔运算符
:-- | --
:-- | --
`io_uring (language:c OR language:cpp)` | 语言为 `c` 或者 `cpp` 的文件中搜索 `io_uring`
`org:kubernetes NOT repo:kubernetes/api` | 组织为 `kubernetes` 排除里面的 `api` 仓库进行搜索
### 基于仓库的条件
:-- | --
:-- | --
`stars:100..8000 stars:>10000` | 星星为 100 ~ 8000 或 10000 以上的
`forks:50..100 forks:200 forks:<5` | fork 为 50 ~ 100 或者 200 或者小于 5
`size:35` | 大小为 `35kb`
`pushed:<2022-11-23` | 推送代码时间 2022-11-23 之前
`fork:true`, `fork:only` |
`license:mit` | 基于协议 `mit` 条件
### 基于 issue 的条件
:-- | --
:-- | --
`state:open`, `state:closed` | `关闭` / `打开` 的 `issue`
`reason:completed` | `"not planned"`, `reopened`, `completed`
`label:bug` | 标签为 `bug` 的条件
`author:jaywcjlove` | 作者 `jaywcjlove` 打开
`mentions:jaywcjlove` | 提及 `jaywcjlove` 用户
`assignee:jaywcjlove` | 分配给 `jaywcjlove` 用户
`updated:<2022-11-23` | 更新日期之前
### 基于用户的条件
:-- | --
:-- | --
`fullname:jaywcjlove` | 全名 jaywcjlove
`location:China` | 位置 China
`followers:20..50 followers:>200 followers:<2` | 追随者
`repos:0 repos:<40 repos:>5` | 仓库数量
### Symbol 限定符
搜索 `go` 语言中的 `WithContext` 符号
```
language:go symbol:WithContext
```
查询将查找在 `Rust` 中实现的 `String` 类型转换:
```
language:rust symbol:/^String::to_.*/
```
### 使用布尔运算
查询将匹配包含 `sparse` 或 `index` 的文档
```js
sparse OR index
```
排除 `__testing__` 目录中的文件,您可以搜索:
```js
"fatal error" NOT path:__testing__
```
您可以使用括号来表达更复杂的布尔表达式
```js
(language:ruby OR language:python) AND NOT path:"/tests/"
```
使用运算符 `AND`、`OR` 和 `NOT` 来组合搜索词
### is 限定符
- `archived`: 限制搜索`已存档`的版本库
- `fork`: 限制搜索已`分叉`的版本库
- `vendored`: 限制搜索被检测为 vendored 的内容
- `generated`: 限制搜索检测为`已生成`的内容
示例
:-- | --
:-- | --
`path:/^MIT.txt$/ is:archived` | 已归档存储库,中包含名为 MIT.txt 的文件
`log4j NOT is:archived` | 限定符 is: 可以与 NOT 运算符反转
`log4j NOT is:fork` | 从结果中排除分叉
另见
-----
- [Keyboard shortcuts for Github](https://help.github.com/articles/using-keyboard-shortcuts/) _(help.github.com)_