zoukankan      html  css  js  c++  java
  • 灰常牛逼的命令行备忘录 navi

    灰常牛逼的命令行备忘录 navi

    1. navi命令简介

    1.1 navi命令简介

    命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘。举个栗子,如果我们常用 git 命令行管理代码、利用 conda 命令管理开发环境,如果过一段时间没用了,那么你还记得如何用 git 将本地代码同步到 GitHub,还记得如何用 conda 命令删除一个本地环境吗?
    当然,我们可以在网上搜索一下,也能快速找到答案,但总之还是挺不方便的。我们常见的做法是,将容易忘记的命令行写到笔记中去,忘了再查就是。但现在,有一个新的开源项目 navi,它提供了一个交互式的备忘录。
    可以说,不用做笔记、不用查 History,navi 允许你查阅所有的备忘录并执行对应的命令,我们再也不用担心忘记命令行了。

    1.2 navi命令特性

    • 通过给定关键字或文字描述,更便捷地查找命令
    • 如果作为长命令的辅助部分,查找后的结果也可以直接复制粘贴到主命令
    • 命令行使用习惯或备忘录可以与其它人共享
    • 该工具也能实现命令行的自动补全

    1.3 参考文档

    https://url.cn/5pyiQLg
    https://url.cn/5EE2Ejc
    https://mp.weixin.qq.com/s/OOtzPgilCRos_7q8GqwvZQ

    2. navi命令安装

    2.1 先安装fzf

    [root@navi ~]# git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    
    [root@navi ~]# ~/.fzf/install     #一路按y
    
    [root@navi ~]# . ~/.bashrc
    

    2.2 再安装navi

    [root@navi ~]# git clone --depth 1 http://github.com/denisidoro/navi /opt/navi
    
    [root@navi ~]# cd /opt/navi
    [root@navi navi]# make install
    scripts/install
    

    2.3 如果通过ssh每次访问都需要重新source一下,更改bash

    [root@navi ~]# vim ~/.bash_profile
    [root@navi ~]# tail -3 ~/.bash_profile       #在末尾加上此三行
    if test -f .bashrc ; then      
    source .bashrc                 
    fi                             
    

    2.4 即可使用navi命令

    [root@navi ~]# navi
    

    image.png-263.1kB

    image.png-189.4kB

    2.5 navi命令简介

    2.5.1 默认情况下,选中的命令会直接执行。如果你只想将选中的命令输入到命令行上,你可以加上 --print 选项。

    navi --print
    

    2.5.2 你也可以在 navi 命令后直接加入 query 子命令来预先过滤要输出的命令结果。

    navi query <cmd>
    

    2.5.3 如果你想查找一些命令的常用语法,你也可以使用 search 子命令来从在线仓库中下载对应的备忘清单。

    navi search <cmd>
    

    3. 自定义备忘录

    3.1 navi 所使用的备忘清单都是以 .cheat 为后缀的一些文件,navi 安装完后,默认包括了以下这些备忘清单。

    https://github.com/denisidoro/navi
    image.png-447.6kB

    3.2 navi的自定义速查表

    • navi可以在后面加入search来快速查找命令,也可以直接输入navi并回车,进入界面后再查找。
    • 如果你以为navi只有这点本事就完全错了,navi之所以一上线就如此受欢迎,主要原因是它强大的自定义功能。而且自定义注释是支持中文的!
    • 原本的navi项目自带7个速查表,远远不够用。没关系,我们可以自己写一份速查表,放在navi速查表的路径下。

    3.2.1 要实现此功能,我们可以用 --dir 参数将自己定义的备忘录 ( .cheat 文件) 传递给 navi 使用。

    navi --dir "/folder/with/cheats"
    

    3.2.2 如果你觉得每次都通过 --dir 参数过于麻烦,你也可以通过环境变量来进行设置。

    export NAVI_PATH="/folder/with/cheats:/another/folder"
    

    3.2.3 navi自定义备忘录规则

    • 可以直接把我们的备忘录文件夹添加到 Bash 环境中。机器之心做了更简单的一个操作,直接查找该工具的安装目录,然后手动删增备忘录,我们的发现这也是可以的。/opt/navi/cheats/路径下就能找到默认备忘录。
    • 当然,我们是要把以前的笔记做成.cheat 纯文本的,它的用法也不难,只不过要实现补全或带参数的命令,还是需要一些特殊的语法。如下是一个标准的.cheat 文件:

    image.png-135.6kB

    3.2.4 cheat 语法主要有以下几点:

    • 以「%」开头的行包含了特定的 Tag,也就是说上图「git」会作为标签加到该文件所有命令行最后;
    • 以「#」开头的行描述了该命令行的用法;
    • 以「$」开头的行应该为给定参数生成建议值;
    • 其它所有非空行应该都为可执行命令行。

    3.2.5 我们来看一个官方给出的 .cheat 文件的示例内容

    % git, code
    # Change branch	
    git checkout <branch>
    
    $ branch: git branch | awk '{print $NF}'
    
  • 相关阅读:
    OC 单例实现
    iOS 代码调试
    iOS
    iOS 11 scroll滚动偏移,tableview偏移44,获取view的宽和高
    swift 约束
    OC
    OC 线程操作
    OC 线程操作
    【第35题】2019年OCP认证12C题库062考试最新考试原题-35
    【第34题】2019年OCP认证12C题库062考试最新考试原题-34
  • 原文地址:https://www.cnblogs.com/ywb123/p/11804158.html
Copyright © 2011-2022 走看看