インフラエンジニアのPC環境

インフラエンジニアは常に効率環境を目指している

ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム

OS


CUIソフト

今はほぼ未使用

操作を覚える必要のあるおすすめソフト

Action unknown: copypageplugin__copy
software:filterlingtool:percol


「ソフトウェア」一覧に戻る

コマンド結果をフィルタリングするpercol

percolとは

コマンド結果をフィルタリングしてくれます。

https://github.com/mooz/percol
https://github.com/osdakira/python3-percol


percolインストール

Mac

homebrewを準備している場合
$ sudo pip install percol
ubuntu
$ apt install percol


percolとMigemoの連携

cmigemo のインストール

brew install cmigemo

pymigemo のインストール

curl -O http://www.atzm.org/etc/files/pymigemo/pymigemo-0.4.tar.gz
sudo pip install pymigemo-0.4.tar.gz


percol設定

mkdir ~/.percol.d
vim ~/.percol.d/rc.py
import sys, commands
from percol.command import SelectorCommand
from percol.key import SPECIAL_KEYS
from percol.finder import FinderMultiQueryMigemo, FinderMultiQueryRegex

## prompt
# Case Insensitive / Match Method に応じてプロンプトに表示
def dynamic_prompt():
    prompt = ur""
    if percol.model.finder.__class__ == FinderMultiQueryMigemo:
        prompt += "[Migemo]"
    elif percol.model.finder.__class__ == FinderMultiQueryRegex:
        prompt += "[Regexp]"
    else:
        prompt += "[String]"
    if percol.model.finder.case_insensitive:
        prompt += "[a]"
    else:
        prompt += "[A]"
    prompt += "> %q"
    return prompt

percol.view.__class__.PROMPT = property(lambda self: dynamic_prompt())

## migemo
# Mac と Ubuntu で辞書のパスを変える
if sys.platform == "darwin":
    FinderMultiQueryMigemo.dictionary_path = "/usr/local/Cellar/cmigemo/20110227/share/migemo/utf-8/migemo-dict"
else:
    FinderMultiQueryMigemo.dictionary_path = "/usr/share/cmigemo/utf-8/migemo-dict"

## kill
# Mac の場合は kill(yank)をクリップボードと共有する
if sys.platform == "darwin":
    def copy_end_of_line_as_kill(self):
        commands.getoutput("echo " + self.model.query[self.model.caret:] + " | pbcopy")
        self.model.query  = self.model.query[:self.model.caret]

    def paste_as_yank(self):
        self.model.insert_string(commands.getoutput("pbpaste"))

    SelectorCommand.kill_end_of_line = copy_end_of_line_as_kill
    SelectorCommand.yank = paste_as_yank

## keymap
# Mac で delete(backspace)が効くようにする
SPECIAL_KEYS.update({
    127: '<backspace>'
})


参考


software/filterlingtool/percol.txt · 最終更新: 2022/06/09 23:11 by kurihara

ページ用ツール