Code Monkey home page Code Monkey logo

district10 / snippet-manager Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 3.0 2.82 MB

command-line snippets management via directory of text files / 基于目录和纯文本的命令行代码片段管理工具 (getting personal, won't update this repo anymore)

Home Page: https://www.jianshu.com/p/f10e7b4be427

License: MIT License

Shell 20.30% CMake 6.28% C 0.36% C++ 45.15% Java 4.74% JavaScript 5.89% TeX 0.16% Makefile 0.44% HTML 0.79% CSS 0.20% Vim Script 0.09% Python 14.10% Dockerfile 1.34% PLpgSQL 0.16%

snippet-manager's Introduction

Quick Try in Docker / 在 Docker 里试试
--------------------------------------

    make
    q vector

Quick Local Install / 快速本地安装
----------------------------------

    bash ./install.sh
    source ./sm.sh
    q vector

Cross-platform snippets manager (a command-line tool)
-----------------------------------------------------

Dependencies:
    -   grepping tool: `pt`
            +   pt: https://github.com/monochromegane/the_platinum_searcher
                    go get a binary from github release page for your platform
    -   live filtering tool: `percol`
            +   percol: https://github.com/mooz/percol
                    pip install percol

Configuration:
    source ~/git/snippet-manager/sm.sh          # put it into your .zshrc/.bashrc

Usages:
    q keyword                                   # search and print
    cq keyword                                  # search and copy to clipboard,
                                                  uses pbcopy on macOS, xclip on Linux
    viq keyword                                 # update snippet (I personally use vim)

    q keyword -G java                           # search only java snippets
    nq                                          # create a snippet

---

跨平台命令行代码片段管理工具
-----------------------

依赖项:
    -   perl/bash/sed (通常系统已自带)
    -   文件夹下文本搜索工具: pt
            +   pt: https://github.com/monochromegane/the_platinum_searcher
                    github 的 release 页面上可以下载二进制
    -   文本动态过滤工具: percol
            +   percol: https://github.com/mooz/percol
                    pip install percol

安装配置:
    source ~/git/snippet-manager/sm.sh          # 放到你的 .zshrc 或 .bashrc 里

使用方法:
    q keyword                                   # 搜索 keyword, 动态过滤, 并打印搜到的文件
    cq keyword                                  # 同上, 不打印而是放到剪切板
    viq keyword                                 # 不打印也不放到剪切板, 而是编辑 snippet

    q keyword -G java                           # 只搜索 java 后缀的文本, 更多使用请参考 pt 的文档
    nq                                          # 创建一个 snippet

示意图:(有点旧了,现在体验更好)

Configure Percol:

    cat ~/.percol.d/rc.py

    # Emacs like
    percol.import_keymap({
        "C-h" : lambda percol: percol.command.delete_backward_char(),
        "C-d" : lambda percol: percol.command.delete_forward_char(),
        "C-k" : lambda percol: percol.command.kill_end_of_line(),
        "C-y" : lambda percol: percol.command.yank(),
        "C-t" : lambda percol: percol.command.transpose_chars(),
        "C-a" : lambda percol: percol.command.beginning_of_line(),
        "C-e" : lambda percol: percol.command.end_of_line(),
        "C-b" : lambda percol: percol.command.backward_char(),
        "C-f" : lambda percol: percol.command.forward_char(),
        "M-f" : lambda percol: percol.command.forward_word(),
        "M-b" : lambda percol: percol.command.backward_word(),
        "M-d" : lambda percol: percol.command.delete_forward_word(),
        "M-h" : lambda percol: percol.command.delete_backward_word(),
        "C-n" : lambda percol: percol.command.select_next(),
        "C-p" : lambda percol: percol.command.select_previous(),
        "C-v" : lambda percol: percol.command.select_next_page(),
        "M-v" : lambda percol: percol.command.select_previous_page(),
        "M-<" : lambda percol: percol.command.select_top(),
        "M->" : lambda percol: percol.command.select_bottom(),
        "C-m" : lambda percol: percol.finish(),
        "C-j" : lambda percol: percol.finish(),
        "C-g" : lambda percol: percol.cancel(),
    })

snippet-manager's People

Contributors

district10 avatar

Stargazers

Peter Abbasi avatar  avatar Siyuan Wang avatar lbgws2 avatar Loeng avatar  avatar Nelson avatar  avatar jinzhaosn avatar Jiao Xiangyu avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.