dotar/README.md
2024-12-05 10:52:20 +08:00

11 KiB
Raw Permalink Blame History

Dotar是一个包含了zsh, spacevim(nvim), tmux和许多其它工具的多合一的Mac/Ubuntu开发环境

背景

Dotar的名字源于dottar的结合,代表者打包(tar)文件。

开始

需求

  • zsh, tmux, vim, ag已经安装并且zsh作为你的默认终端:
chsh -s $(which zsh)
  • 如果缺少Python 3pynvim等一些层(如denite),则无法加载它们。
python3 -m pip install --user --upgrade pynvim

安装

bash -c "`curl -fsSL https://git.bitnet.fun/Gaze/dotar/raw/branch/master/install.sh`"

升级

cd ~/.yadr
git pull --rebase
rake update

模块

Zsh Commands

文件

命令 参数 描述
交换 F1 F2 swap file F1 with file F2
替换 doc Replace text recursively
替换 选项:
  -f            文件正则表达式模式
  -s            源模式
  -d            目标模式
  -r            删除行
  --regex       使用正则表达式匹配模式
  --seperator=  分隔符, # 默认
  -h            显示这条信息"

编辑

快捷键 别名
Ctrl-R Vim模式和Bash风格的历史反向查询
ae 编辑别名
ar 重载别名
ESC C-x C-e 在vim中编辑当前的命令行

网络

命令 描述
test-port PORT 测试这个PORT是否打开
intercept-request-hosts 拦截请求并显示主机信息
host-ip 显示您系统的主机IP地址

系统

命令 描述
yell 将脚本名称和所有参数打印到标准错误(stderr)流中
die 与yell相同但以非0退出状态退出表示“失败”
try 使用
list-large-files DIR 列出大文件,按照文件大小的倒序排序,并按照KB, MB, GB的顺序打印文件大小

字符串

命令 描述
random-hex 打印随机十六进制数
random-string 打印由字母a-zA-Z0-9组成的随机字符串
contains str1 str2 ... target

Git

YADR将接管您的~/.gitconfig文件因此如果您想要存储git用户名和其他设置请将它们放在~/.gitconfig.user中。

我们建议在此文件中设置您的用户信息。此外,您可以在~/.secrets中适当设置环境变量。

命令 别名 描述
ga git add
gb git branch 新建分支
gbc or gnb git checkout -b 新建并切换到新分支
gbs git show-branch
gc git commit --verbose
gco git checkout 切换到目标分支
gcp git cherry-pick --ff
gcf git commit --amend --reuse-message HEAD 重新提交且不更改commit信息
gd git diff
gf git fetch
gfc git clone
gfm git pull
gfr git pull --rebase 拉取远程分支更新到本地
gl git log
gpc git push --set-upstream origin "$(git-branch-current 2> /dev/null)" 将本地更改推送到远程的同名分支
gr git rebase 合并分支到此分支
gra git rebase --abort
grc git rebase --continue
grs git rebase --skip
gsd git stash drop
gsl git stash list
gsp git stash pop
gst git stash

其它

  • secure_source - 使 ~/.yadr/zsh/function.zsh 文件生效, 使 function.zsh 中的更改在当前窗口生效
  • pp $1 - 用法:pp xx, 按名称搜索进程
  • set_proxy - 设置终端代理以使用HTTP代理
  • set_vagrant_proxy - 设置终端代理以使用Vagrant的HTTP代理
  • set_ss_proxy - 设置终端代理以使用SOCKS代理
  • unset_proxy - 取消所有代理设置
  • post $1 $2 - 使用application/json进行curl的POST请求
  • docker_rm_all - 删除所有Docker镜像
  • kexec - 通过正则表达式匹配的Pod名称执行Kubernetes Pod
  • klog - 通过正则表达式匹配的Pod名称显示Kubernetes Pod日志
  • git_tag_delete - 删除GitHub标签
  • git_tag_add - 添加GitHub标签
  • dc - docker-compose的别名

fasd

"fasd"的名称来源于默认建议的别名f文件、a文件/目录、s显示/搜索/选择、d目录

一些情况下您可以输入左侧的命令而fasd会将您的命令“展开”为右侧的内容。

  v def conf       =>     vim /some/awkward/path/to/type/default.conf
  j abc            =>     cd /hell/of/a/awkward/path/to/get/to/abcdef
  m movie          =>     mplayer /whatever/whatever/whatever/awesome_movie.mp4
  o eng paper      =>     xdg-open /you/dont/remember/where/english_paper.pdf
  vim `f rc lo`    =>     vim /etc/rc.local
  vim `f rc conf`  =>     vim /etc/rc.conf

Fasd默认附带了一些有用的别名:

alias a='fasd -a'        # any
alias s='fasd -si'       # show / search / select
alias d='fasd -d'        # directory
alias f='fasd -f'        # file
alias sd='fasd -sid'     # interactive directory selection
alias sf='fasd -sif'     # interactive file selection
alias z='fasd_cd -d'     # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection

Fasd会智能地检测何时显示文件列表何时只显示最佳匹配项。例如当您在子shell中使用一些搜索参数调用fasd时fasd只会返回最佳匹配项。这使您可以执行以下操作

mv update.html `d www`
cp `f mov` .

Tmux

设置

tmux.conf为Mac OS上的tmux提供了一些合理的默认设置例如强大的状态栏和VIM键盘绑定。您可以在~/.tmux.conf.user中修改配置。

快捷键

