App-FzfUtils
view release on metacpan or search on metacpan
script/cs-select view on Meta::CPAN
#!perl
# Note: This script is a CLI for Riap function /App/FzfUtils/cs_select
# and generated automatically using Perinci::CmdLine::Gen version 0.502
use 5.010001;
use strict;
use warnings;
use Log::ger;
use Perinci::CmdLine::Any;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2026-04-09'; # DATE
our $DIST = 'App-FzfUtils'; # DIST
our $VERSION = '0.003'; # VERSION
my $cmdline = Perinci::CmdLine::Any->new(
url => "/App/FzfUtils/cs_select",
program_name => "cs-select",
log => 1,
read_config => 0,
read_env => 0,
);
$cmdline->run;
# ABSTRACT: Select entries from template to clipboard
# PODNAME: cs-select
__END__
=pod
=encoding UTF-8
=head1 NAME
cs-select - Select entries from template to clipboard
=head1 VERSION
This document describes version 0.003 of cs-select (from Perl distribution App-FzfUtils), released on 2026-04-09.
=head1 SYNOPSIS
B<cs-select> B<L<--help|/"--help, -h, -?">> (or B<L<-h|/"--help, -h, -?">>, B<L<-?|/"--help, -h, -?">>)
B<cs-select> B<L<--version|/"--version, -v">> (or B<L<-v|/"--version, -v">>)
B<cs-select> [B<L<--debug|/"--debug">>|B<L<--log-level|/"--log-level=s">>=I<level>|B<L<--quiet|/"--quiet">>|B<L<--trace|/"--trace">>|B<L<--verbose|/"--verbose">>] [B<L<--format|/"--format=s">>=I<name>|B<L<--json|/"--json">>] [B<L<--(no)naked-res|/"--...
=head1 DESCRIPTION
This is basically similar to:
% fzf --bind 'enter:execute(clipadd {})' < template.txt
except that it does some pre-processing to let each template entry be a
multiple-line text, and later do post-processing so the original entry is added
to the clipboard.
B<Template format>
Template is an Org file with a particular format, where each entry is put under
a level-2 heading. The level-1 heading can be used for grouping/categorizing.
For example:
* Product > P1
** Does P1 need to be replaced every 5 years? :replacement:clipadd_1:
Yes, ideally every 3-5 years.
** How to maintain P1 so it is in a good condition and can last longer?
Wash after every use, then dry.
Keep it clean.
And of course replace after 3-5 years.
* Product > P2
** Entry 1 :clipadd_2:
...
** Entry 2
...
* General > Support
** Entry 3
...
** Entry 4
...
Before feeding to C<fzf>, this utility will convert each entry into a single
line:
[id=1][title=Does P1 need to be replaced every 5 years?]Yes, ideally every 3-5 years.[category=Product > P1][tag=replacement][tag=clipadd_1]
[id=2][title=How to maintain P1 so it is in a good condition and can last longer?]Wash after every use, then dry. Keep it clean. And of course replace after 3-5 years.[category=Product > P1]
[id=3][title=Entry 1]...[tag=clipadd_2][category=Product > P2]
[id=4][title=Entry 2]...[category=Product > P2]
[id=5][title=Entry 3]...[category=General > Support]
[id=6][title=Entry 4]...[category=General > Support]
after selection, another script (L<cs-select-helper>) will turn back the
single-line entry into the original.
B<Tags>
Some Org tags are used to customize how the entry is displayed or copied to
clipboard.
B<no_copy_title>. Do not copy the title to clipboard.
=head1 OPTIONS
C<*> marks required options.
=head2 Main options
=over
=item B<--template>=I<s>
(No description)
( run in 1.037 second using v1.01-cache-2.11-cpan-2398b32b56e )