• Dotar(zsh,tmux,vim,ag)


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

    背景

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

    开始

    需求

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

    安装

    bash -c "`curl -fsSL https://git.bitnet.fun:5004/Gaze/dotar/raw/commit/21638953a830aa657b1e0fe1b14ff65a1694ef60/install.sh`"
    
    • 1

    升级

    cd ~/.yadr
    git pull --rebase
    rake update
    
    • 1
    • 2
    • 3

    模块

    Zsh Commands

    文件
    命令参数描述
    交换F1 F2swap file F1 with file F2
    替换docReplace text recursively
    替换 选项:
      -f            文件正则表达式模式
      -s            源模式
      -d            目标模式
      -r            删除行
      --regex       使用正则表达式匹配模式
      --seperator=  分隔符, # 默认
      -h            显示这条信息"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    编辑
    快捷键别名
    Ctrl-RVim模式和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组成的随机字符串
    containsstr1 str2 … target
    Git

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

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

    命令别名描述
    gagit add
    gbgit branch新建分支
    gbc or gnbgit checkout -b新建并切换到新分支
    gbsgit show-branch
    gcgit commit --verbose
    gcogit checkout切换到目标分支
    gcpgit cherry-pick --ff
    gcfgit commit --amend --reuse-message HEAD重新提交且不更改commit信息
    gdgit diff
    gfgit fetch
    gfcgit clone
    gfmgit pull
    gfrgit pull --rebase拉取远程分支更新到本地
    glgit log
    gpcgit push --set-upstream origin "$(git-branch-current 2> /dev/null)"将本地更改推送到远程的同名分支
    grgit rebase合并分支到此分支
    gragit rebase --abort
    grcgit rebase --continue
    grsgit rebase --skip
    gsdgit stash drop
    gslgit stash list
    gspgit stash pop
    gstgit 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    mv update.html `d www`
    cp `f mov` .
    
    • 1
    • 2

    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

    • : 的缩写, 在我们的设置中是 \

    我们定义的内容

    基础

    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和RipGrep(‘rg’)。请注意,我们的自动完成插件需要MacVim支持Lua。安装程序知道如何安装它,但如果您之前已经安装过它,您需要手动删除之前的MacVim。

    常见问题

    Check FAQ

  • 相关阅读:
    MATLAB:拟合与插值
    Go基础13-理解Go语言代码块与作用域
    P1038 [NOIP2003 提高组] 神经网络 ( 拓扑
    Python 组合序号
    JDBC-08:数据库事务介绍以及事务的ACID属性和其隔离性
    【软件工具】PIE-Basic、ArcMap、ArcGIS Pro和QGIS 加载在线底图和影像
    iOS视图控件的内容显示和离屏渲染流程
    利用 Window bat 脚本方便日常开发
    Spring MVC的主要组件?
    java中的异常处理分析
  • 原文地址:https://blog.csdn.net/Xiao_tongtong/article/details/134411921