rtfm-filemanager 3.10 → 3.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rtfm +72 -57
- 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: dbfb6d5c3e1963f33faa992f302ea07e11e8ead272799293958a4060b2c293a5
|
4
|
+
data.tar.gz: 13c4c9097507dd2bd73d98a75cf8e85fc72eaad7494aec8fe8ed9b9bf0069a03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbd027f69aa06ab38750d352872d26670eb559cbf5c09c0221e00a40b492faa5a19db10b81858c088dbcd2efa39b1c7047c7670456d60492f4c4ee624968f7f3
|
7
|
+
data.tar.gz: 2702fad4c85c61f986d96d932505217ae05cc8a407649d9acb0494793ccc85e0ef896ad06dabd75cbda2b364e51ea87043ed6ded48abceb271de053a9faa6614
|
data/bin/rtfm
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# for any damages resulting from its use. Further, I am under no
|
15
15
|
# obligation to maintain or extend this software. It is provided
|
16
16
|
# on an 'as is' basis without any expressed or implied warranty.
|
17
|
-
@version = "3.
|
17
|
+
@version = "3.12"
|
18
18
|
|
19
19
|
# PRELIMINARIES
|
20
20
|
@help = <<HELPTEXT
|
@@ -211,42 +211,43 @@ begin # BASIC SETUP
|
|
211
211
|
|
212
212
|
# INITIALIZE VARIABLES
|
213
213
|
## These can be set by user in .rtfm.conf
|
214
|
-
@lsbase
|
215
|
-
@lslong
|
216
|
-
@lsall
|
217
|
-
@lsorder
|
218
|
-
@lsinvert
|
219
|
-
@lsuser
|
220
|
-
@width
|
221
|
-
@history
|
222
|
-
@
|
223
|
-
@
|
224
|
-
@
|
225
|
-
@
|
214
|
+
@lsbase = "--group-directories-first" # Basic ls setup
|
215
|
+
@lslong = false # Set short form ls (toggled by pressing "l")
|
216
|
+
@lsall = "" # Set "ls -a" to false (toggled by pressing "a" - sets it to "-a")
|
217
|
+
@lsorder = "" # Change the order/sorting by pressing 'o' (circular toggle)
|
218
|
+
@lsinvert = "" # Set to "-r" to reverse/invert sorting order
|
219
|
+
@lsuser = "" # Set this variable in .rtfm.conf to any 'ls' switch you want to customize directory listings
|
220
|
+
@width = 4 # Set width of the left pane to the default ⅓ of the terminal width
|
221
|
+
@history = [] # Initialize the command line history array
|
222
|
+
@rubyhistory = [] # Initialize the command line history array for ruby commands
|
223
|
+
@border = false
|
224
|
+
@preview = true
|
225
|
+
@runmailcap = false # Set to 'true' in .rtfm.conf if you want to use run-mailcap instead of xdg-open
|
226
|
+
@batuse = true # Use batcat for syntax highlighting
|
226
227
|
## These are automatically written on exit
|
227
|
-
@marks
|
228
|
-
@hash
|
229
|
-
@tagged
|
228
|
+
@marks = {} # Initialize (book)marks hash
|
229
|
+
@hash = {} # Initialize the sha directory hashing
|
230
|
+
@tagged = [] # Initialize the tagged array - for collecting all tagged items
|
230
231
|
## These should not be set by user in .rtfm.conf
|
231
|
-
@directory
|
232
|
-
@searched
|
233
|
-
@lsfiles
|
234
|
-
@lsmatch
|
235
|
-
@index
|
236
|
-
@cont
|
237
|
-
@tagsize
|
238
|
-
@navi
|
239
|
-
@marks["'"]
|
232
|
+
@directory = {} # Initialize the directory hash for remembering directories visited
|
233
|
+
@searched = "" # Initialize the active searched for items
|
234
|
+
@lsfiles = "" # File types to show (initially set to all file types) - not saved on exit
|
235
|
+
@lsmatch = "" # Files to match (initially set to matching all files) - not saved on exit
|
236
|
+
@index = 0 # Set chosen item to first on startup
|
237
|
+
@cont = ""
|
238
|
+
@tagsize = 0
|
239
|
+
@navi = ""
|
240
|
+
@marks["'"] = Dir.pwd
|
240
241
|
## File type recognizers
|
241
|
-
@imagefile
|
242
|
-
@pptfile
|
243
|
-
@xlsfile
|
244
|
-
@docfile
|
245
|
-
@docxfile
|
246
|
-
@xlsxfile
|
247
|
-
@pptxfile
|
248
|
-
@oolofile
|
249
|
-
@pdffile
|
242
|
+
@imagefile = /\.jpg$|\.JPG$|\.jpeg$|\.png$|\.bmp$|\.gif$|\.tif$|\.tiff$/
|
243
|
+
@pptfile = /\.ppt$/
|
244
|
+
@xlsfile = /\.xls$/
|
245
|
+
@docfile = /\.doc$/
|
246
|
+
@docxfile = /\.docx$/
|
247
|
+
@xlsxfile = /\.xlsx$/
|
248
|
+
@pptxfile = /\.pptx$/
|
249
|
+
@oolofile = /\.odt$|\.odc$|\.odp$|\.odg$/
|
250
|
+
@pdffile = /\.pdf$|\.ps$/
|
250
251
|
## Get variables from config file (written back to .rtf.conf upon exit via 'q')
|
251
252
|
if File.exist?(Dir.home+'/.rtfm.conf')
|
252
253
|
load(Dir.home+'/.rtfm.conf')
|
@@ -876,7 +877,7 @@ def main_getkey # GET KEY FROM USER
|
|
876
877
|
@break = true
|
877
878
|
when '@' # Enter "Ruby debug"
|
878
879
|
@w_b.nohistory = false
|
879
|
-
cmd = w_b_getstr("◆ ", "")
|
880
|
+
cmd = w_b_getstr("◆ ", "", true)
|
880
881
|
@w_b.clr
|
881
882
|
@w_b.refresh
|
882
883
|
@w_b.update = true
|
@@ -912,6 +913,10 @@ def conf_write
|
|
912
913
|
conf += "@hash = #{@hash}\n"
|
913
914
|
conf.sub!(/^@tagged.*\[.*\]\n/, "")
|
914
915
|
conf += "@tagged = #{@tagged}\n"
|
916
|
+
conf.sub!(/^@history.*\[.*\]\n/, "")
|
917
|
+
conf += "@history = #{@history}\n"
|
918
|
+
conf.sub!(/^@rubyhistory.*\[.*\]\n/, "")
|
919
|
+
conf += "@rubyhistory = #{@rubyhistory}\n"
|
915
920
|
if @write_conf_all
|
916
921
|
conf.sub!(/^@lslong.*\n/, "")
|
917
922
|
conf += "@lslong = #{@lslong}\n"
|
@@ -1426,17 +1431,23 @@ def w_b_info(info) # SHOW INFO IN @W_B
|
|
1426
1431
|
@w_b.write
|
1427
1432
|
@w_b.update = false
|
1428
1433
|
end
|
1429
|
-
def w_b_getstr(pretext, text) # A SIMPLE READLINE-LIKE ROUTINE
|
1434
|
+
def w_b_getstr(pretext, text, ruby=false) # A SIMPLE READLINE-LIKE ROUTINE
|
1430
1435
|
Curses.curs_set(1)
|
1431
1436
|
Curses.echo
|
1432
1437
|
stk = 0
|
1433
|
-
@history.insert(stk, text)
|
1434
|
-
pos = @history[stk].length
|
1435
1438
|
chr = ""
|
1439
|
+
if ruby
|
1440
|
+
@rubyhistory.insert(stk, text)
|
1441
|
+
@history_copy = @rubyhistory.map(&:clone)
|
1442
|
+
else
|
1443
|
+
@history.insert(stk, text)
|
1444
|
+
@history_copy = @history.map(&:clone)
|
1445
|
+
end
|
1446
|
+
pos = @history_copy[stk].length
|
1436
1447
|
while chr != "ENTER"
|
1437
1448
|
@w_b.setpos(0,0)
|
1438
1449
|
init_pair(250, 250, 238)
|
1439
|
-
text = pretext + @
|
1450
|
+
text = pretext + @history_copy[stk]
|
1440
1451
|
text += " " * (@w_b.maxx - text.length) if text.length < @w_b.maxx
|
1441
1452
|
@w_b.attron(color_pair(250)) { @w_b << text }
|
1442
1453
|
@w_b.setpos(0,pretext.length + pos)
|
@@ -1451,50 +1462,50 @@ def w_b_getstr(pretext, text) # A SIMPLE READLINE-LIKE ROUTINE
|
|
1451
1462
|
case chr
|
1452
1463
|
when 'UP'
|
1453
1464
|
unless @w_b.nohistory
|
1454
|
-
unless stk == @
|
1465
|
+
unless stk == @history_copy.length - 1
|
1455
1466
|
stk += 1
|
1456
|
-
pos = @
|
1467
|
+
pos = @history_copy[stk].length
|
1457
1468
|
end
|
1458
1469
|
end
|
1459
1470
|
when 'DOWN'
|
1460
1471
|
unless @w_b.nohistory
|
1461
1472
|
unless stk == 0
|
1462
1473
|
stk -= 1
|
1463
|
-
pos = @
|
1474
|
+
pos = @history_copy[stk].length
|
1464
1475
|
end
|
1465
1476
|
end
|
1466
1477
|
when 'RIGHT'
|
1467
|
-
pos += 1 unless pos > @
|
1478
|
+
pos += 1 unless pos > @history_copy[stk].length
|
1468
1479
|
when 'LEFT'
|
1469
1480
|
pos -= 1 unless pos == 0
|
1470
1481
|
when 'HOME'
|
1471
1482
|
pos = 0
|
1472
1483
|
when 'END'
|
1473
|
-
pos = @
|
1484
|
+
pos = @history_copy[stk].length
|
1474
1485
|
when 'DEL'
|
1475
|
-
@
|
1486
|
+
@history_copy[stk][pos] = ""
|
1476
1487
|
when 'BACK'
|
1477
1488
|
unless pos == 0
|
1478
1489
|
pos -= 1
|
1479
|
-
@
|
1490
|
+
@history_copy[stk][pos] = ""
|
1480
1491
|
end
|
1481
1492
|
when 'WBACK'
|
1482
1493
|
unless pos == 0
|
1483
|
-
until @
|
1494
|
+
until @history_copy[stk][pos - 1] == " " or pos == 0
|
1484
1495
|
pos -= 1
|
1485
|
-
@
|
1496
|
+
@history_copy[stk][pos] = ""
|
1486
1497
|
end
|
1487
|
-
if @
|
1498
|
+
if @history_copy[stk][pos - 1] == " "
|
1488
1499
|
pos -= 1
|
1489
|
-
@
|
1500
|
+
@history_copy[stk][pos] = ""
|
1490
1501
|
end
|
1491
1502
|
end
|
1492
1503
|
when 'LDEL'
|
1493
|
-
@
|
1504
|
+
@history_copy[stk] = ""
|
1494
1505
|
pos = 0
|
1495
1506
|
when 'TAB' # Tab completion of dirs and files
|
1496
1507
|
p1 = pos - 1
|
1497
|
-
c = @
|
1508
|
+
c = @history_copy[stk][0..(p1)].sub(/^.* /, '')
|
1498
1509
|
p0 = p1 - c.length
|
1499
1510
|
compl = File.expand_path(c)
|
1500
1511
|
compl += "/" if Dir.exist?(compl)
|
@@ -1529,24 +1540,28 @@ def w_b_getstr(pretext, text) # A SIMPLE READLINE-LIKE ROUTINE
|
|
1529
1540
|
Curses.echo
|
1530
1541
|
end
|
1531
1542
|
end
|
1532
|
-
@
|
1543
|
+
@history_copy[stk].sub!(c,compl)
|
1533
1544
|
pos = pos - c.length + compl.length
|
1534
1545
|
when /^.$/
|
1535
|
-
@
|
1546
|
+
@history_copy[stk].insert(pos,chr)
|
1536
1547
|
pos += 1
|
1537
1548
|
end
|
1538
1549
|
while STDIN.ready?
|
1539
1550
|
chr = STDIN.getc
|
1540
|
-
@
|
1551
|
+
@history_copy[stk].insert(pos,chr)
|
1541
1552
|
pos += 1
|
1542
1553
|
end
|
1543
1554
|
end
|
1544
|
-
curstr = @
|
1545
|
-
@
|
1555
|
+
curstr = @history_copy[stk]
|
1556
|
+
@history_copy.shift if @w_b.nohistory
|
1557
|
+
ruby ? @rubyhistory.insert(0, @history_copy[stk]) : @history.insert(0, @history_copy[stk])
|
1546
1558
|
unless @w_b.nohistory
|
1547
1559
|
@history.uniq!
|
1548
1560
|
@history.compact!
|
1549
1561
|
@history.delete("")
|
1562
|
+
@rubyhistory.uniq!
|
1563
|
+
@rubyhistory.compact!
|
1564
|
+
@rubyhistory.delete("")
|
1550
1565
|
end
|
1551
1566
|
Curses.curs_set(0)
|
1552
1567
|
Curses.noecho
|
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: '3.
|
4
|
+
version: '3.12'
|
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-05-
|
11
|
+
date: 2023-05-31 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 3.
|
50
|
+
other features. New in 3.12: Ruby commands gets its own history. Histories are now
|
51
|
+
saved/restored.'
|
51
52
|
email: g@isene.com
|
52
53
|
executables:
|
53
54
|
- rtfm
|