{
    "componentChunkName": "component---src-templates-issues-tsx",
    "path": "/issues/432",
    "result": {"data":{"issuesJson":{"id":"8f9d8042-0ebf-5a0d-adf6-9a4df8896b81","title":"peco/peco: 简单的交互式过滤工具。","number":432,"bodyHTML":"<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a><br><br></p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th align=\"right\">Repos</th>\n<th align=\"left\"><a href=\"https://github.com/peco/peco\">peco/peco</a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"right\"><strong>Views</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/f595da3220fb19a3840af875c767c7c5d510ed33c2b1033e3839b47ba68f9101/68747470733a2f2f76696577732e77686174696c656172656e65642e746f6461792f76696577732f6769746875622f7065636f2f7065636f2e737667\" alt=\"views\" data-canonical-src=\"https://views.whatilearened.today/views/github/peco/peco.svg\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Stars</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/d3e198d398efc6c5ab7f22e26f18ec9d69c3c0478f389ef7375edaf5806f0e97/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f7065636f2f7065636f3f636f6c6f723d663266303864266c6f676f3d556e64657274616c65266c6f676f436f6c6f723d656234363330\" alt=\"stars\" data-canonical-src=\"https://img.shields.io/github/stars/peco/peco?color=f2f08d&amp;logo=Undertale&amp;logoColor=eb4630\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Forks</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/0779bc5c53b964c64d64bbbbabb948cbdb0ee72e554ec3caccbd51a91eade401/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f7065636f2f7065636f3f636f6c6f723d626138366562266c6f676f3d48616e647368616b65266c6f676f436f6c6f723d656136616136\" alt=\"forks\" data-canonical-src=\"https://img.shields.io/github/forks/peco/peco?color=ba86eb&amp;logo=Handshake&amp;logoColor=ea6aa6\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>License</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/c55d3b8a0d0ca593e2c9fc69731812b28466ec48eb349649f88a712f5d19b964/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7065636f2f7065636f3f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e53556845556741414144414141414177434159414141425841766d48414141414358424957584d41414173544141414c457745416d70775941414144336b6c45515652346e4f335953557a5555426748384a726f57567255474a66456d3773584e63534446784d544c327069347348456778654e526f77586770455742445552522532424e414e4f4b4f4b36366f6f4b4a4742586545475263574163455646475152484677516d483525324630774861655748493944554455354c356b6e6568644f62377a66652532423139636e434a47495243516945596c514237594a4979474c38616f73756c565a36695246516a69474b6b7564576735614c6c704f70704e586e665071773555304459524a6d56786a4367464633424c755a476d416f5655694b4541726d583744375553677351706f72674761336748664b34483663754262435644334771683141352532424c6745253242467749656e514d306a6f446f66714c6f48564e7742796d384370546e416d327a51713073676478624964515a556c416b7150415a3664676a303541446f59526f6f66792532466f5869726f376b3551586a4c6f70677a4b69514e6c4c4461716f4967754577426a7a7150355066446a45394479495879493633464d547751464d43567271774e61763451666f52673538514625324266724d485172454b3844546f434d714e4179574e4866786d54526f4c4f726d5352566747744466714345715a4f4851727a6f34706243557341333431365169364551394b476a6345465267484f724f4b6e5536574162396247455459656b4b7843766a546167394534706a653534446b3551503862624d4859762532464333756541654a6b50304f4778422532424a70426e4172595238455951516e6f4e31414e4661426e5050356c385372736559514c303641646b30464a5938484f5761424d6c6541486a683068506f73497a6c6f3876304125324633345a694f6548726130714b52504d5653493774762532423932747725324676687855654252713456454c674d376642714b354770526d6f514c584e7075625475367a6f4e52706754386e5051627138347764253246494375767978694b4871694e41664933774d367549684271476b4c696977414f734b44714f68743749747239567938536a52424557667941627225324668523142667056514664484a42253246423268683778376a36517077435665655951326b72554235436c636a3641326d3067576a25324244306d4c34397a573563517943484c4e37726a6c6d6d6174457958582532464372547a412532466f51785a6b576c39474a5443566f25324279546a3837253242346769504b6376307149486f344156344430565a727251493334706e70524d36357875652532467a417265453425324654253246536f676c664542794d7369517441546c4c3352414a355948725378365a44665337307337754d486842705225324659423573305057366f455270316236253246667252684b3353444c35546965364f515548516c5133735644752532427a50636b397657453973747225324236496a533967486d5750616861444a25324277434b364e494242587348423948796b587378774470686c436d416476706c6162554a4e6e5a504239342532464e7436784f6538587a4562503257684d335741673147756236744825324233513150673337365239713475716c6e6f36676448476a444f5139306562303141484d3672596975554a314f713472344656756a35765239427a4d3957674e764f7977446869495951467667626366774166774d764863615067425041253246447948476a50624e394138616d6562636477416444354e6633373574787165774e5552656f797677424958594c645170576c6877465771745061435044334173467541535636717171496c62304a766b564331464c39576b4c55556c55574b337a585a4c46432532423125324642726f46746f364f7358497545594a5034447a7a5732594656316f4a614141414141456c46546b5375516d4343\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/peco/peco?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD3klEQVR4nO3YSUzUUBgH8JroWVrUGJfEm7sXNcSDFxMTL2pi4sHEgxeNRowXgpEWBDURR%2BNANOKOK66ooKJGBXeEGRcWAcEVFGQRHFwQmH5%2F0wHaeWHI9DUDU5L5knehdOb7zfe%2B19cnCJGIRCQiEYlQB7YJIyGL8aosulVZ6iRFQjiGKkudWg5aLlpOppNXnfPqw5U0DYRJmVxjCgFF3BLuZGmAoVUiKEArmX7D7USgsQporgGa3gHfK4H6cuBbCVD3Gqh1A5%2BLgE%2BFwIenQM0joDofqLoHVNwBym8CpTnAm2zQq0sgdxbIdQZUlAkqPAZ6dgj05ADoYRoofy%2FoXiro7k5QXjLopgzKiQNlLDaqoIguEwBjzqP5PfDjE9DyIXyI63FMTwQFMCVrqwNav4QfoRg58QF%2BfrMHQrEK8DToCMqNAyWNHfxmTRoLOrmSRVgGtDfqCEqZOHQrzo4pbCUsA3416Qi6EQ9KGjcEFRgHOrOKnU6WAb9bGETYekKxCvjTag9E4pje54Dk5QP8bbMHYv%2FC3ueAeJkP0OGxB%2BJpBnArYR8EYQQnoN1ANFaBnPP5l8SrseYQL06Adk0FJY8HOWaBMleAHjh0hPosIzlo8v0A%2F34ZiOeHra0qKRPMVSI7tv%2B92tw%2FvhxUeBRq4VELgM7fBqK5GpRmoQLXNpubTu6zoNRpgT8nPQbq84wd%2FICuvyxiKHqiNAfI3wM6uIhBqGkLiiwAOsKDqOht7Itr9Vy8SjRBEWfyAbr%2FhR1BfpVQFdHJB%2FB2hh7x7j6QpwCVeeYQ2krUB5Clcj6A2m0gWj%2BD0mL49zW5cQyCHLN7rjlmmatEyXX%2FCrTzA%2FoQxZkWl9GJTCVo%2ByTj87%2B4giPKcv0qIHo4AV4D0VZrrQI34pnpRM65xue%2FzAreE4%2FT%2FSoglfEByMsiQtATlL3RAJ5YHrSx6ZDfS70s7uMHhBpR%2FYB5s0PW6oERp1b6%2FfrRhK3SDL5Tie6OQUHQlQ3sVDu%2BzPck9vWE9str%2B6IjS9gHmWPahaDJ%2BwCK6NIBBXsHB9HykXsxwDphlCmAdvplabUJNnZPB94%2FNt6xOe8XzEbP2WhM3WAg1Gub6tH%2B3Q1Pg376R9q4uqlno6gdHGjDOQ90eb01AHM6rYiuUJ1Oq4r4FVuj5vR9BzM9WgNvOywDhiIYQFvgbcfwAfwMvHcaPgBPA%2FDyHGjPbN9A8amebcdwAdD5Nf375txqewNUReoyvwBIXYLdQpWlhwFWqtPaCPD3AsFuASV6qqqIlb0JvkVC1FL9WkLUUlUWK3zXZLFC%2B1%2FBroFto6OsXIuEYJP4DzzW2YFV1oJaAAAAAElFTkSuQmCC\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>UpdatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/bffb923305554859ae7ce94146ba68f8d8e1256cb5885e4c0877bd77fb695c99/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f7065636f2f7065636f3f646973706c61795f74696d657374616d703d636f6d6d6974746572266c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d557064617465644174\" alt=\"last-commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/peco/peco?display_timestamp=committer&amp;logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=UpdatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>CreatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/2a62bc351342b4d4af0f8b221dd3eba1803398fad86ef4bb9f80674c720fabdb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f637265617465642d61742f7065636f2f7065636f3f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d437265617465644174\" alt=\"create-at\" data-canonical-src=\"https://img.shields.io/github/created-at/peco/peco?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=CreatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<a href=\"https://github.com/opsre/awesome-ops\">\n</a><p dir=\"auto\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/b964a36ea4078c39f603d46a29436371c7541a2f26e0228d7b21b9d9805b43d3/68747470733a2f2f736f6369616c6966792e6769742e63692f6f707372652f617765736f6d652d6f70732f696d6167653f6465736372697074696f6e3d3126666f6e743d42697474657226666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246617661746172732e67697468756275736572636f6e74656e742e636f6d25324675253246313838353638303230266e616d653d31266f776e65723d31267061747465726e3d436972637569742b426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874\" alt=\"\" data-canonical-src=\"https://socialify.git.ci/opsre/awesome-ops/image?description=1&amp;font=Bitter&amp;forks=1&amp;issues=1&amp;language=1&amp;logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F188568020&amp;name=1&amp;owner=1&amp;pattern=Circuit+Board&amp;pulls=1&amp;stargazers=1&amp;theme=Light\" style=\"max-width: 100%;\"></a></p>\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a>\n</div>\n<h1 dir=\"auto\">peco</h1>\n<p dir=\"auto\">Simplistic interactive filtering tool</p>\n<p dir=\"auto\"><em>NOTE</em>: If you are viewing this on GitHub, this document refers to the state of <code class=\"notranslate\">peco</code> in whatever current branch you are viewing, <em>not</em> necessarily the state of a currently released version. Please make sure to checkout the <a href=\"./Changes\">Changes</a> file for features and changes.</p>\n<p dir=\"auto\">This README is long and comprehensive. Use the <a href=\"#table-of-contents\">Table of Contents</a> to navigate to the section that interests you. It has been placed at the bottom of the README file because of its length.</p>\n<blockquote>\n<p dir=\"auto\">If you use peco, please consider sponsoring the authors of this project from the \"Sponsor\" button on the project page at <a href=\"https://github.com/peco/peco\">https://github.com/peco/peco</a>. Sponsorship plans start at $1 :)</p>\n</blockquote>\n<h1 dir=\"auto\">Description</h1>\n<p dir=\"auto\"><code class=\"notranslate\">peco</code> (pronounced <em>peh-koh</em>) is based on a python tool, <a href=\"https://github.com/mooz/percol\">percol</a>. <code class=\"notranslate\">percol</code> was darn useful, but I wanted a tool that was a single binary, and forget about python. <code class=\"notranslate\">peco</code> is written in Go, and therefore you can just grab <a href=\"https://github.com/peco/peco/releases\">the binary releases</a> and drop it in your $PATH.</p>\n<p dir=\"auto\"><code class=\"notranslate\">peco</code> can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results.</p>\n<p dir=\"auto\">For basic usage, continue down below. For more cool elaborate usage samples, <a href=\"https://github.com/peco/peco/wiki/Sample-Usage\">please see the wiki</a>, and if you have any other tricks you want to share, please add to it!</p>\n<h2 dir=\"auto\">Demo</h2>\n<p dir=\"auto\">Demos speak more than a thousand words! Here's me looking for a process on my mac. As you can see, you can page through your results, and you can keep changing the query:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/72377083ae9978c7e03233368179be79981db83a624efadcffe798d0c7fa0721/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d70732e676966\"><img src=\"https://camo.githubusercontent.com/72377083ae9978c7e03233368179be79981db83a624efadcffe798d0c7fa0721/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d70732e676966\" alt=\"Executed ps -ef | peco, then the query root was typed. This shows all lines containing the word root\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-ps.gif\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Here's me trying to figure out which file to open:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/4a8e4c43bdb65ba41600a35a94d8c92d64b0b10fbb067f8c55e04c724b58e1ef/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d66696c656e616d652e676966\"><img src=\"https://camo.githubusercontent.com/4a8e4c43bdb65ba41600a35a94d8c92d64b0b10fbb067f8c55e04c724b58e1ef/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d66696c656e616d652e676966\" alt=\"Executed find . -name '*.go' | peco (within camlistore repository), then the query camget was typed. This shows all lines including the word camget\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-filename.gif\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">When you combine tools like zsh, peco, and <a href=\"https://github.com/motemen/ghq\">ghq</a>, you can make managing/moving around your huge dev area a piece of cake! (this example doesn't use zsh functions so you can see what I'm doing)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/6ccbb15d89e55508e560c3a54863000d1cd9863081bb55f3e1970f790868420f/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6768712e676966\"><img src=\"https://camo.githubusercontent.com/6ccbb15d89e55508e560c3a54863000d1cd9863081bb55f3e1970f790868420f/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6768712e676966\" alt=\"Executed cd $(ghq list --full-path | peco --query peco) to show all repositories containing the word peco, then to change directories into the one selected\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-ghq.gif\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\">Features</h1>\n<h2 dir=\"auto\">Incremental Search</h2>\n<p dir=\"auto\">Search results are filtered as you type. This is great to drill down to the<br>\nline you are looking for</p>\n<p dir=\"auto\">Multiple terms turn the query into an \"AND\" query:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/b64a7e6ddea13708525b54066383a1ea6a981749153c01891285752615d14399/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d756c7469706c652d717565726965732e676966\"><img src=\"https://camo.githubusercontent.com/b64a7e6ddea13708525b54066383a1ea6a981749153c01891285752615d14399/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d756c7469706c652d717565726965732e676966\" alt=\"Executed ps aux | peco, then the query root app was typed. This shows all lines containing both root and app\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-multiple-queries.gif\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">When you find that line that you want, press enter, and the resulting line<br>\nis printed to stdout, which allows you to pipe it to other tools</p>\n<h2 dir=\"auto\">Select Multiple Lines</h2>\n<p dir=\"auto\">You can select multiple lines! (this example uses C-Space)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/c5492acc1fe45a0a773022ccc98aaa32d6397a611d68932edf8ba4ed11cd90e0/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d756c7469706c652d73656c656374696f6e2e676966\"><img src=\"https://camo.githubusercontent.com/c5492acc1fe45a0a773022ccc98aaa32d6397a611d68932edf8ba4ed11cd90e0/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d756c7469706c652d73656c656374696f6e2e676966\" alt=\"Executed ls -l | peco, then used peco.ToggleSelection to select multiple lines\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-multiple-selection.gif\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Select Range Of Lines</h2>\n<p dir=\"auto\">Not only can you select multiple lines one by one, you can select a range of lines (Note: The ToggleRangeMode action is not enabled by default. You need to put a custom key binding in your config file)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/0fc4632ca29f151c3e2a51d96a28c638d69135f9c7de9084bf5ee98ad1086f9b/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d72616e67652d6d6f64652e676966\"><img src=\"https://camo.githubusercontent.com/0fc4632ca29f151c3e2a51d96a28c638d69135f9c7de9084bf5ee98ad1086f9b/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d72616e67652d6d6f64652e676966\" alt=\"Executed ps -ef | peco, then used peco.ToggleRangeMode to select a range of lines\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-range-mode.gif\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Select Filters</h2>\n<p dir=\"auto\">Different types of filters are available. Default is case-insensitive filter, so lines with any case will match. You can toggle between IgnoreCase, CaseSensitive, SmartCase, Regexp and Fuzzy filters.</p>\n<p dir=\"auto\">The SmartCase filter uses case-<em>insensitive</em> matching when all of the queries are lower case, and case-<em>sensitive</em> matching otherwise.</p>\n<p dir=\"auto\">The Regexp filter allows you to use any valid regular expression to match lines.</p>\n<p dir=\"auto\">The Fuzzy filter allows you to find matches using partial patterns. For example, when searching for <code class=\"notranslate\">ALongString</code>, you can enable the Fuzzy filter and search <code class=\"notranslate\">ALS</code> to find it. The Fuzzy filter uses smart case search like the SmartCase filter. With the <code class=\"notranslate\">FuzzyLongestSort</code> flag enabled in the configuration file, it does a smarter match. It sorts the matched lines by the following precedence: 1. longer substring, 2. earlier (left positioned) substring, and 3. shorter line.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/5e0631b21e5055cf8df96544c95d8572ef619b379c23690329236e4ce002a73b/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d6174636865722e676966\"><img src=\"https://camo.githubusercontent.com/5e0631b21e5055cf8df96544c95d8572ef619b379c23690329236e4ce002a73b/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6d6174636865722e676966\" alt=\"Executed ps aux | peco, then typed google, which matches the Chrome.app under IgnoreCase filter type. When you change it to Regexp filter, this is no longer the case. But you can type (?i)google instead to toggle case-insensitive mode\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-matcher.gif\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Selectable Layout</h2>\n<p dir=\"auto\">As of v0.2.5, if you would rather not move your eyes off of the bottom of the screen, you can change the screen layout by either providing the <code class=\"notranslate\">--layout=bottom-up</code> command line option, or set the <code class=\"notranslate\">Layout</code> variable in your configuration file</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/6bc4547eceb2196af4aa1231ce24d46dd61dc662919080d96bd52315bb8eee73/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6c61796f75742d626f74746f6d2d75702e676966\"><img src=\"https://camo.githubusercontent.com/6bc4547eceb2196af4aa1231ce24d46dd61dc662919080d96bd52315bb8eee73/687474703a2f2f7065636f2e6769746875622e696f2f696d616765732f7065636f2d64656d6f2d6c61796f75742d626f74746f6d2d75702e676966\" alt=\"Executed ps -ef | peco --layout=bottom-up to toggle inverted layout mode\" data-animated-image=\"\" data-canonical-src=\"http://peco.github.io/images/peco-demo-layout-bottom-up.gif\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Works on Windows!</h2>\n<p dir=\"auto\">I have been told that peco even works on windows :) Look ma! I'm not lying!</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://gist.githubusercontent.com/taichi/26814518d8b00352693b/raw/b7745987de32dbf068e81a8308c0c5ed38138649/peco.gif\"><img src=\"https://gist.githubusercontent.com/taichi/26814518d8b00352693b/raw/b7745987de32dbf068e81a8308c0c5ed38138649/peco.gif\" alt=\"Showing peco running on Windows cmd.exe\" data-animated-image=\"\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\">Installation</h1>\n<h3 dir=\"auto\">Just want the binary?</h3>\n<p dir=\"auto\">Go to the <a href=\"https://github.com/peco/peco/releases\">releases page</a>, find the version you want, and download the zip file. Unpack the zip file, and put the binary to somewhere you want (on UNIX-y systems, /usr/local/bin or the like). Make sure it has execution bits turned on. Yes, it is a single binary! You can put it anywhere you want :)</p>\n<p dir=\"auto\"><em>THIS IS THE RECOMMENDED WAY</em> (except for macOS homebrew users)</p>\n<h3 dir=\"auto\">macOS (Homebrew, Scarf)</h3>\n<p dir=\"auto\">If you're on macOS and want to use homebrew:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install peco\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install peco\n</code></pre></div>\n<p dir=\"auto\">or with Scarf:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"scarf install peco\"><pre class=\"notranslate\"><code class=\"notranslate\">scarf install peco\n</code></pre></div>\n<h3 dir=\"auto\">Debian and Ubuntu based distributions (APT, Scarf)</h3>\n<p dir=\"auto\">There is an official Debian package that can be installed via APT:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"apt install peco\"><pre class=\"notranslate\"><code class=\"notranslate\">apt install peco\n</code></pre></div>\n<p dir=\"auto\">or with Scarf:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"scarf install peco\"><pre class=\"notranslate\"><code class=\"notranslate\">scarf install peco\n</code></pre></div>\n<h3 dir=\"auto\">Void Linux (XBPS)</h3>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"xbps-install -S peco\"><pre class=\"notranslate\"><code class=\"notranslate\">xbps-install -S peco\n</code></pre></div>\n<h3 dir=\"auto\">Arch Linux</h3>\n<p dir=\"auto\">There is an official Arch Linux package that can be installed via <code class=\"notranslate\">pacman</code>:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pacman -Syu peco\"><pre class=\"notranslate\"><code class=\"notranslate\">pacman -Syu peco\n</code></pre></div>\n<h3 dir=\"auto\">Windows (Chocolatey NuGet Users)</h3>\n<p dir=\"auto\">There's a third-party <a href=\"https://chocolatey.org/packages/peco\" rel=\"nofollow\">peco package available</a> for Chocolatey NuGet.</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"C:\\&gt; choco install peco\"><pre class=\"notranslate\"><code class=\"notranslate\">C:\\&gt; choco install peco\n</code></pre></div>\n<h3 dir=\"auto\">Building peco yourself</h3>\n<p dir=\"auto\">Make sure to clone the source code under $GOPATH (i.e. $GOPATH/src/github.com/peco/peco). This is required<br>\nas the main binary refers to an internal package, which requires that the source code be located in<br>\nthe correct package location.</p>\n<p dir=\"auto\">Navigate to the directory above, then run:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"make build\"><pre class=\"notranslate\"><code class=\"notranslate\">make build\n</code></pre></div>\n<p dir=\"auto\">This will do the following:</p>\n<ol dir=\"auto\">\n<li>Run <code class=\"notranslate\">go build</code> to create <code class=\"notranslate\">releases/$VERSION_NUMBER/peco</code></li>\n</ol>\n<p dir=\"auto\">You can copy the binary to somewhere in your $PATH, and it should just work.</p>\n<p dir=\"auto\">The above installs the correct versions of peco's dependencies. Then build it:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"go build cmd/peco/peco.go\"><pre class=\"notranslate\"><code class=\"notranslate\">go build cmd/peco/peco.go\n</code></pre></div>\n<p dir=\"auto\">This compiles a peco binary in the root of the cloned peco repository. Copy this file to an appropriate location.</p>\n<h3 dir=\"auto\">go get IS NOT RECOMMENDED</h3>\n<p dir=\"auto\">Please DO NOT use <code class=\"notranslate\">go get</code> to install this tool. It bypasses the developers' intention of controlling the dependency versioning.</p>\n<h1 dir=\"auto\">Command Line Options</h1>\n<h3 dir=\"auto\">-h, --help</h3>\n<p dir=\"auto\">Display a help message</p>\n<h3 dir=\"auto\">--version</h3>\n<p dir=\"auto\">Display the version of peco</p>\n<h3 dir=\"auto\">--query </h3>\n<p dir=\"auto\">Specifies the default query to be used upon startup. This is useful for scripts and functions where you can figure out beforehand what the most likely query string is.</p>\n<h3 dir=\"auto\">--print-query</h3>\n<p dir=\"auto\">When exiting, prints out the query typed by the user as the first line of output. The query will be printed even if there are no matches, if the program is terminated normally (i.e. enter key). On the other hand, the query will NOT be printed if the user exits via a cancel (i.e. esc key).</p>\n<h3 dir=\"auto\">--rcfile </h3>\n<p dir=\"auto\">Pass peco a configuration file, which currently must be a JSON file. If unspecified it will try a series of files by default. See <code class=\"notranslate\">Configuration File</code> for the actual locations searched.</p>\n<h3 dir=\"auto\">-b, --buffer-size </h3>\n<p dir=\"auto\">Limits the buffer size to <code class=\"notranslate\">num</code>. This is an important feature when you are using peco against a possibly infinite stream, as it limits the number of lines that peco holds at any given time, preventing it from exhausting all the memory. By default the buffer size is unlimited.</p>\n<h3 dir=\"auto\">--null</h3>\n<p dir=\"auto\">WARNING: EXPERIMENTAL. This feature will probably stay, but the option name may change in the future.</p>\n<p dir=\"auto\">Changes how peco interprets incoming data. When this flag is set, you may insert NUL ('\\0') characters in your input. Anything before the NUL character is treated as the string to be displayed by peco and is used for matching against user query. Anything after the NUL character is used as the \"result\": i.e., when peco is about to exit, it displays this string instead of the original string displayed.</p>\n<p dir=\"auto\"><a href=\"https://gist.github.com/mattn/3c7a14c1677ecb193acd\">Here's a simple example of how to use this feature</a></p>\n<h3 dir=\"auto\">--initial-index</h3>\n<p dir=\"auto\">Specifies the initial line position upon start up. E.g. If you want to start out with the second line selected, set it to \"1\" (because the index is 0 based).</p>\n<h3 dir=\"auto\">--initial-filter <code class=\"notranslate\">IgnoreCase|CaseSensitive|SmartCase|Regexp|Fuzzy</code></h3>\n<p dir=\"auto\">Specifies the initial filter to use upon start up. You should specify the name of the filter like <code class=\"notranslate\">IgnoreCase</code>, <code class=\"notranslate\">CaseSensitive</code>, <code class=\"notranslate\">SmartCase</code>, <code class=\"notranslate\">Regexp</code> and <code class=\"notranslate\">Fuzzy</code>. Default is <code class=\"notranslate\">IgnoreCase</code>.</p>\n<h3 dir=\"auto\">--prompt</h3>\n<p dir=\"auto\">Specifies the query line's prompt string. When specified, takes precedence over the configuration file's <code class=\"notranslate\">Prompt</code> section. The default value is <code class=\"notranslate\">QUERY&gt;</code>.</p>\n<h3 dir=\"auto\">--layout <code class=\"notranslate\">top-down|bottom-up</code></h3>\n<p dir=\"auto\">Specifies the display layout. Default is <code class=\"notranslate\">top-down</code>, where query prompt is at the top, followed by the list, then the system status message line. <code class=\"notranslate\">bottom-up</code> changes this to the list first (displayed in reverse order), the query prompt, and then the system status message line.</p>\n<p dir=\"auto\">For <code class=\"notranslate\">percol</code> users, <code class=\"notranslate\">--layout=bottom-up</code> is almost equivalent of <code class=\"notranslate\">--prompt-bottom --result-bottom-up</code>.</p>\n<h3 dir=\"auto\">--select-1</h3>\n<p dir=\"auto\">When specified <em>and</em> the input contains exactly 1 line, peco skips prompting you for a choice, and selects the only line in the input and immediately exits.</p>\n<p dir=\"auto\">If there are multiple lines in the input, the usual selection view is displayed.</p>\n<h3 dir=\"auto\">--on-cancel <code class=\"notranslate\">success|error</code></h3>\n<p dir=\"auto\">Specifies the exit status to use when the user cancels the query execution.<br>\nFor historical and back-compatibility reasons, the default is <code class=\"notranslate\">success</code>, meaning if the user cancels the query, the exit status is 0. When you choose <code class=\"notranslate\">error</code>, peco will exit with a non-zero value.</p>\n<h3 dir=\"auto\">--selection-prefix <code class=\"notranslate\">string</code></h3>\n<p dir=\"auto\">When specified, peco uses the specified prefix instead of changing line color to indicate currently selected line(s). default is to use colors. This option is experimental.</p>\n<h3 dir=\"auto\">--exec <code class=\"notranslate\">string</code></h3>\n<p dir=\"auto\">When specified, peco executes the specified external command (via shell), with peco's currently selected line(s) as its input from STDIN.</p>\n<p dir=\"auto\">Upon exiting from the external command, the control goes back to peco where you can keep browsing your search buffer, and to possibly execute your external command repeatedly afterwards.</p>\n<p dir=\"auto\">To exit out of peco when running in this mode, you must execute the Cancel command, usually the escape key.</p>\n<h1 dir=\"auto\">Configuration File</h1>\n<p dir=\"auto\">peco by default consults a few locations for the config files.</p>\n<ol dir=\"auto\">\n<li>Location specified in --rcfile. If this doesn't exist, peco complains and exits</li>\n<li>$XDG_CONFIG_HOME/peco/config.json</li>\n<li>$HOME/.config/peco/config.json</li>\n<li>for each directory listed in $XDG_CONFIG_DIRS, $DIR/peco/config.json</li>\n<li>If all else fails, $HOME/.peco/config.json</li>\n</ol>\n<p dir=\"auto\">Below are configuration sections that you may specify in your config file:</p>\n<ul dir=\"auto\">\n<li><a href=\"#global\">Global</a></li>\n<li><a href=\"#keymaps\">Keymaps</a></li>\n<li><a href=\"#styles\">Styles</a></li>\n<li><a href=\"#customfilter\">CustomFilter</a></li>\n<li><a href=\"#prompt\">Prompt</a></li>\n<li><a href=\"#initialmatcher\">InitialMatcher</a></li>\n<li><a href=\"#use256color\">Use256Color</a></li>\n</ul>\n<h2 dir=\"auto\">Global</h2>\n<p dir=\"auto\">Global configurations that change the global behavior.</p>\n<h3 dir=\"auto\">Prompt</h3>\n<p dir=\"auto\">You can change the query line's prompt, which is <code class=\"notranslate\">QUERY&gt;</code> by default.</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Prompt&quot;: &quot;[peco]&quot;\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Prompt\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>[peco]<span class=\"pl-pds\">\"</span></span>\n}</pre></div>\n<h3 dir=\"auto\">InitialMatcher</h3>\n<p dir=\"auto\"><em>InitialMatcher</em> has been deprecated. Please use <code class=\"notranslate\">InitialFilter</code> instead.</p>\n<h3 dir=\"auto\">InitialFilter</h3>\n<p dir=\"auto\">Specifies the filter name to start peco with. You should specify the name of the filter, such as <code class=\"notranslate\">IgnoreCase</code>, <code class=\"notranslate\">CaseSensitive</code>, <code class=\"notranslate\">SmartCase</code>, <code class=\"notranslate\">Regexp</code> and <code class=\"notranslate\">Fuzzy</code>.</p>\n<h3 dir=\"auto\">FuzzyLongestSort</h3>\n<p dir=\"auto\">Enables the longest substring match and sorts the output. It affects only the Fuzzy filter.</p>\n<p dir=\"auto\">Default value for FuzzyLongestSort is false.</p>\n<h3 dir=\"auto\">StickySelection</h3>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;StickySelection&quot;: true\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"StickySelection\"</span>: <span class=\"pl-c1\">true</span>\n}</pre></div>\n<p dir=\"auto\">StickySelection allows selections to persist even between changes to the query.<br>\nFor example, when you set this to true you can select a few lines, type in a<br>\nnew query, select those lines, and then delete the query. The result is all<br>\nthe lines that you selected before and after the modification to the query are<br>\nleft intact.</p>\n<p dir=\"auto\">Default value for StickySelection is false.</p>\n<h3 dir=\"auto\">OnCancel</h3>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;OnCancel&quot;: &quot;error&quot;\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"OnCancel\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>error<span class=\"pl-pds\">\"</span></span>\n}</pre></div>\n<p dir=\"auto\">OnCancel is equivalent to <code class=\"notranslate\">--on-cancel</code> command line option.</p>\n<h3 dir=\"auto\">MaxScanBufferSize</h3>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;MaxScanBufferSize&quot;: 256\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"MaxScanBufferSize\"</span>: <span class=\"pl-c1\">256</span>\n}</pre></div>\n<p dir=\"auto\">Controls the buffer sized (in kilobytes) used by <code class=\"notranslate\">bufio.Scanner</code>, which is<br>\nresponsible for reading the input lines. If you believe that your input has<br>\nvery long lines that prohibit peco from reading them, try increasing this number.</p>\n<p dir=\"auto\">The same time, the default MaxScanBuferSize is 256kb.</p>\n<h2 dir=\"auto\">Keymaps</h2>\n<p dir=\"auto\">Example:</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Keymap&quot;: {\n        &quot;M-v&quot;: &quot;peco.ScrollPageUp&quot;,\n        &quot;C-v&quot;: &quot;peco.ScrollPageDown&quot;,\n        &quot;C-x,C-c&quot;: &quot;peco.Cancel&quot;\n    }\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Keymap\"</span>: {\n        <span class=\"pl-ent\">\"M-v\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.ScrollPageUp<span class=\"pl-pds\">\"</span></span>,\n        <span class=\"pl-ent\">\"C-v\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.ScrollPageDown<span class=\"pl-pds\">\"</span></span>,\n        <span class=\"pl-ent\">\"C-x,C-c\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.Cancel<span class=\"pl-pds\">\"</span></span>\n    }\n}</pre></div>\n<h3 dir=\"auto\">Key sequences</h3>\n<p dir=\"auto\">As of v0.2.0, you can use a list of keys (separated by comma) to register an action that is associated with a key sequence (instead of a single key). Please note that if there is a conflict in the key map, <em>the longest sequence always wins</em>. So In the above example, if you add another sequence, say, <code class=\"notranslate\">C-x,C-c,C-c</code>, then the above <code class=\"notranslate\">peco.Cancel</code> will never be invoked.</p>\n<h3 dir=\"auto\">Combined actions</h3>\n<p dir=\"auto\">As of v0.2.1, you can create custom combined actions. For example, if you find yourself repeatedly needing to select 4 lines out of the list, you may want to define your own action like this:</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Action&quot;: {\n        &quot;foo.SelectFour&quot;: [\n            &quot;peco.ToggleRangeMode&quot;,\n            &quot;peco.SelectDown&quot;,\n            &quot;peco.SelectDown&quot;,\n            &quot;peco.SelectDown&quot;,\n            &quot;peco.ToggleRangeMode&quot;\n        ]\n    },\n    &quot;Keymap&quot;: {\n        &quot;M-f&quot;: &quot;foo.SelectFour&quot;\n    }\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Action\"</span>: {\n        <span class=\"pl-ent\">\"foo.SelectFour\"</span>: [\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.ToggleRangeMode<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.SelectDown<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.SelectDown<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.SelectDown<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.ToggleRangeMode<span class=\"pl-pds\">\"</span></span>\n        ]\n    },\n    <span class=\"pl-ent\">\"Keymap\"</span>: {\n        <span class=\"pl-ent\">\"M-f\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>foo.SelectFour<span class=\"pl-pds\">\"</span></span>\n    }\n}</pre></div>\n<p dir=\"auto\">This creates a new combined action <code class=\"notranslate\">foo.SelectFour</code> (the format of the name is totally arbitrary, I just like to put namespaces), and assigns that action to <code class=\"notranslate\">M-f</code>. When it's fired, it toggles the range selection mode and highlights 4 lines, and then goes back to waiting for your input.</p>\n<p dir=\"auto\">As a similar example, a common idiom in emacs is that <code class=\"notranslate\">C-c C-c</code> means \"take the contents of this buffer and accept it\", whatever that means.  This adds exactly that keybinding:</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Action&quot;: {\n        &quot;selectAllAndFinish&quot;: [\n            &quot;peco.SelectAll&quot;,\n            &quot;peco.Finish&quot;\n        ]\n    },\n    &quot;Keymap&quot;: {\n        &quot;C-c,C-c&quot;: &quot;selectAllAndFinish&quot;\n    }\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Action\"</span>: {\n        <span class=\"pl-ent\">\"selectAllAndFinish\"</span>: [\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.SelectAll<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>peco.Finish<span class=\"pl-pds\">\"</span></span>\n        ]\n    },\n    <span class=\"pl-ent\">\"Keymap\"</span>: {\n        <span class=\"pl-ent\">\"C-c,C-c\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>selectAllAndFinish<span class=\"pl-pds\">\"</span></span>\n    }\n}</pre></div>\n<h3 dir=\"auto\">Available keys</h3>\n<p dir=\"auto\">Since v0.1.8, in addition to values below, you may put a <code class=\"notranslate\">M-</code> prefix on any<br>\nkey item to use Alt/Option key as a mask.</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Name</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>C-a ... C-z</td>\n<td>Control + whatever character</td>\n</tr>\n<tr>\n<td>C-2 ... C-8</td>\n<td>Control + 2..8</td>\n</tr>\n<tr>\n<td>C-[</td>\n<td></td>\n</tr>\n<tr>\n<td>C-]</td>\n<td></td>\n</tr>\n<tr>\n<td>C-~</td>\n<td></td>\n</tr>\n<tr>\n<td>C-_</td>\n<td></td>\n</tr>\n<tr>\n<td>C-\\\\</td>\n<td>Note that you need to escape the backslash</td>\n</tr>\n<tr>\n<td>C-/</td>\n<td></td>\n</tr>\n<tr>\n<td>C-Space</td>\n<td></td>\n</tr>\n<tr>\n<td>F1 ... F12</td>\n<td></td>\n</tr>\n<tr>\n<td>Esc</td>\n<td></td>\n</tr>\n<tr>\n<td>Tab</td>\n<td></td>\n</tr>\n<tr>\n<td>Enter</td>\n<td></td>\n</tr>\n<tr>\n<td>Insert</td>\n<td></td>\n</tr>\n<tr>\n<td>Delete</td>\n<td></td>\n</tr>\n<tr>\n<td>BS</td>\n<td></td>\n</tr>\n<tr>\n<td>BS2</td>\n<td></td>\n</tr>\n<tr>\n<td>Home</td>\n<td></td>\n</tr>\n<tr>\n<td>End</td>\n<td></td>\n</tr>\n<tr>\n<td>Pgup</td>\n<td></td>\n</tr>\n<tr>\n<td>Pgdn</td>\n<td></td>\n</tr>\n<tr>\n<td>ArrowUp</td>\n<td></td>\n</tr>\n<tr>\n<td>ArrowDown</td>\n<td></td>\n</tr>\n<tr>\n<td>ArrowLeft</td>\n<td></td>\n</tr>\n<tr>\n<td>ArrowRight</td>\n<td></td>\n</tr>\n<tr>\n<td>MouseLeft</td>\n<td></td>\n</tr>\n<tr>\n<td>MouseMiddle</td>\n<td></td>\n</tr>\n<tr>\n<td>MouseRight</td>\n<td></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h3 dir=\"auto\">Key workarounds</h3>\n<p dir=\"auto\">Some keys just... don't map correctly / too easily for various reasons. Here, we'll list possible workarounds for key sequences that are often asked for:</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>You want this</th>\n<th>Use this instead</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Shift+Tab</td>\n<td>M-[,Z</td>\n<td>Verified on macOS</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h3 dir=\"auto\">Available actions</h3>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Name</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>peco.ForwardChar</td>\n<td>Move caret forward 1 character</td>\n</tr>\n<tr>\n<td>peco.BackwardChar</td>\n<td>Move caret backward 1 character</td>\n</tr>\n<tr>\n<td>peco.ForwardWord</td>\n<td>Move caret forward 1 word</td>\n</tr>\n<tr>\n<td>peco.BackwardWord</td>\n<td>Move caret backward 1 word</td>\n</tr>\n<tr>\n<td>peco.BackToInitialFilter</td>\n<td>Switch to first filter in the list</td>\n</tr>\n<tr>\n<td>peco.BeginningOfLine</td>\n<td>Move caret to the beginning of line</td>\n</tr>\n<tr>\n<td>peco.EndOfLine</td>\n<td>Move caret to the end of line</td>\n</tr>\n<tr>\n<td>peco.EndOfFile</td>\n<td>Delete one character forward, otherwise exit from peco with failure status</td>\n</tr>\n<tr>\n<td>peco.DeleteForwardChar</td>\n<td>Delete one character forward</td>\n</tr>\n<tr>\n<td>peco.DeleteBackwardChar</td>\n<td>Delete one character backward</td>\n</tr>\n<tr>\n<td>peco.DeleteForwardWord</td>\n<td>Delete one word forward</td>\n</tr>\n<tr>\n<td>peco.DeleteBackwardWord</td>\n<td>Delete one word backward</td>\n</tr>\n<tr>\n<td>peco.InvertSelection</td>\n<td>Inverts the selected lines</td>\n</tr>\n<tr>\n<td>peco.KillBeginningOfLine</td>\n<td>Delete the characters under the cursor backward until the beginning of the line</td>\n</tr>\n<tr>\n<td>peco.KillEndOfLine</td>\n<td>Delete the characters under the cursor until the end of the line</td>\n</tr>\n<tr>\n<td>peco.DeleteAll</td>\n<td>Delete all entered characters</td>\n</tr>\n<tr>\n<td>peco.RefreshScreen</td>\n<td>Redraws the screen. Note that this effectively re-runs your query</td>\n</tr>\n<tr>\n<td>peco.SelectPreviousPage</td>\n<td>(DEPRECATED) Alias to ScrollPageUp</td>\n</tr>\n<tr>\n<td>peco.SelectNextPage</td>\n<td>(DEPRECATED) Alias to ScrollPageDown</td>\n</tr>\n<tr>\n<td>peco.ScrollPageDown</td>\n<td>Moves the selected line cursor for an entire page, downwards</td>\n</tr>\n<tr>\n<td>peco.ScrollPageUp</td>\n<td>Moves the selected line cursor for an entire page, upwards</td>\n</tr>\n<tr>\n<td>peco.SelectUp</td>\n<td>Moves the selected line cursor to one line above</td>\n</tr>\n<tr>\n<td>peco.SelectDown</td>\n<td>Moves the selected line cursor to one line below</td>\n</tr>\n<tr>\n<td>peco.SelectPrevious</td>\n<td>(DEPRECATED) Alias to SelectUp</td>\n</tr>\n<tr>\n<td>peco.SelectNext</td>\n<td>(DEPRECATED) Alias to SelectDown</td>\n</tr>\n<tr>\n<td>peco.ScrollLeft</td>\n<td>Scrolls the screen to the left</td>\n</tr>\n<tr>\n<td>peco.ScrollRight</td>\n<td>Scrolls the screen to the right</td>\n</tr>\n<tr>\n<td>peco.ScrollFirstItem</td>\n<td>Scrolls to the first item (in the entire buffer, not the current screen)</td>\n</tr>\n<tr>\n<td>peco.ScrollLastItem</td>\n<td>Scrolls to the last item (in the entire buffer, not the current screen)</td>\n</tr>\n<tr>\n<td>peco.ToggleSelection</td>\n<td>Selects the current line, and saves it</td>\n</tr>\n<tr>\n<td>peco.ToggleSelectionAndSelectNext</td>\n<td>Selects the current line, saves it, and proceeds to the next line</td>\n</tr>\n<tr>\n<td>peco.ToggleSingleKeyJump</td>\n<td>Enables SingleKeyJump mode a.k.a. \"hit-a-hint\"</td>\n</tr>\n<tr>\n<td>peco.SelectNone</td>\n<td>Remove all saved selections</td>\n</tr>\n<tr>\n<td>peco.SelectAll</td>\n<td>Selects the all line, and save it</td>\n</tr>\n<tr>\n<td>peco.SelectVisible</td>\n<td>Selects the all visible line, and save it</td>\n</tr>\n<tr>\n<td>peco.ToggleSelectMode</td>\n<td>(DEPRECATED) Alias to ToggleRangeMode</td>\n</tr>\n<tr>\n<td>peco.CancelSelectMode</td>\n<td>(DEPRECATED) Alias to CancelRangeMode</td>\n</tr>\n<tr>\n<td>peco.ToggleQuery</td>\n<td>Toggle list between filtered by query and not filtered.</td>\n</tr>\n<tr>\n<td>peco.ToggleRangeMode</td>\n<td>Start selecting by range, or append selecting range to selections</td>\n</tr>\n<tr>\n<td>peco.CancelRangeMode</td>\n<td>Finish selecting by range and cancel range selection</td>\n</tr>\n<tr>\n<td>peco.RotateMatcher</td>\n<td>(DEPRECATED) Use peco.RotateFilter</td>\n</tr>\n<tr>\n<td>peco.RotateFilter</td>\n<td>Rotate between filters (by default, ignore-case/no-ignore-case)</td>\n</tr>\n<tr>\n<td>peco.Finish</td>\n<td>Exits from peco with success status</td>\n</tr>\n<tr>\n<td>peco.Cancel</td>\n<td>Exits from peco with failure status, or cancel select mode</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h3 dir=\"auto\">Default Keymap</h3>\n<p dir=\"auto\">Note: If in case below keymap seems wrong, check the source code in <a href=\"https://github.com/peco/peco/blob/master/keymap.go\">keymap.go</a> (look for NewKeymap).</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Key</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Esc</td>\n<td>peco.Cancel</td>\n</tr>\n<tr>\n<td>C-c</td>\n<td>peco.Cancel</td>\n</tr>\n<tr>\n<td>Enter</td>\n<td>peco.Finish</td>\n</tr>\n<tr>\n<td>C-f</td>\n<td>peco.ForwardChar</td>\n</tr>\n<tr>\n<td>C-a</td>\n<td>peco.BeginningOfLine</td>\n</tr>\n<tr>\n<td>C-b</td>\n<td>peco.BackwardChar</td>\n</tr>\n<tr>\n<td>C-d</td>\n<td>peco.DeleteForwardChar</td>\n</tr>\n<tr>\n<td>C-e</td>\n<td>peco.EndOfLine</td>\n</tr>\n<tr>\n<td>C-k</td>\n<td>peco.KillEndOfLine</td>\n</tr>\n<tr>\n<td>C-u</td>\n<td>peco.KillBeginningOfLine</td>\n</tr>\n<tr>\n<td>BS</td>\n<td>peco.DeleteBackwardChar</td>\n</tr>\n<tr>\n<td>C-8</td>\n<td>peco.DeleteBackwardChar</td>\n</tr>\n<tr>\n<td>C-w</td>\n<td>peco.DeleteBackwardWord</td>\n</tr>\n<tr>\n<td>C-g</td>\n<td>peco.SelectNone</td>\n</tr>\n<tr>\n<td>C-n</td>\n<td>peco.SelectDown</td>\n</tr>\n<tr>\n<td>C-p</td>\n<td>peco.SelectUp</td>\n</tr>\n<tr>\n<td>C-r</td>\n<td>peco.RotateFilter</td>\n</tr>\n<tr>\n<td>C-t</td>\n<td>peco.ToggleQuery</td>\n</tr>\n<tr>\n<td>C-Space</td>\n<td>peco.ToggleSelectionAndSelectNext</td>\n</tr>\n<tr>\n<td>ArrowUp</td>\n<td>peco.SelectUp</td>\n</tr>\n<tr>\n<td>ArrowDown</td>\n<td>peco.SelectDown</td>\n</tr>\n<tr>\n<td>ArrowLeft</td>\n<td>peco.ScrollPageUp</td>\n</tr>\n<tr>\n<td>ArrowRight</td>\n<td>peco.ScrollPageDown</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h2 dir=\"auto\">Styles</h2>\n<p dir=\"auto\">For now, styles of following 5 items can be customized in <code class=\"notranslate\">config.json</code>.</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Style&quot;: {\n        &quot;Basic&quot;: [&quot;on_default&quot;, &quot;default&quot;],\n        &quot;SavedSelection&quot;: [&quot;bold&quot;, &quot;on_yellow&quot;, &quot;white&quot;],\n        &quot;Selected&quot;: [&quot;underline&quot;, &quot;on_cyan&quot;, &quot;black&quot;],\n        &quot;Query&quot;: [&quot;yellow&quot;, &quot;bold&quot;],\n        &quot;Matched&quot;: [&quot;red&quot;, &quot;on_blue&quot;]\n    }\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Style\"</span>: {\n        <span class=\"pl-ent\">\"Basic\"</span>: [<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>on_default<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>default<span class=\"pl-pds\">\"</span></span>],\n        <span class=\"pl-ent\">\"SavedSelection\"</span>: [<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>bold<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>on_yellow<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>white<span class=\"pl-pds\">\"</span></span>],\n        <span class=\"pl-ent\">\"Selected\"</span>: [<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>underline<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>on_cyan<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>black<span class=\"pl-pds\">\"</span></span>],\n        <span class=\"pl-ent\">\"Query\"</span>: [<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>yellow<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>bold<span class=\"pl-pds\">\"</span></span>],\n        <span class=\"pl-ent\">\"Matched\"</span>: [<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>red<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>on_blue<span class=\"pl-pds\">\"</span></span>]\n    }\n}</pre></div>\n<ul dir=\"auto\">\n<li><code class=\"notranslate\">Basic</code> for not selected lines</li>\n<li><code class=\"notranslate\">SavedSelection</code> for lines of saved selection</li>\n<li><code class=\"notranslate\">Selected</code> for a currently selecting line</li>\n<li><code class=\"notranslate\">Query</code> for a query line</li>\n<li><code class=\"notranslate\">Matched</code> for a query matched word</li>\n</ul>\n<h3 dir=\"auto\">Foreground Colors</h3>\n<ul dir=\"auto\">\n<li><code class=\"notranslate\">\"black\"</code> for <code class=\"notranslate\">termbox.ColorBlack</code></li>\n<li><code class=\"notranslate\">\"red\"</code> for <code class=\"notranslate\">termbox.ColorRed</code></li>\n<li><code class=\"notranslate\">\"green\"</code> for <code class=\"notranslate\">termbox.ColorGreen</code></li>\n<li><code class=\"notranslate\">\"yellow\"</code> for <code class=\"notranslate\">termbox.ColorYellow</code></li>\n<li><code class=\"notranslate\">\"blue\"</code> for <code class=\"notranslate\">termbox.ColorBlue</code></li>\n<li><code class=\"notranslate\">\"magenta\"</code> for <code class=\"notranslate\">termbox.ColorMagenta</code></li>\n<li><code class=\"notranslate\">\"cyan\"</code> for <code class=\"notranslate\">termbox.ColorCyan</code></li>\n<li><code class=\"notranslate\">\"white\"</code> for <code class=\"notranslate\">termbox.ColorWhite</code></li>\n<li><code class=\"notranslate\">\"0\"</code>-<code class=\"notranslate\">\"255\"</code> for 256color (<a href=\"#use256color\">Use256Color</a> must be enabled)</li>\n</ul>\n<h3 dir=\"auto\">Background Colors</h3>\n<ul dir=\"auto\">\n<li><code class=\"notranslate\">\"on_black\"</code> for <code class=\"notranslate\">termbox.ColorBlack</code></li>\n<li><code class=\"notranslate\">\"on_red\"</code> for <code class=\"notranslate\">termbox.ColorRed</code></li>\n<li><code class=\"notranslate\">\"on_green\"</code> for <code class=\"notranslate\">termbox.ColorGreen</code></li>\n<li><code class=\"notranslate\">\"on_yellow\"</code> for <code class=\"notranslate\">termbox.ColorYellow</code></li>\n<li><code class=\"notranslate\">\"on_blue\"</code> for <code class=\"notranslate\">termbox.ColorBlue</code></li>\n<li><code class=\"notranslate\">\"on_magenta\"</code> for <code class=\"notranslate\">termbox.ColorMagenta</code></li>\n<li><code class=\"notranslate\">\"on_cyan\"</code> for <code class=\"notranslate\">termbox.ColorCyan</code></li>\n<li><code class=\"notranslate\">\"on_white\"</code> for <code class=\"notranslate\">termbox.ColorWhite</code></li>\n<li><code class=\"notranslate\">\"on_0\"</code>-<code class=\"notranslate\">\"on_255\"</code> for 256color (<a href=\"#use256color\">Use256Color</a> must be enabled)</li>\n</ul>\n<h3 dir=\"auto\">Attributes</h3>\n<ul dir=\"auto\">\n<li><code class=\"notranslate\">\"bold\"</code> for fg: <code class=\"notranslate\">termbox.AttrBold</code></li>\n<li><code class=\"notranslate\">\"underline\"</code> for fg: <code class=\"notranslate\">termbox.AttrUnderline</code></li>\n<li><code class=\"notranslate\">\"reverse\"</code> for fg: <code class=\"notranslate\">termbox.AttrReverse</code></li>\n<li><code class=\"notranslate\">\"on_bold\"</code> for bg: <code class=\"notranslate\">termbox.AttrBold</code> (this attribute actually makes the background blink on some platforms/environments, e.g. linux console, xterm...)</li>\n</ul>\n<h2 dir=\"auto\">CustomFilter</h2>\n<p dir=\"auto\">This is an experimental feature. Please note that some details of this specification may change</p>\n<p dir=\"auto\">By default <code class=\"notranslate\">peco</code> comes with <code class=\"notranslate\">IgnoreCase</code>, <code class=\"notranslate\">CaseSensitive</code>, <code class=\"notranslate\">SmartCase</code>, <code class=\"notranslate\">Regexp</code> and <code class=\"notranslate\">Fuzzy</code> filters, but since v0.1.3, it is possible to create your own custom filter.</p>\n<p dir=\"auto\">The filter will be executed via  <code class=\"notranslate\">Command.Run()</code> as an external process, and it will be passed the query values in the command line, and the original unaltered buffer is passed via <code class=\"notranslate\">os.Stdin</code>. Your filter must perform the matching, and print out to <code class=\"notranslate\">os.Stdout</code> matched lines. Your filter MAY be called multiple times if the buffer<br>\ngiven to peco is big enough. See <code class=\"notranslate\">BufferThreshold</code> below.</p>\n<p dir=\"auto\">Note that currently there is no way for the custom filter to specify where in the line the match occurred, so matched portions in the string WILL NOT BE HIGHLIGHTED.</p>\n<p dir=\"auto\">The filter does not need to be a go program. It can be a perl/ruby/python/bash script, or anything else that is executable.</p>\n<p dir=\"auto\">Once you have a filter, you must specify how the matcher is spawned:</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;CustomFilter&quot;: {\n        &quot;MyFilter&quot;: {\n            &quot;Cmd&quot;: &quot;/path/to/my-matcher&quot;,\n            &quot;Args&quot;: [ &quot;$QUERY&quot; ],\n            &quot;BufferThreshold&quot;: 100\n        }\n    }\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"CustomFilter\"</span>: {\n        <span class=\"pl-ent\">\"MyFilter\"</span>: {\n            <span class=\"pl-ent\">\"Cmd\"</span>: <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>/path/to/my-matcher<span class=\"pl-pds\">\"</span></span>,\n            <span class=\"pl-ent\">\"Args\"</span>: [ <span class=\"pl-s\"><span class=\"pl-pds\">\"</span>$QUERY<span class=\"pl-pds\">\"</span></span> ],\n            <span class=\"pl-ent\">\"BufferThreshold\"</span>: <span class=\"pl-c1\">100</span>\n        }\n    }\n}</pre></div>\n<p dir=\"auto\"><code class=\"notranslate\">Cmd</code> specifies the command name. This must be searchable via <code class=\"notranslate\">exec.LookPath</code>.</p>\n<p dir=\"auto\">Elements in the <code class=\"notranslate\">Args</code> section are string keys to array of program arguments. The special token <code class=\"notranslate\">$QUERY</code> will be replaced with the unaltered query as the user typed in (i.e. multiple-word queries will be passed as a single string). You may pass in any other arguments in this array. If you omit this in your config, a default value of <code class=\"notranslate\">[]string{\"$QUERY\"}</code> will be used</p>\n<p dir=\"auto\"><code class=\"notranslate\">BufferThreshold</code> specifies that the filter command should be invoked when peco has this many lines to process<br>\nin the buffer. For example, if you are using peco against a 1000-line input, and your <code class=\"notranslate\">BufferThreshold</code> is 100 (which is the default), then your filter will be invoked 10 times. For obvious reasons, the larger this threshold is, the faster the overall performance will be, but the longer you will have to wait to see the filter results.</p>\n<p dir=\"auto\">You may specify as many filters as you like in the <code class=\"notranslate\">CustomFilter</code> section.</p>\n<h3 dir=\"auto\">Examples</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://gist.github.com/mattn/24712964da6e3112251c\">An example of a simple perl regexp matcher</a></li>\n<li><a href=\"https://github.com/peco/peco/wiki/CustomFilter\">An example using migemogrep Japanese grep using latin-1 chars</a></li>\n</ul>\n<h2 dir=\"auto\">Layout</h2>\n<p dir=\"auto\">See --layout.</p>\n<h2 dir=\"auto\">SingleKeyJump</h2>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"{\n  &quot;SingleKeyJump&quot;: {\n    &quot;ShowPrefix&quot;: true\n  }\n}\"><pre class=\"notranslate\"><code class=\"notranslate\">{\n  \"SingleKeyJump\": {\n    \"ShowPrefix\": true\n  }\n}\n</code></pre></div>\n<h2 dir=\"auto\">SelectionPrefix</h2>\n<p dir=\"auto\"><code class=\"notranslate\">SelectionPrefix</code> is equivalent to using <code class=\"notranslate\">--selection-prefix</code> in the command line.</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"{\n  &quot;SelectionPrefix&quot;: &quot;&gt;&quot;\n}\"><pre class=\"notranslate\"><code class=\"notranslate\">{\n  \"SelectionPrefix\": \"&gt;\"\n}\n</code></pre></div>\n<h2 dir=\"auto\">Use256Color</h2>\n<p dir=\"auto\">Boolean value that determines whether or not to use 256color. The default is <code class=\"notranslate\">false</code>.</p>\n<p dir=\"auto\">Note: This has no effect on Windows because Windows console does not support extra color modes.</p>\n<div class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    &quot;Use256Color&quot;: true\n}\"><pre class=\"notranslate\">{\n    <span class=\"pl-ent\">\"Use256Color\"</span>: <span class=\"pl-c1\">true</span>\n}</pre></div>\n<h1 dir=\"auto\">FAQ</h1>\n<h2 dir=\"auto\">Does peco work on (msys2|cygwin)?</h2>\n<p dir=\"auto\">No. <a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"174228621\" data-permission-text=\"Title is private\" data-url=\"https://github.com/peco/peco/issues/336\" data-hovercard-type=\"issue\" data-hovercard-url=\"/peco/peco/issues/336/hovercard?comment_id=243939696&amp;comment_type=issue_comment\" href=\"https://github.com/peco/peco/issues/336#issuecomment-243939696\">peco/peco#336 (comment)</a><br>\n(Updated Feb 23, 2017: \"Maybe\" on cygwin <a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"174228621\" data-permission-text=\"Title is private\" data-url=\"https://github.com/peco/peco/issues/336\" data-hovercard-type=\"issue\" data-hovercard-url=\"/peco/peco/issues/336/hovercard?comment_id=281912949&amp;comment_type=issue_comment\" href=\"https://github.com/peco/peco/issues/336#issuecomment-281912949\">peco/peco#336 (comment)</a>)</p>\n<h2 dir=\"auto\">Non-latin fonts (e.g. Japanese) look weird on my Windows machine...?</h2>\n<p dir=\"auto\">Are you using raster fonts? <a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"174958359\" data-permission-text=\"Title is private\" data-url=\"https://github.com/peco/peco/issues/341\" data-hovercard-type=\"issue\" data-hovercard-url=\"/peco/peco/issues/341/hovercard\" href=\"https://github.com/peco/peco/issues/341\">peco/peco#341</a></p>\n<h2 dir=\"auto\">Seeing escape sequences <code class=\"notranslate\">[200~</code> and <code class=\"notranslate\">[201~</code> when pasting text?</h2>\n<p dir=\"auto\">Disable bracketed paste mode. <a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"216731844\" data-permission-text=\"Title is private\" data-url=\"https://github.com/peco/peco/issues/417\" data-hovercard-type=\"issue\" data-hovercard-url=\"/peco/peco/issues/417/hovercard\" href=\"https://github.com/peco/peco/issues/417\">peco/peco#417</a></p>\n<h1 dir=\"auto\">Hacking</h1>\n<p dir=\"auto\">First, fork this repo, and get your clone locally.</p>\n<ol dir=\"auto\">\n<li>Make sure you have <a href=\"http://golang.org\" rel=\"nofollow\">go</a> installed, with GOPATH appropriately set</li>\n<li>Make sure you have <code class=\"notranslate\">make</code> installed</li>\n<li>Run <code class=\"notranslate\">make installdeps</code> (You only need to do this once)</li>\n</ol>\n<p dir=\"auto\">To test, run</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"make test\"><pre class=\"notranslate\"><code class=\"notranslate\">make test\n</code></pre></div>\n<p dir=\"auto\">To build, run</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"make build\"><pre class=\"notranslate\"><code class=\"notranslate\">make build\n</code></pre></div>\n<p dir=\"auto\">This will create a <code class=\"notranslate\">peco</code> binary in <code class=\"notranslate\">$(RELEASE_DIR)/peco_$(GOOS)_$(GOARCH)/peco$(SUFFIX)</code>. Or, of course, you can just run</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"go build cmd/peco/peco.go\"><pre class=\"notranslate\"><code class=\"notranslate\">go build cmd/peco/peco.go\n</code></pre></div>\n<p dir=\"auto\">which will create the binary in the local directory.</p>\n<h1 dir=\"auto\">TODO</h1>\n<p dir=\"auto\">Unit test it.</p>\n<h1 dir=\"auto\">AUTHORS</h1>\n<ul dir=\"auto\">\n<li>Daisuke Maki (lestrrat)</li>\n<li>mattn</li>\n<li>syohex</li>\n</ul>\n<h1 dir=\"auto\">CONTRIBUTORS</h1>\n<ul dir=\"auto\">\n<li>HIROSE Masaaki</li>\n<li>Joel Segerlind</li>\n<li>Lukas Lueg</li>\n<li>Mitsuoka Mimura</li>\n<li>Ryota Arai</li>\n<li>Shinya Ohyanagi</li>\n<li>Takashi Kokubun</li>\n<li>Yuya Takeyama</li>\n<li>cho45</li>\n<li>cubicdaiya</li>\n<li>kei_q</li>\n<li>negipo</li>\n<li>sona_tar</li>\n<li>sugyan</li>\n<li>swdyh</li>\n<li>MURAOKA Taro (kaoriya/koron), for aho-corasick search</li>\n<li>taichi, for the gif working on Windows</li>\n<li>uobikiemukot</li>\n<li>Samuel Lemaitre</li>\n<li>Yousuke Ushiki</li>\n<li>Linda_pp</li>\n<li>Tomohiro Nishimura (Sixeight)</li>\n<li>Naruki Tanabe (narugit)</li>\n</ul>\n<h1 dir=\"auto\">Notes</h1>\n<p dir=\"auto\">Obviously, kudos to the original percol: <a href=\"https://github.com/mooz/percol\">https://github.com/mooz/percol</a><br>\nMuch code stolen from <a href=\"https://github.com/mattn/gof\">https://github.com/mattn/gof</a></p>\n<h1 dir=\"auto\">Table of Contents</h1>\n\n\n<ul dir=\"auto\">\n<li><a href=\"#peco\">peco</a></li>\n<li><a href=\"#description\">Description</a>\n<ul dir=\"auto\">\n<li><a href=\"#demo\">Demo</a></li>\n</ul>\n</li>\n<li><a href=\"#features\">Features</a>\n<ul dir=\"auto\">\n<li><a href=\"#incremental-search\">Incremental Search</a></li>\n<li><a href=\"#select-multiple-lines\">Select Multiple Lines</a></li>\n<li><a href=\"#select-range-of-lines\">Select Range Of Lines</a></li>\n<li><a href=\"#select-filters\">Select Filters</a></li>\n<li><a href=\"#selectable-layout\">Selectable Layout</a></li>\n<li><a href=\"#works-on-windows\">Works on Windows!</a></li>\n</ul>\n</li>\n<li><a href=\"#installation\">Installation</a>\n<ul dir=\"auto\">\n<li><a href=\"#just-want-the-binary\">Just want the binary?</a></li>\n<li><a href=\"#macos-homebrew-scarf\">macOS (Homebrew, Scarf)</a></li>\n<li><a href=\"#debian-and-ubuntu-based-distributions-apt-scarf\">Debian and Ubuntu based distributions (APT, Scarf)</a></li>\n<li><a href=\"#void-linux-xbps\">Void Linux (XBPS)</a></li>\n<li><a href=\"#arch-linux\">Arch Linux</a></li>\n<li><a href=\"#windows-chocolatey-nuget-users\">Windows (Chocolatey NuGet Users)</a></li>\n<li><a href=\"#building-peco-yourself\">Building peco yourself</a></li>\n<li><a href=\"#go-get-is-not-recommended\">go get IS NOT RECOMMENDED</a></li>\n</ul>\n</li>\n<li><a href=\"#command-line-options\">Command Line Options</a>\n<ul dir=\"auto\">\n<li><a href=\"#-h---help\">-h, --help</a></li>\n<li><a href=\"#--version\">--version</a></li>\n<li><a href=\"#--query-query\">--query </a></li>\n<li><a href=\"#--print-query\">--print-query</a></li>\n<li><a href=\"#--rcfile-filename\">--rcfile </a></li>\n<li><a href=\"#-b---buffer-size-num\">-b, --buffer-size </a></li>\n<li><a href=\"#--null\">--null</a></li>\n<li><a href=\"#--initial-index\">--initial-index</a></li>\n<li><a href=\"#--initial-filter-ignorecasecasesensitivesmartcaseregexpfuzzy\">--initial-filter <code class=\"notranslate\">IgnoreCase|CaseSensitive|SmartCase|Regexp|Fuzzy</code></a></li>\n<li><a href=\"#--prompt\">--prompt</a></li>\n<li><a href=\"#--layout-top-downbottom-up\">--layout <code class=\"notranslate\">top-down|bottom-up</code></a></li>\n<li><a href=\"#--select-1\">--select-1</a></li>\n<li><a href=\"#--on-cancel-successerror\">--on-cancel <code class=\"notranslate\">success|error</code></a></li>\n<li><a href=\"#--selection-prefix-string\">--selection-prefix <code class=\"notranslate\">string</code></a></li>\n<li><a href=\"#--exec-string\">--exec <code class=\"notranslate\">string</code></a></li>\n</ul>\n</li>\n<li><a href=\"#configuration-file\">Configuration File</a>\n<ul dir=\"auto\">\n<li><a href=\"#global\">Global</a>\n<ul dir=\"auto\">\n<li><a href=\"#prompt\">Prompt</a></li>\n<li><a href=\"#initialmatcher\">InitialMatcher</a></li>\n<li><a href=\"#initialfilter\">InitialFilter</a></li>\n<li><a href=\"#fuzzylongestsort\">FuzzyLongestSort</a></li>\n<li><a href=\"#stickyselection\">StickySelection</a></li>\n<li><a href=\"#oncancel\">OnCancel</a></li>\n<li><a href=\"#maxscanbuffersize\">MaxScanBufferSize</a></li>\n</ul>\n</li>\n<li><a href=\"#keymaps\">Keymaps</a>\n<ul dir=\"auto\">\n<li><a href=\"#key-sequences\">Key sequences</a></li>\n<li><a href=\"#combined-actions\">Combined actions</a></li>\n<li><a href=\"#available-keys\">Available keys</a></li>\n<li><a href=\"#key-workarounds\">Key workarounds</a></li>\n<li><a href=\"#available-actions\">Available actions</a></li>\n<li><a href=\"#default-keymap\">Default Keymap</a></li>\n</ul>\n</li>\n<li><a href=\"#styles\">Styles</a>\n<ul dir=\"auto\">\n<li><a href=\"#foreground-colors\">Foreground Colors</a></li>\n<li><a href=\"#background-colors\">Background Colors</a></li>\n<li><a href=\"#attributes\">Attributes</a></li>\n</ul>\n</li>\n<li><a href=\"#customfilter\">CustomFilter</a>\n<ul dir=\"auto\">\n<li><a href=\"#examples\">Examples</a></li>\n</ul>\n</li>\n<li><a href=\"#layout\">Layout</a></li>\n<li><a href=\"#singlekeyjump\">SingleKeyJump</a></li>\n<li><a href=\"#selectionprefix\">SelectionPrefix</a></li>\n<li><a href=\"#use256color\">Use256Color</a></li>\n</ul>\n</li>\n<li><a href=\"#faq\">FAQ</a>\n<ul dir=\"auto\">\n<li><a href=\"#does-peco-work-on-msys2cygwin\">Does peco work on (msys2|cygwin)?</a></li>\n<li><a href=\"#non-latin-fonts-eg-japanese-look-weird-on-my-windows-machine\">Non-latin fonts (e.g. Japanese) look weird on my Windows machine...?</a></li>\n<li><a href=\"#seeing-escape-sequences-200-and-201-when-pasting-text\">Seeing escape sequences <code class=\"notranslate\">[200~</code> and <code class=\"notranslate\">[201~</code> when pasting text?</a></li>\n</ul>\n</li>\n<li><a href=\"#hacking\">Hacking</a></li>\n<li><a href=\"#todo\">TODO</a></li>\n<li><a href=\"#authors\">AUTHORS</a></li>\n<li><a href=\"#contributors\">CONTRIBUTORS</a></li>\n<li><a href=\"#notes\">Notes</a></li>\n<li><a href=\"#table-of-contents\">Table of Contents</a></li>\n</ul>\n","updatedAt":"2025-05-21T16:15:32Z","upvoteCount":null,"author":{"login":"eryajf","avatarUrl":"https://avatars.githubusercontent.com/u/33259379?u=e4a4090a38ac2473aaed4ef9945233636776c6c3&v=4","url":"https://github.com/eryajf"},"category":null,"labels":{"edges":[{"node":{"name":"更多","color":"25B472"}},{"node":{"name":"命令行工具","color":"e05879"}},{"node":{"name":"peco","color":"40f4ef"}}]},"comments":{"edges":[]}}},"pageContext":{"number":432,"previous":{"title":"PowerDNS/pdns: PowerDNS 权威、PowerDNS 递归、dnsdist","number":431},"next":{"title":"brendangregg/perf-tools: Linux 性能分析工具集合","number":433}}},
    "staticQueryHashes": ["151096407","2861350382"]}