起手式被定义为了 ctrl+a(下面的PRE就代表起手式)

快捷键 功能
Ctrl+h(jkl) ←(↓↑→)移动面板
PRE c 创建新面板
PRE s 上下分屏
PRE v 左右分屏
PRE x 关闭面板
PRE shift+h(jkl) ←(↓↑→)移动分割线
PRE , 重命名窗口
PRE d 退出会话
PRE D 退出会话
PRE 1 进入面板1
PRE >/< 速查表
PRE {/} 将面板向前/后移动
PRE C-o 旋转窗口“向上”(即移动所有面板)
PRE M-o 旋转窗口“向下”
PRE z 全屏/取消全屏面板
PRE m 标记
PRE ! 将当前面板移动到一个新的独立窗格中
PRE o 前往下一个窗格(循环遍历所有窗格)
PRE ; 前往“最后一个”(之前使用过的)窗格

CCtrl 的简写

按下 PRE [ 来进入滚动模式

快捷键 功能
Shift-V 选择文本
Enter 复制文本
] 粘贴从滚动模式复制的文本

Vim & Spacevim

  • <L>: <localleader>的缩写, 在我们的设置中是 \

我们定义的内容

基础

Here

快捷键

全局

快捷键 功能
C-v 进入Visual模式
C-x C-v 从系统剪贴板粘贴文本
tp 切换粘贴模式
SPC f v d 打开配置文件
SPC g . 进入版本控制瞬态状态
SPC l p 预览Markdown

Typescript

快捷键 功能
SPC l p 定义预览
SPC l t 类型
SPC l e 重命名
SPC l d 文档
g d 前往定义
SPC e L 列出检查器

Tab

快捷键 功能
\[1-9] 打开标签页1-9
SPC t t 打开标签管理窗口
SPC w F 打开一个新标签页
SPC w o 切换标签页

历史

快捷键 功能
F7 撤销历史

Debug

快捷键 功能
SPC h I 显示Debug信息

Git Blame

快捷键 功能
b 在当前行末尾切换显示Git Blame信息
s 在状态栏中查看当前选定行的Git Blame信息
gb 打开Git Blame窗口

markdown

  • 安装 prettier: yarn global add prettiernpm install --global prettier
  • 打开vim然后输入命令: :SPUPdate

选项窗口、窗口、分割栏

  • Ctrl-h,l,j,k - 用于在左、右、上、下分隔中移动。即使在vim和分割栏并排的情况下也可以使用 vim-tmux-navigator实现此功能。
  • Q - 进入Ex模式
  • vv - 垂直分割 (Ctrl-w,v)
  • ss - 水平分割 (Ctrl-w,s)
  • ,qo - 打开快速修复窗口grep的输出将显示在此窗口中
  • ,qc - 关闭快速修复窗口

Rails & Ruby

  • ,vv & ,cc 切换视图和控制器之间的命令是与:Rcontroller和:Rview相对应的映射。通过探索R系列命令您可以更多地了解rails.vim的乐趣
  • ,rs & ,rl 在iTerm中运行rspec或特定的spec行在iTerm窗口中查看信息
  • ,tt在spec文件中给一个块添加now: true标签, 然后通过rspec --tag=now测试该块。
  • ,ss & ,sl 通过使用spring rspec来实现相同的功能,可以通过缓存Rails env必须安装spring gem来加速Rails的测试。

Vim开发

  • ,vc - Vim命令复制光标下的命令并运行它。在测试vimrc中的单行更改时非常有用。
  • ,vr - 重新记录的Vim命令将当前文件作为Vim文件使用加载源代码。

SpaceVim界面元素:

SpaceVim的界面元素以[SPC] t或[SPC] T开头。您可以通过在vim窗口中按下[SPC]键来查看第二级指令。同样地,按下所需的第二级指令,然后您可以查看三级指令以进行查看。

  • SPC t h s - 显示/隐藏语法高亮显示
  • SPC t n - 显示/隐藏行号
  • SPC t h h - 高亮显示当前行
  • SPC T m - 显示/隐藏菜单栏(看不出区别)
  • SPC T t - 显示/隐藏工具栏(看不出区别)
  • SPC [1-9] - 跳转到指定的窗口
  • SPC f t - 打开文件树
  • SPC p f - 在当前项目中查找文件
  • SPC f y - 在命令行中显示并复制当前文件的绝对路径
  • SPC f S - 保存所有文件
  • SPC f o - 在文件树中查找当前文件
  • SPC f D - 删除文件并附带确认删除相关缓冲区
  • SPC f p - 在当前项目中搜索单词
  • SPC p / - 在当前项目中进行模糊搜索文本
  • SPC c l - 切换注释行状态
  • SPC c p - 切换注释段落状态

搜索文本

  • SPC s J - 在当前项目中搜索光标下的文本

帮助

  • SPC h d k - 开始一个输入提示,然后按下您想要描述的按键绑定。

iTerm

iTerm Solarized Colors

YADR将会在iTerm中安装Solarized颜色方案。您可以在“Profiles => Colors => Load Presets”中选择Solarized Dark。

Homebrew

Homebrew是一个缺失的OSX包管理系统它将会自动安装。

我们自动安装了一些常用的软件包如ctags、git、macvim、hub和RipGreprg。请注意我们的自动完成插件需要MacVim支持Lua。安装程序知道如何安装它但如果您之前已经安装过它您需要手动删除之前的MacVim。

常见问题

Check FAQ