rtfm-filemanager 2.6.5 → 2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/bin/rtfm +46 -16
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2aa222a4668d6751af768b71fb4041d9a8f2c07b9546c2c6a85a3599fd99f9b5
|
4
|
+
data.tar.gz: bac0932190b194982ea98da8f20919b101a2e0be293a8bbc1e8ec77fbc67bb5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0048f6b34b0cadef7d539330ea23f45b782e2718b843b46f648c4d3f00dc67fd73561b2a55fd494b9a5af50e873afb0b8f9234bb4b663be325b812208736d137'
|
7
|
+
data.tar.gz: e8c03a48d9b6b17bd248b377ce7f82f2d783989fa412e3aacdf803c1561e347855c3a4072a75ea63f966ba43be30efb952b51ef966e533a65193953718d1944c
|
data/README.md
CHANGED
@@ -232,8 +232,9 @@ S-TAB | Previous page (if you have moved down the document first - ∆ in the t
|
|
232
232
|
w | Change the width of the left/right panes (left pane ⇒ ⅓ ⇒ ¼ ⇒ ⅕ ⇒ ⅙ ⇒ ½ ⇒ ⅓)
|
233
233
|
\- | Toggle preview in right pane (turn it off for faster traversing of directories)
|
234
234
|
_ | Toggle preview of images in right pane
|
235
|
+
b | Toggle syntax highlighting (and line numbering)
|
235
236
|
|
236
|
-
###
|
237
|
+
### Additional commands
|
237
238
|
|
238
239
|
Key | Description
|
239
240
|
-------|------------------------------------------------------------------
|
@@ -245,6 +246,7 @@ B | Toggle border
|
|
245
246
|
; | Show command history in right pane
|
246
247
|
y | Copy path of selected item to primary selection (for pasting with middle mouse button)
|
247
248
|
Y | Copy path of selected item to clipboard
|
249
|
+
C-Y | Copy content of right pane to clipboard
|
248
250
|
S | Show comprehensive system info (system, CPU, filesystem, latest dmesg messages)
|
249
251
|
Ctrl-n | Invoke navi (see https://github.com/denisidoro/navi) with any output in right window
|
250
252
|
|
data/bin/rtfm
CHANGED
@@ -56,7 +56,6 @@ JUMPING AND MARKS
|
|
56
56
|
L = Start 'locate' search for files, then use '#' to jump to desired line/directory
|
57
57
|
Ctrl-l = Locate files via fzf from the current directory down
|
58
58
|
(fuzzy file finder must be installed https://github.com/junegunn/fzf)
|
59
|
-
Ctrl-n = Invoke navi (see https://github.com/denisidoro/navi) with any output in right window
|
60
59
|
|
61
60
|
TAGGING
|
62
61
|
t = Tag item (toggles)
|
@@ -93,8 +92,9 @@ RIGHT PANE
|
|
93
92
|
w = Change the width of the left/right panes (left pane ⇒ ⅓ ⇒ ¼ ⇒ ⅕ ⇒ ⅙ ⇒ ½ ⇒ ⅓)
|
94
93
|
- = (Minus sign) Toggle preview in right pane (turn it off for faster traversing of directories)
|
95
94
|
_ = (Underscore) Toggle preview of images in right pane
|
95
|
+
b = Toggle syntax highlighting (and line numbering)
|
96
96
|
|
97
|
-
|
97
|
+
ADDITIONAL COMMANDS
|
98
98
|
f = Show only files in the left pane matching extension(s) (e.g. "txt" or "pdf,png,jpg")
|
99
99
|
F = Show only files matching a pattern (Ruby Regex) (e.g. "abc" or "ab.+12(\w3)*")
|
100
100
|
g = Run 'grep' to show files that contains the MATCH in current directory
|
@@ -103,7 +103,9 @@ ADDITINAL COMMANDS
|
|
103
103
|
; = Show command history in right pane
|
104
104
|
y = Copy path of selected item to primary selection (for pasting with middle mouse button)
|
105
105
|
Y = Copy path of selected item to clipboard
|
106
|
+
C-Y = Copy content of right pane to clipboard
|
106
107
|
S = Show comprehensive System info (system, CPU, filesystem, latest dmesg messages)
|
108
|
+
Ctrl-n = Invoke navi (see https://github.com/denisidoro/navi) with any output in right window
|
107
109
|
|
108
110
|
COPYRIGHT: Geir Isene, 2020-3. No rights reserved. See http://isene.com for more.
|
109
111
|
HELPTEXT
|
@@ -154,6 +156,7 @@ begin # BASIC SETUP
|
|
154
156
|
@showimage = false unless (cmd?('xwininfo') and cmd?('xdotool'))
|
155
157
|
|
156
158
|
cmd?('bat') ? @bat = "bat" : @bat = "batcat"
|
159
|
+
@batuse = true
|
157
160
|
|
158
161
|
STDIN.set_encoding(Encoding::UTF_8) # Set encoding for STDIN
|
159
162
|
LScolors = `echo $LS_COLORS` # Import LS_COLORS
|
@@ -189,6 +192,7 @@ begin # BASIC SETUP
|
|
189
192
|
@lsfiles = "" # File types to show (initially set to all file types) - not saved on exit
|
190
193
|
@lsmatch = "" # Files to match (initially set to matching all files) - not saved on exit
|
191
194
|
@index = 0 # Set chosen item to first on startup
|
195
|
+
@cont = ""
|
192
196
|
@navi = ""
|
193
197
|
@marks["'"] = Dir.pwd
|
194
198
|
## File type recognizers
|
@@ -309,6 +313,7 @@ def getchr # PROCESS KEY PRESSES
|
|
309
313
|
when "" then chr = "C-L"
|
310
314
|
when "" then chr = "C-N"
|
311
315
|
when "" then chr = "C-T"
|
316
|
+
when "" then chr = "C-Y"
|
312
317
|
when "\r" then chr = "ENTER"
|
313
318
|
when "\t" then chr = "TAB"
|
314
319
|
when /./ then chr = c
|
@@ -543,14 +548,14 @@ def main_getkey # GET KEY FROM USER
|
|
543
548
|
w_b_info(err.to_s)
|
544
549
|
end
|
545
550
|
@w_r.update = true
|
546
|
-
when 'z'
|
551
|
+
when 'z' # Unzip selected archive file
|
547
552
|
cmd = w_b_getstr("Command = ", "tar xfz #{@tagged.first}")
|
548
553
|
begin
|
549
554
|
w_b_exec(cmd + " 2>/dev/null")
|
550
555
|
rescue StandardError => err
|
551
556
|
w_b_info(err.to_s)
|
552
557
|
end
|
553
|
-
when 'Z'
|
558
|
+
when 'Z' # Create archive file
|
554
559
|
arc = w_b_getstr("Archive name: ", "")
|
555
560
|
cmd = w_b_getstr("Command = ", "tar cfz #{arc}.gz #{@tagged.join(" ")}")
|
556
561
|
begin
|
@@ -669,7 +674,7 @@ def main_getkey # GET KEY FROM USER
|
|
669
674
|
rescue
|
670
675
|
w_r_info("Unable to show system info")
|
671
676
|
end
|
672
|
-
when 'I'
|
677
|
+
when 'I' # OpenAI integration
|
673
678
|
if @ai
|
674
679
|
openai
|
675
680
|
else
|
@@ -701,21 +706,24 @@ def main_getkey # GET KEY FROM USER
|
|
701
706
|
@width = 2 if @width == 7
|
702
707
|
@break = true
|
703
708
|
@w_b.update = true
|
704
|
-
when 'B'
|
709
|
+
when 'B' # Toggle borders
|
705
710
|
@border = !@border
|
706
711
|
@break = true
|
707
|
-
when '-'
|
712
|
+
when '-' # Toggle content view in right pane
|
708
713
|
@preview = !@preview
|
709
714
|
@preview ? p = "On" : p = "Off"
|
710
715
|
w_b_info("Preview = " + p)
|
711
716
|
getch
|
712
717
|
@break = true
|
713
|
-
when '_'
|
718
|
+
when '_' # Toggle image view
|
714
719
|
@showimage = !@showimage
|
715
720
|
@showimage ? i = "On" : i = "Off"
|
716
721
|
w_b_info("Image preview = " + i)
|
717
722
|
getch
|
718
723
|
@break = true
|
724
|
+
when 'b'
|
725
|
+
@batuse = !@batuse
|
726
|
+
@break = true
|
719
727
|
# ADDITIONAL COMMANDS
|
720
728
|
when 'f' # Filter out filetypes not matching @lsfiles
|
721
729
|
loop do
|
@@ -726,7 +734,7 @@ def main_getkey # GET KEY FROM USER
|
|
726
734
|
when 'F' # Filter out files not matching @lsmatch
|
727
735
|
@lsmatch = w_b_getstr("Files will match RegEx: ", @lsmatch)
|
728
736
|
w_b_info(nil)
|
729
|
-
when 'C-L'
|
737
|
+
when 'C-L' # fzf integration (https://github.com/junegunn/fzf)
|
730
738
|
begin
|
731
739
|
jump = `fzf`.chomp
|
732
740
|
rescue
|
@@ -738,7 +746,7 @@ def main_getkey # GET KEY FROM USER
|
|
738
746
|
mark_latest
|
739
747
|
Dir.chdir(jumpdir)
|
740
748
|
@break = true
|
741
|
-
when 'C-N'
|
749
|
+
when 'C-N' # navi integration (https://github.com/denisidoro/navi)
|
742
750
|
begin
|
743
751
|
@navi = `navi`
|
744
752
|
rescue
|
@@ -796,6 +804,19 @@ def main_getkey # GET KEY FROM USER
|
|
796
804
|
end
|
797
805
|
system("echo -n '#{path}' | #{clip}")
|
798
806
|
end
|
807
|
+
when 'C-Y' # Copy right pane to clipboard
|
808
|
+
clip = "xclip -selection clipboard"
|
809
|
+
@cont.gsub!(/ ¤¤\d+¤¤\d*¤¤/, '')
|
810
|
+
@cont.gsub!(/^¤¤\d+¤¤\d*¤¤ */, '')
|
811
|
+
@cont.gsub!(/¤¤\d+¤¤\d*¤¤/, '')
|
812
|
+
@cont.gsub!(/ /, '')
|
813
|
+
@cont.gsub!(/ (\d)/, '\1')
|
814
|
+
@cont.gsub!(/\[(\d+;)+\d+m/, '')
|
815
|
+
@cont = @cont.inspect
|
816
|
+
@cont.gsub!('\"', '"')
|
817
|
+
@cont = @cont [1...-1]
|
818
|
+
w_b_info(" Right pane copied to clipboard")
|
819
|
+
system("echo -n '#{@cont}' | #{clip}")
|
799
820
|
when '@' # Enter "Ruby debug"
|
800
821
|
@w_b.nohistory = true
|
801
822
|
cmd = w_b_getstr("◆ ", "")
|
@@ -941,6 +962,7 @@ def list_dir(active) # LIST CONTENT OF A DIRECTORY (BOTH active AND RIGHT WINDOW
|
|
941
962
|
ix = @index - @w_l.maxy/2 if @index > @w_l.maxy/2 and @files.size > @w_l.maxy - 1
|
942
963
|
else
|
943
964
|
win = @w_r
|
965
|
+
@cont = ""
|
944
966
|
end
|
945
967
|
while ix < @files.size and t < win.maxy do
|
946
968
|
str = @files[ix]
|
@@ -999,6 +1021,7 @@ def list_dir(active) # LIST CONTENT OF A DIRECTORY (BOTH active AND RIGHT WINDOW
|
|
999
1021
|
return
|
1000
1022
|
end
|
1001
1023
|
str += link + dir
|
1024
|
+
@cont += str + "\n" unless active # Adds to content in right win for copying
|
1002
1025
|
win.attron(file_marker) { win << str } # Implement color/bold to the item
|
1003
1026
|
win.clrtoeol
|
1004
1027
|
win << "\n"
|
@@ -1082,12 +1105,17 @@ def w_r_show # SHOW CONTENTS IN THE RIGHT WINDOW
|
|
1082
1105
|
list_dir(false)
|
1083
1106
|
# TEXT
|
1084
1107
|
elsif File.read(@selected).force_encoding("UTF-8").valid_encoding? and @w_r.pager == 0
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1108
|
+
if @batuse
|
1109
|
+
begin # View the file as text if it is utf-8
|
1110
|
+
@w_r.pager_cmd = "#{@bat} -n --color=always #{@selected_safe} 2>/dev/null"
|
1111
|
+
@w_r.text = `#{@bat} -n --color=always --line-range :#{@w_r.maxy} #{@selected_safe} 2>/dev/null`
|
1112
|
+
pager_start
|
1113
|
+
syntax_highlight(@w_r.text)
|
1114
|
+
rescue
|
1115
|
+
@w_r.pager_cmd = "cat #{@selected_safe} 2>/dev/null"
|
1116
|
+
w_r_doc
|
1117
|
+
end
|
1118
|
+
else
|
1091
1119
|
@w_r.pager_cmd = "cat #{@selected_safe} 2>/dev/null"
|
1092
1120
|
w_r_doc
|
1093
1121
|
end
|
@@ -1223,6 +1251,7 @@ def pager_start # START PAGING
|
|
1223
1251
|
if @w_r.text.lines.count > @w_r.maxy - 2
|
1224
1252
|
@w_r.pager_more = true
|
1225
1253
|
end
|
1254
|
+
@cont = @w_r.text # For copying right win
|
1226
1255
|
end
|
1227
1256
|
def pager_show # SHOW THE CURRENT PAGE CONTENT
|
1228
1257
|
@w_r.setpos(0,0)
|
@@ -1242,6 +1271,7 @@ def pager_show # SHOW THE CURRENT PAGE CONTENT
|
|
1242
1271
|
@w_r.attr = 0 if @w_r.attr == nil
|
1243
1272
|
@w_r.attron(color_pair(@w_r.fg) | @w_r.attr) { @w_r << input }
|
1244
1273
|
end
|
1274
|
+
@cont = input # For copying right win
|
1245
1275
|
(@w_r.maxy - @w_r.cury).times {@w_r.deleteln()} # Clear to bottom of window
|
1246
1276
|
pager_add_markers
|
1247
1277
|
@w_r.refresh
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtfm-filemanager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -47,7 +47,8 @@ dependencies:
|
|
47
47
|
description: 'A full featured terminal browser with syntax highlighted files, images
|
48
48
|
shown in the terminal, videos thumbnailed, etc. You can bookmark and jump around
|
49
49
|
easily, delete, rename, copy, symlink and move files. RTFM has a a wide range of
|
50
|
-
other features. New in 2.
|
50
|
+
other features. New in 2.7: Added copying of right pane (C-Y) and toggle highlighting
|
51
|
+
(b)'
|
51
52
|
email: g@isene.com
|
52
53
|
executables:
|
53
54
|
- rtfm
|