vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
vis-open.1
(2289B)
1 .Dd November 29, 2016
2 .Dt VIS-OPEN 1
3 .Os Vis VERSION
4 .
5 .Sh NAME
6 .Nm vis-open
7 .Nd Interactively select a file to open
8 .
9 .Sh SYNOPSIS
10 .Nm vis-open
11 .Op Fl p Ar prompt
12 .Op Fl f
13 .Op Ar --
14 .Op Ar files
15 .Pp
16 .Nm vis-open
17 .Fl h
18 .
19 .Sh DESCRIPTION
20 .Nm vis-open
21 takes a list of filenames and directories on the command-line
22 and displays them in a menu for the user to select one.
23 If the user selects a directory
24 (including
25 .Li .. ) ,
26 the directory contents are displayed as a fresh menu.
27 Once the user has selected a filename,
28 its absolute path is printed to standard output.
29 .Pp
30 .Nm vis-open
31 uses
32 .Xr vis-menu 1
33 as its user-interface,
34 so see that page for more details.
35 .
36 .Bl -tag -width flag
37 .It Fl p Ar prompt
38 Display
39 .Ar prompt
40 before the list of items.
41 This is passed straight through to
42 .Xr vis-menu 1 .
43 .It Fl f
44 Normally,
45 if
46 .Nm vis-open
47 is provided with a single filename or directory argument,
48 it will automatically select it
49 (printing the filename to standard output,
50 or presenting a new menu with the contents of the directory).
51 If
52 .Fl f
53 is provided,
54 .Nm vis-open
55 will always present the arguments it's given,
56 even if there's only one.
57 .It Fl -
58 If this token is encountered before the first non-option argument,
59 all following arguments will be treated as menu-items,
60 even if they would otherwise be valid command-line options.
61 .Pp
62 If encountered after the first non-option argument,
63 or after a previous instance of
64 .Li --
65 it is treated as a menu-item.
66 .It Ar files
67 File and directory names to be presented to the user.
68 If a name does not exist on the filesystem
69 and the user selects it,
70 it is treated as a file.
71 .It Fl h
72 If present,
73 .Nm vis-open
74 prints a usage summary and exits,
75 ignoring any other flag and arguments.
76 .El
77 .
78 .Sh EXIT STATUS
79 .Ex -std vis-open
80 .Pp
81 In particular,
82 like
83 .Xr vis-menu 1 ,
84 .Nm vis-open
85 prints nothing and sets its exit status to 1
86 if the user refused to select a file.
87 .
88 .Sh EXAMPLES
89 .Bd -literal -offset indent
90 CHOICE=$(vis-open -p "Select a file to stat")
91 if [ $? -gt 0 ]; then
92 echo "No selection was made, or an error occurred"
93 else
94 stat "$CHOICE"
95 fi
96 .Ed
97 .
98 .Sh SEE ALSO
99 .Xr vis 1 ,
100 .Xr vis-menu 1
101 .
102 .Sh BUGS
103 Because
104 .Nm vis-open
105 uses
106 .Xr ls 1
107 to obtain the contents of a directory,
108 weird things might happen if you have control-characters in your filenames.