/
NEWS
3880 lines (3312 loc) · 171 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
February 05, 2018
=================
vifm v0.9.1
-----------
This version adds to the list of ways for viewing files by introducing
miller columns view and transposed ls-like view (table view). Other
developments are related to integration between builtin features as well as
with external applications.
Thanks to everyone who tried out the beta.
Main changes:
- introduced file view mode known as miller columns or cascading lists;
- added ability to transpose ls-like view to make it fill by columns;
- more natural behaviour of movement keys in ls-like view;
- new `--remote-expr` command-line option can be used to query state of
running instances;
- extended retry/ignore/abort query to all file operations;
- more control over highlight groups via `:highlight` suitable for
interactive changes;
- mostly eliminated the need for repeating ga/gA commands through automatic
size recalculation.
More detailed list of changes.
File operations:
- added retry/ignore/abort prompt for file copying and directory/file/symlink
creation when 'syscalls' is on (thanks to einhander);
- better detection of write errors on file copying. The error was reported,
but it wasn't treated as a hard error in a specific case related to caching.
Command-line mode:
- added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O
(patch by Dmitry Frank, a.k.a. dimonomid);
- added ability to remove filename-specific highlighting rules with
`:highlight clear {pattern}` (thanks to aleksejrs);
- changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to
rbong);
- made :siblnext and :siblprev commands respect dot and name filters;
- made :siblnext and :siblprev accept [count] range (thanks to filterfalse);
- made :tree pick up list of files from custom view (thanks to filterfalse);
- made :highlight update file-specific group on exact match of the pattern
instead of appending new rule (thanks to aleksejrs);
- remove empty directories which are specified in 'trashdir' with %r and/or %u
automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).
:set command and options:
- added "inode" sorting key, which sorts entries by inode number (thanks to
eco0414);
- added 'millerview' option that enables cascading columns interface for the
view (thanks to sudo-nice);
- added 'milleroptions' option that configures miller view;
- added 'lsoptions' option that allows to get transposed grid in ls-like view
(thanks to Dmitry Frank, a.k.a. dimonomid);
- added 'previewprg' option, which can be used to override :fileviewer commands
either temporarily or permanently (thanks to svenn71);
- added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg
Gordienko, a.k.a. gordio);
- added "u" flag to the 'tuioptions' option. It enables use of Unicode
characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg
Gordienko, a.k.a. gordio);
- added "foldsubkeys" value to the 'suggestoptions' option. It folds multiple
suggestions with common prefix into one entry (thanks to AndreaHasani).
Normal and visual modes:
- added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext
with and without wrapping correspondingly (thanks to filterfalse);
- do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view;
- H/M/L keys in ls-like view now account for columns;
- instead of invalidating directory size previously calculated via ga/gA on
detecting changes in the directory recalculate its size and propagate update
through its parents (thanks to filterfalse).
Macros:
- added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for
%-, which conflicts with alignment specification and requires explicit width
specifier (%0-) (thanks to Marcos Cruz).
Scripting:
- added term() builtin function, which differs from system() only by its
ability to run interactive applications without confusing vifm's interactions
with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid);
- added v:count and v:count1 builtin variables. They are assigned to count
passed to : command;
- don't trigger DirEnter event with previous directory on startup when list of
files is specified on stdin (thanks to filterfalse).
Invocation:
- added `--remote-expr` command-line option, which gives ability to query state
of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).
Completion:
- added completion of filename-specific highlight groups for :highlight
command.
Color schemes:
- added AuxWin highlight group for highlighting auxiliary parts of windows.
TUI (Text User Interface):
- extend width of the cursor in ls-like view to the width of the cell (thanks
to Dmitry Frank, a.k.a. dimonomid);
- indicate preview created with %q with "Command: cmd";
- duplicate status bar error in dialog that reports sourcing error. Will need
to get rid of errors on status bar later.
Performance:
- improved performance of mime-type detection when using libmagic (now might be
about seven times faster by avoiding reinitialization of the library);
- don't force file list reload after `:!` and rely on change detection. This
should result in somewhat better performance (thanks to opennota).
Documentation:
- documented more details about 'vicmd' and 'vixcmd' options (thanks to
Sebastian Cyprych).
Vim-plugin:
- disabled spell checking of vifm files in Vim except for comments.
Only on Windows:
- fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.
Important fixes:
- fixed consuming 100% of CPU on certain pattern of running background
processes (thanks to petRUShka);
- fixed turning quickview into explore view when preview command doesn't
contain macros. Was broken since 0.8;
- fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea);
- fixed cloning of files like `.name` to produce `.name(1)` instead of
`(1).name` (thanks to filterfalse);
- fixed directory size in statusline (patch by Dmitry Frank, a.k.a. dimonomid);
- fixed CWD of the process not matching current view after vifm picked up
change in file system (patch by Daniel Mueller);
- fixed :normal command resetting selection (thanks to filterfalse);
- fixed stopping of put operation after copying symbolic link that's broken on
destination (thanks to filterfalse);
- fixed a "race" with file system when we could load outdated file list and
thus miss some file system updates.
See change log for the full list of changes and by whom they were suggested.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
January 22, 2018
================
vifm v0.9.1 beta
----------------
This version adds to the list of ways for viewing files by introducing
miller columns view and transposed ls-like view (table view). Other
developments are related to integration between builtin features as well as
with external applications.
The beta stage will last about two weeks. In case any serious bugs are found
during this period, another beta version might be released.
Main changes:
- introduced file view mode known as miller columns or cascading lists;
- added ability to transpose ls-like view to make it fill by columns;
- more natural behaviour of movement keys in ls-like view;
- new `--remote-expr` command-line option can be used to query state of
running instances;
- extended retry/ignore/abort query to all file operations;
- more control over highlight groups via `:highlight` suitable for
interactive changes;
- mostly eliminated the need for repeating ga/gA commands through automatic
size recalculation.
More detailed list of changes.
File operations:
- added retry/ignore/abort prompt for file copying and directory/file/symlink
creation when 'syscalls' is on (thanks to einhander);
- better detection of write errors on file copying. The error was reported,
but it wasn't treated as a hard error in a specific case related to caching.
Command-line mode:
- added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O
(patch by Dmitry Frank, a.k.a. dimonomid);
- added ability to remove filename-specific highlighting rules with
`:highlight clear {pattern}` (thanks to aleksejrs);
- changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to
rbong);
- made :siblnext and :siblprev commands respect dot and name filters;
- made :siblnext and :siblprev accept [count] range (thanks to filterfalse);
- made :tree pick up list of files from custom view (thanks to filterfalse);
- made :highlight update file-specific group on exact match of the pattern
instead of appending new rule (thanks to aleksejrs);
- remove empty directories which are specified in 'trashdir' with %r and/or %u
automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).
:set command and options:
- added "inode" sorting key, which sorts entries by inode number (thanks to
eco0414);
- added 'millerview' option that enables cascading columns interface for the
view (thanks to sudo-nice);
- added 'milleroptions' option that configures miller view;
- added 'lsoptions' option that allows to get transposed grid in ls-like view
(thanks to Dmitry Frank, a.k.a. dimonomid);
- added 'previewprg' option, which can be used to override :fileviewer commands
either temporarily or permanently (thanks to svenn71);
- added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg
Gordienko, a.k.a. gordio);
- added "u" flag to the 'tuioptions' option. It enables use of Unicode
characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg
Gordienko, a.k.a. gordio);
- added "foldsubkeys" value to the 'suggestoptions' option. It folds multiple
suggestions with common prefix into one entry (thanks to AndreaHasani).
Normal and visual modes:
- added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext
with and without wrapping correspondingly (thanks to filterfalse);
- do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view;
- H/M/L keys in ls-like view now account for columns;
- instead of invalidating directory size previously calculated via ga/gA on
detecting changes in the directory recalculate its size and propagate update
through its parents (thanks to filterfalse).
Macros:
- added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for
%-, which conflicts with alignment specification and requires explicit width
specifier (%0-) (thanks to Marcos Cruz).
Scripting:
- added term() builtin function, which differs from system() only by its
ability to run interactive applications without confusing vifm's interactions
with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid);
- added v:count and v:count1 builtin variables. They are assigned to count
passed to : command;
- don't trigger DirEnter event with previous directory on startup when list of
files is specified on stdin (thanks to filterfalse).
Invocation:
- added `--remote-expr` command-line option, which gives ability to query state
of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).
Completion:
- added completion of filename-specific highlight groups for :highlight
command.
Color schemes:
- added AuxWin highlight group for highlighting auxiliary parts of windows.
TUI (Text User Interface):
- extend width of the cursor in ls-like view to the width of the cell (thanks
to Dmitry Frank, a.k.a. dimonomid);
- indicate preview created with %q with "Command: cmd";
- duplicate status bar error in dialog that reports sourcing error. Will need
to get rid of errors on status bar later.
Performance:
- improved performance of mime-type detection when using libmagic (now might be
about seven times faster by avoiding reinitialization of the library);
- don't force file list reload after `:!` and rely on change detection. This
should result in somewhat better performance (thanks to opennota).
Documentation:
- documented more details about 'vicmd' and 'vixcmd' options (thanks to
Sebastian Cyprych).
Vim-plugin:
- disabled spell checking of vifm files in Vim except for comments.
Only on Windows:
- fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.
Important fixes:
- fixed consuming 100% of CPU on certain pattern of running background
processes (thanks to petRUShka);
- fixed turning quickview into explore view when preview command doesn't
contain macros. Was broken since 0.8;
- fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea);
- fixed cloning of files like `.name` to produce `.name(1)` instead of
`(1).name` (thanks to filterfalse);
- fixed directory size in statusline (patch by Dmitry Frank, a.k.a. dimonomid);
- fixed CWD of the process not matching current view after vifm picked up
change in file system (patch by Daniel Mueller);
- fixed :normal command resetting selection (thanks to filterfalse);
- fixed stopping of put operation after copying symbolic link that's broken on
destination (thanks to filterfalse);
- fixed a "race" with file system when we could load outdated file list and
thus miss some file system updates.
See change log for the full list of changes and by whom they were suggested.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
June 18, 2017
=============
vifm v0.9
---------
New version brings two new ways of viewing and processing file lists, namely
tree-view and directory-comparison. As usual, previously existing facilities
were extended and improved to become more useful.
Thanks to everyone who tried out the beta, especially filterfalse.
Main changes:
- introduced tree-like representation of files;
- added directory comparison facilities;
- added ability to restore last navigation menu;
- background operations and programs can now be cancelled;
- dismissed error output of external programs can now be queried;
- added shell completion for bash and zsh;
- now it's possible to configure mappings in dialogs.
More detailed list of changes.
Packaging:
- Removed -Werror in tests from non-developer builds.
Command-line mode:
- added :tree command that converts current view into a tree (thanks to
filterfalse and Kornel);
- added :dmap, :dnoremap and :dunmap commands to configure mappings in dialogs
(thanks to Sassan Haradji, a.k.a. sassanh);
- added "tree" parameter to :sync! that enables synchronization of tree view
(thanks to filterfalse);
- added :compare command to perform comparison in one or two directory trees
(thanks to anonymous on SourceForge discussion forum and aleksejrs);
- added :copen command to restore last menu that supports navigation (thanks to
Sassan Haradji, a.k.a. sassanh);
- added :screen! form that enables terminal multiplexers support (instead of
toggling it as :screen does) (thanks to Marcos Cruz);
- added :siblnext and :siblprev commands. They change directory to next or
previous sibling directories of current path (in global sorting order of
current pane) (thanks to sudo-nice);
- made :put, :touch and :mkdir accept [line] range, which can be used to
specify target position in tree-view (thanks to filterfalse);
- accept paths in :touch, not just file names (thanks to filterfalse);
- disallow applying :chmod on ".." entry;
- disallow selecting ".." entry with :select command;
- expand macros in `:[un]select !{command}` (thanks to Michael Corvin).
Macros:
- added %Iu and %IU macros, which are %u and %U equivalents, but work better if
external command is interactive and changes terminal state;
- added %q macro that redirects command output into quick view (thanks to
svenn71).
:set command and options:
- added 'dotfiles' (local) option, which exposes dot files filter as an option
(thanks to filterfalse);
- added 'caseoptions' option that enables more fine-grained control over case
sensitivity (thanks to Alexandru Geana, a.k.a. alegen);
- added 'sizefmt' option that configures formatting of human-friendly size
(thanks to sudo-nice);
- added %f 'statusline' macro that inserts relative path of the entry, which
might be useful for non-regular views (thanks to filterfalse);
- added %D 'statusline' macro that displays path of the other pane in
single-pane layout (thanks to sudo-nice);
- added %T 'statusline' macro that displays symbolic link target (thanks to
sudo-nice);
- added %a 'statusline' macro that displays amount of free space available at
current partition (thanks to sudo-nice);
- consider trailing slash for directories or symbolic links that point to
directories in 'classify' patterns by file name (e.g., this works now:
`[::*/::]`);
- better handling of setting 'fillchars' to incorrect or excessive value.
Normal and visual modes:
- added [d and ]d shortcuts to navigate to previous/next directory entry
(thanks to filterfalse);
- added [s and ]s shortcuts to navigate to previous/next selected entry
(thanks to filterfalse);
- added [z and ]z shortcuts to navigate to first/last sibling in a tree
(thanks to filterfalse);
- added zj and zk shortcuts to navigate to next/previous directory sibling in a
tree (thanks to filterfalse);
- added [c and ]c shortcuts to navigate to previous/next mismatch in directory
comparison view (thanks to filterfalse);
- added do and dp keys to compare views for applying changes in files (thanks
to filterfalse).
Menus and dialogs:
- added dd key to :jobs menu, which requests cancellation of background
operation. Background :put, :copy, :move, :delete, size calculation with ga
and gA as well as applications started in background can be cancelled this
way (thanks to blurm);
- added e key to :jobs menu that displays list of errors issues by that jobs,
if any. h key goes back to :jobs menu;
- added % key to menu mode, which navigates to [count]-th percent of the list;
- added meaning to [count] of cp shortcut, which is now processed as numerical
argument for non-recursive `chmod` command (thanks to sudo-nice);
- partially return progress report for menus. Was disabled by introduction of
null byte heuristic.
File operations:
- enable restoring files from trash from custom views;
- disallow moving/copying/linking files into custom view (put is forbidden, so
makes sense to forbid these too);
- try harder to move files by not giving up on getting permission error, which
isn't always a reliable indication of actual permission error. Only when
'syscalls' is on (thanks to Marcin Kurczewski, a.k.a. rr-).
File preview:
- view current directory on ".." for quickview/view mode if no viewer matches
such entry (thanks to filterfalse);
- enable cancellation of tree preview construction (thanks to filterfalse);
- do not resolve symbolic links in directory preview (thanks to filterfalse).
Security:
- make temporary rename files accessible only by the user (thanks to
aleksejrs).
Performance:
- improve performance of startup and exit by omitting file existence checks.
The cost is possibly old files staying in the state, but it should be for
long time (thanks to Marcin Kurczewski, a.k.a. rr-);
- improved sorting performance in the presence of huge amount of symbolic links
(thanks to Marcin Kurczewski, a.k.a. rr-).
Invocation:
- don't disable preview on `--remote --select` if it doesn't hide updated pane
(thanks to Marcin Kurczewski, a.k.a. rr-);
- make +{num} and similar options work (actually affect cursor of the view)
(thanks to filterfalse);
- treat "+" option the same way as Vim (like :$) (thanks to filterfalse).
Scripting:
- added v:servername variable, which provides access to server name of the
running instance used by --remote feature (thanks to Marcin Kurczewski,
a.k.a. rr-);
- getpanetype() got new value ("tree") to indicate tree-view (thanks to
filterfalse).
TUI (Text User Interface):
- limited maximum height of message popup, just print how many lines we're
skipping;
- put hardware cursor according to current mode and cursor within it (thanks to
Tyler Spivey);
- display path to the conflicting file in conflict resolution dialog;
- provide better messages on i/o errors with 'syscalls' (thanks to Behrooz).
File filtering:
- don't move cursor off "../" before start of local filtering (thanks to
filterfalse);
- prevent clearing filters on zM if there were no zO preceding it (thanks to
sudo-nice).
Color schemes:
- added CmpMismatch highlight group for highlighting mismatched files on
side-by-side comparison.
Integration:
- added completion scripts for bash and zsh (patches by filterfalse);
- escape first tilde in paths that go to the shell (thanks to Marius Schmidl);
- resolve symbolic link for listing associated programs from desktop-files
(thanks to filterfalse).
Vim-plugin:
- work around :drop command being disabled in the plugin (thanks to Phil
Runninger);
- fixed inconsistent behaviour of :EditVifm in plugin with regard to
"[No Name]" buffer (thanks to Phil Runninger);
- fixed plugin in versions of Vim where :argadd without argument doesn't work
(thanks to eco0414).
Only on Windows:
- use <exe file location>/data/colors as global storage of color schemes on
Windows (thanks to r44083);
- handle terminal resize on Windows 10 (thanks to randomizedthinking);
- properly recover from invalid/strange UNC root on Windows. Don't end up with
empty filelist;
- fixed use of non-latin characters in environment variables and command-line
options (thanks to khaoos-abominable).
Important fixes:
- fixed redirecting stdout of background commands to /dev/null, which could be
unwritable descriptor (thanks to c02y);
- fixed possible data loss on moving/copying files over their own parent or
child directories via p, P, :move, :copy, :alink and :rlink (thanks to Marius
Schmidl);
- fixed detection of too-small-terminal state;
- fixed treating characters like š and ć (with low Unicode values, just above
0x100) as functional keys on input (thanks to granderil).
Other changes:
- changed size formatting to round from zero (matches behaviour of e.g. `ls`);
- read error output of background commands independently of main thread
(prevents blocking of tools which produce huge amount of output) (thanks to
Stas Malavin);
- no vifminfo merging if file change isn't detected. Might result in faster
quitting in some cases. Not accounting for some changes is still possible
when multiple instances quit simultaneously, but same could happen without
this change;
- made search consider trailing slash for directories and symbolic links that
point to directories (thanks to filterfalse);
- don't use :filextype in sample vifmrc for OS X, we can't tell whether
graphical system is running (thanks to piotryordanov).
See change log for the full list of changes and by whom they were suggested.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
June 04, 2017
=============
vifm v0.9 beta
--------------
New version brings two new ways of viewing and processing file lists, namely
tree-view and directory-comparison. As usual, previously existing facilities
were extended and improved to become more useful.
The beta stage will last about two weeks. In case any serious bugs are found
during this period, another beta version might be released.
Main changes:
- introduced tree-like representation of files;
- added directory comparison facilities;
- added ability to restore last navigation menu;
- background operations and programs can now be cancelled;
- dismissed error output of external programs can now be queried;
- added shell completion for bash and zsh;
- now it's possible to configure mappings in dialogs.
More detailed list of changes.
Packaging:
- Removed -Werror in tests from non-developer builds.
Command-line mode:
- added :tree command that converts current view into a tree (thanks to
filterfalse and Kornel);
- added :dmap, :dnoremap and :dunmap commands to configure mappings in dialogs
(thanks to Sassan Haradji, a.k.a. sassanh);
- added "tree" parameter to :sync! that enables synchronization of tree view
(thanks to filterfalse);
- added :compare command to perform comparison in one or two directory trees
(thanks to anonymous on SourceForge discussion forum and aleksejrs);
- added :copen command to restore last menu that supports navigation (thanks to
Sassan Haradji, a.k.a. sassanh);
- added :screen! form that enables terminal multiplexers support (instead of
toggling it as :screen does) (thanks to Marcos Cruz);
- added :siblnext and :siblprev commands. They change directory to next or
previous sibling directories of current path (in global sorting order of
current pane) (thanks to sudo-nice);
- made :put, :touch and :mkdir accept [line] range, which can be used to
specify target position in tree-view (thanks to filterfalse);
- accept paths in :touch, not just file names (thanks to filterfalse);
- disallow applying :chmod on ".." entry;
- disallow selecting ".." entry with :select command.
Macros:
- added %Iu and %IU macros, which are %u and %U equivalents, but work better if
external command is interactive and changes terminal state;
- added %q macro that redirects command output into quick view (thanks to
svenn71).
:set command and options:
- added 'dotfiles' (local) option, which exposes dot files filter as an option
(thanks to filterfalse);
- added 'caseoptions' option that enables more fine-grained control over case
sensitivity (thanks to Alexandru Geana, a.k.a. alegen);
- added 'sizefmt' option that configures formatting of human-friendly size
(thanks to sudo-nice);
- added %f 'statusline' macro that inserts relative path of the entry, which
might be useful for non-regular views (thanks to filterfalse);
- added %D 'statusline' macro that displays path of the other pane in
single-pane layout (thanks to sudo-nice);
- added %T 'statusline' macro that displays symbolic link target (thanks to
sudo-nice);
- added %a 'statusline' macro that displays amount of free space available at
current partition (thanks to sudo-nice);
- consider trailing slash for directories or symbolic links that point to
directories in 'classify' patterns by file name (e.g., this works now:
`[::*/::]`);
- better handling of setting 'fillchars' to incorrect or excessive value.
Normal and visual modes:
- added [d and ]d shortcuts to navigate to previous/next directory entry
(thanks to filterfalse);
- added [s and ]s shortcuts to navigate to previous/next selected entry
(thanks to filterfalse);
- added [z and ]z shortcuts to navigate to first/last sibling in a tree
(thanks to filterfalse);
- added zj and zk shortcuts to navigate to next/previous directory sibling in a
tree (thanks to filterfalse);
- added [c and ]c shortcuts to navigate to previous/next mismatch in directory
comparison view (thanks to filterfalse);
- added do and dp keys to compare views for applying changes in files (thanks
to filterfalse).
Menus and dialogs:
- added dd key to :jobs menu, which requests cancellation of background
operation. Background :put, :copy, :move, :delete, size calculation with ga
and gA as well as applications started in background can be cancelled this
way (thanks to blurm);
- added e key to :jobs menu that displays list of errors issues by that jobs,
if any. h key goes back to :jobs menu;
- added % key to menu mode, which navigates to [count]-th percent of the list;
- added meaning to [count] of cp shortcut, which is now processed as numerical
argument for non-recursive `chmod` command (thanks to sudo-nice);
- partially return progress report for menus. Was disabled by introduction of
null byte heuristic.
File operations:
- enable restoring files from trash from custom views;
- disallow moving/copying/linking files into custom view (put is forbidden, so
makes sense to forbid these too);
- try harder to move files by not giving up on getting permission error, which
isn't always a reliable indication of actual permission error. Only when
'syscalls' is on (thanks to Marcin Kurczewski, a.k.a. rr-).
File preview:
- view current directory on ".." for quickview/view mode (thanks to
filterfalse);
- enable cancellation of tree preview construction (thanks to filterfalse);
- do not resolve symbolic links in directory preview (thanks to filterfalse).
Security:
- make temporary rename files accessible only by the user (thanks to
aleksejrs).
Performance:
- improve performance of startup and exit by omitting file existence checks.
The cost is possibly old files staying in the state, but it should be for
long time (thanks to Marcin Kurczewski, a.k.a. rr-);
- improved sorting performance in the presence of huge amount of symbolic links
(thanks to Marcin Kurczewski, a.k.a. rr-).
Invocation:
- don't disable preview on `--remote --select` if it doesn't hide updated pane
(thanks to Marcin Kurczewski, a.k.a. rr-);
- make +{num} and similar options work (actually affect cursor of the view)
(thanks to filterfalse);
- treat "+" option the same way as Vim (like :$) (thanks to filterfalse).
Scripting:
- added v:servername variable, which provides access to server name of the
running instance used by --remote feature (thanks to Marcin Kurczewski,
a.k.a. rr-);
- getpanetype() got new value ("tree") to indicate tree-view (thanks to
filterfalse).
TUI (Text User Interface):
- limited maximum height of message popup, just print how many lines we're
skipping;
- put hardware cursor according to current mode and cursor within it (thanks to
Tyler Spivey);
- display path to the conflicting file in conflict resolution dialog;
- provide better messages on i/o errors with 'syscalls' (thanks to Behrooz).
File filtering:
- don't move cursor off "../" before start of local filtering (thanks to
filterfalse);
- prevent clearing filters on zM if there were no zO preceding it (thanks to
sudo-nice).
Color schemes:
- added CmpMismatch highlight group for highlighting mismatched files on
side-by-side comparison.
Integration:
- added completion scripts for bash and zsh (patches by filterfalse);
- escape first tilde in paths that go to the shell (thanks to Marius Schmidl);
- resolve symbolic link for listing associated programs from desktop-files
(thanks to filterfalse).
Vim-plugin:
- work around :drop command being disabled in the plugin (thanks to Phil
Runninger);
- fixed inconsistent behaviour of :EditVifm in plugin with regard to
"[No Name]" buffer (thanks to Phil Runninger);
- fixed plugin in versions of Vim where :argadd without argument doesn't work
(thanks to eco0414).
Only on Windows:
- use <exe file location>/data/colors as global storage of color schemes on
Windows (thanks to r44083);
- handle terminal resize on Windows 10 (thanks to randomizedthinking);
- properly recover from invalid/strange UNC root on Windows. Don't end up with
empty filelist;
- fixed use of non-latin characters in environment variables and command-line
options (thanks to khaoos-abominable).
Important fixes:
- fixed redirecting stdout of background commands to /dev/null, which could be
unwritable descriptor (thanks to c02y);
- fixed possible data loss on moving/copying files over their own parent or
child directories via p, P, :move, :copy, :alink and :rlink (thanks to Marius
Schmidl);
- fixed detection of too-small-terminal state;
- fixed treating characters like š and ć (with low Unicode values, just above
0x100) as functional keys on input (thanks to granderil).
Other changes:
- changed size formatting to round from zero (matches behaviour of e.g. `ls`);
- read error output of background commands independently of main thread
(prevents blocking of tools which produce huge amount of output) (thanks to
Stas Malavin);
- no vifminfo merging if file change isn't detected. Might result in faster
quitting in some cases. Not accounting for some changes is still possible
when multiple instances quit simultaneously, but same could happen without
this change;
- made search consider trailing slash for directories and symbolic links that
point to directories (thanks to filterfalse).
See change log for the full list of changes and by whom they were suggested.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
July 16, 2016
=============
vifm v0.8.2
-----------
This release brings a bit of user-friendliness in form of key suggestions and
various descriptions provided in the interface. Matching of files has been
extended in many ways and become significantly more powerful than before.
Menu mode also got several enhancements.
Thanks to everyone who found time to try the beta.
Main changes:
- key suggestions in the interface on ambiguous input (e.g. "g");
- helpful shortcuts for dialogs (for sort dialog in particular);
- key descriptions in :map menus and %z macro for 'statusline' to display some
tips;
- description of all :commands, 'options' and their values for new multiline
version of wildmenu;
- ANDing, ORing and negating patterns for matching files and new mime-type
matcher;
- file prefixes and suffixes can now be multi-byte, which with extended
'classify' option allows specifying "icons" via custom fonts;
- search result highlighting, enabled completion and a way to export the list
for menus;
- an indication of pattern correctness and match state for interactive prompts.
- :select and :unselect commands to perform automatic file selection (possibly
by using output of external application);
- cancellation (handling of Ctrl-C) for quick view and view mode loading.
Not sure if it was noticed, but HTTPS protocol is up for related sites since
Let's Encrypt started their beta. Everything works fine, so all the links were
updated to https protocol.
If you ever wondered which keys are builtin for the command (normal) mode of
Vifm, this cheatsheet will show you: https://next.vifm.info/cheatsheets.shtml
In case you're into using neovim, you might be interesting into checking out
alternative Vifm plugin for it: https://github.com/vifm/neovim-vifm
More detailed list of changes.
Core:
- added heuristic that uses null byte as separator for file lists if there is
at least one such byte, otherwise normal line separators are used. This
affects :[un]select, `vifm -`, %u, %U, %m and %M (thanks to filterfalse);
- changed order of initialization to perform autocommands before startup
commands on launch.
Normal and visual modes:
- changed ga/gA effect on parent entry (..) to calculate size of current
directory (thanks to aleksejrs).
:set command and options:
- added 'wildstyle' option to control the way wild menu is displayed. Enables
displaying it as a menu with one item per line (thanks to santhoshr and
octos);
- added 'suggestoptions' option to control displaying of suggestions;
- added support of patterns to 'classify' option, so that files can now be
decorated based on their names (thanks to elricbk);
- added 'cvoptions' option to control when entering/leaving custom views is
considered to be equal to entering/leaving directories (thanks to
filterfalse);
- added "target" sorting key, which sorts files by symbolic link targets
(thanks to Marcos Cruz);
- added %z 'statusline' macro that inserts text of a short tip picked at random
(thanks to qinghao, a.k.a. haobug);
- changed type of 'confirm' option. Now it's a set that picks which operations
should be confirmed (thanks to Losiara and mvucBmM0);
- allow suffixes and prefixes in 'classify' to be of up to eight characters in
length (thanks to elricbk).
Command-line mode:
- added "filelist" parameter to :sync! that enables synchronization of custom
view (thanks to filterfalse);
- added :select and :unselect commands (thanks to filterfalse, Russell Urquhart
and Marcos Cruz);
- added negation to patterns with explicitly specified type (surrounded by {}
or //). Put exclamation mark to invert pattern match (thanks to Marcos
Cruz);
- added mime type patterns ([!]<list-of-globs>) (thanks to Ross Hadden, a.k.a.
rosshadden);
- added pattern ANDing. Just list decorated patterns one after another and
such composite pattern will much when each of them matches (thanks to
filterfalse);
- added pattern ORing for :file[x]type and :fileviewer commands implemented as
a comma-separated list (thanks to filterfalse);
- expand environment variables for :edit (thanks to filterfalse);
- don't print just table header on `:cabbr something`, print message that no
matches found instead;
- use original (before custom view) cursor position on :sync! in custom views
(thanks to filterfalse).
File preview:
- added cancellation (handling of Ctrl-C) for quick view and view mode loading
(thanks to kalterfive);
- skip UTF-8 BOM for file preview.
File list:
- never add parent entry (..) to very custom view (%U) (thanks to filterfalse);
- silently ignore tries to remove parent entry (..) (thanks to aleksejrs);
- automatically update custom view entries on rename of their parent directory
in the same custom view.
Completion:
- added completion of :wincmd argument;
- do not reset completion on terminal resize;
- some corrections of when completion happens for :find and :grep.
Scripting:
- added chooseopt() builtin function that retrieves various parameters of file
choosing (thanks to Von Welch).
Menus and dialogs:
- added highlighting of search matches in menus;
- added :noh[lsearch] command to menu mode;
- added quick shortcuts to dialogs (patch by oo-);
- added description of builtin keys to :map menus;
- added :write command to menus, that writes all menu lines into specified file
(thanks to gtors);
- a bit better delete confirmation messages with number of files to be deleted;
- avoid displaying useless search messages about incorrect pattern during
interactive search in menus (those that user can't see, but that are shown in
:messages);
- enabled wildmenu for menus.
TUI (Text User Interface):
- added indication of wrong pattern and absence of matches to command-prompt
for interactive search/filtering.
Angle bracket notation:
- display <c-h> as <bs> only at the beginning of key sequence.
Color schemes:
- added SuggestBox highlight group for key suggestion box.
Vim-plugin:
- added support for matchit to filetype plugin (patch by filterfalse);
- better terminal buffer title for plugin in neovim (thanks to
randomizedthinking);
- improved syntax highlighting of patterns.
Only on Windows:
- fixed escaping for cmd.exe again, for :edit and external command invocations
(thanks to Reva Revadigar);
- fixed querying file information on 64-bit Windows (thanks to santhoshr);
- fixed possible crash on displaying job bar (e.g. after :empty) (thanks to
Reva Revadigar);
- fixed UTF8 <-> UTF16 conversion, which didn't always work (on surrogate
characters it seems) (thanks to Reva Revadigar);
- fixed possible unexpectedly long timeouts when waiting for a key (due to
limitation of pdcurses);
- fixed displaying of wide (CJK) characters in pdcurses (thanks to Reva
Revadigar);
- fixed capturing output of external applications when 'shell' is "cmd". Was
broken since v0.8 in an attempt to make cmd work better with Unicode (but its
/U flag affects only input and output streams).
Packaging:
- fixed functioning on architectures on which `char` is unsigned by default
(thanks to Ondrej Novy, a.k.a. onovy).
Important fixes:
- fixed hanging on sudden terminal loss (regression) (thanks to aleksejrs);
- fixed using original file names after a prompt for new destination name
(thanks to rbong);
- fixed unconditional resetting of executable permission when using cp dialog
(thanks to Svyatoslav Mishyn, a.k.a. juef);
- fixed remote feature on cygwin (thanks to Cosmin Popescu, a.k.a.
cosminadrianpopescu);
- fixed epic bug in processing selectors followed by other commands in a
mapping. Command which accepted selector was called after tail of sequence
is processed. Such case isn't very likely, so it probably didn't affect
anyone.
See change log for the full list of changes and by whom they were suggested.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
July 02, 2016
=============
vifm v0.8.2 beta testing has started
------------------------------------
This release brings a bit of user-friendliness in form of key suggestions and
various descriptions provided in the interface. Matching of files has been
extended in many ways and become significantly more powerful than before.
Menu mode also got several enhancements.
Main changes:
- key suggestions in the interface on ambiguous input (e.g. "g");
- helpful shortcuts for dialogs (for sort dialog in particular);
- key descriptions in :map menus and %z macro for 'statusline' to display some
tips;
- description of all :commands, 'options' and their values for new multiline
version of wildmenu;
- ANDing, ORing and negating patterns for matching files and new mime-type
matcher;
- file prefixes and suffixes can now be multi-byte, which with extended
'classify' option allows specifying "icons" via custom fonts;
- search result highlighting, enabled completion and a way to export the list
for menus;
- an indication of pattern correctness and match state for interactive prompts.
- :select and :unselect commands to perform automatic file selection (possibly
by using output of external application);
- cancellation (handling of Ctrl-C) for quick view and view mode loading.
Not sure if it was noticed, but HTTPS protocol is up for related sites since
Let's Encrypt started their beta. Everything works fine, so all the links were
updated to https protocol.
If you ever wondered which keys are builtin for the command (normal) mode of
Vifm, this cheatsheet will show you: https://next.vifm.info/cheatsheets.shtml
In case you're into using neovim, you might be interesting into checking out
alternative Vifm plugin for it: https://github.com/vifm/neovim-vifm
More detailed list of changes.
Core:
- added heuristic that uses null byte as separator for file lists if there is
at least one such byte, otherwise normal line separators are used. This
affects :[un]select, `vifm -`, %u, %U, %m and %M (thanks to filterfalse);
- changed order of initialization to perform autocommands before startup
commands on launch.
Normal and visual modes:
- changed ga/gA effect on parent entry (..) to calculate size of current
directory (thanks to aleksejrs).
:set command and options:
- added 'wildstyle' option to control the way wild menu is displayed. Enables
displaying it as a menu with one item per line (thanks to santhoshr and
octos);
- added 'suggestoptions' option to control displaying of suggestions;
- added support of patterns to 'classify' option, so that files can now be
decorated based on their names (thanks to elricbk);
- added 'cvoptions' option to control when entering/leaving custom views is
considered to be equal to entering/leaving directories (thanks to
filterfalse);
- added "target" sorting key, which sorts files by symbolic link targets
(thanks to Marcos Cruz);
- added %z 'statusline' macro that inserts text of a short tip picked at random
(thanks to qinghao, a.k.a. haobug);
- changed type of 'confirm' option. Now it's a set that picks which operations
should be confirmed (thanks to Losiara and mvucBmM0);
- allow suffixes and prefixes in 'classify' to be of up to eight characters in
length (thanks to elricbk).
Command-line mode:
- added "filelist" parameter to :sync! that enables synchronization of custom
view (thanks to filterfalse);
- added :select and :unselect commands (thanks to filterfalse, Russell Urquhart
and Marcos Cruz);
- added negation to patterns with explicitly specified type (surrounded by {}
or //). Put exclamation mark to invert pattern match (thanks to Marcos
Cruz);
- added mime type patterns ([!]<list-of-globs>) (thanks to Ross Hadden, a.k.a.
rosshadden);
- added pattern ANDing. Just list decorated patterns one after another and
such composite pattern will much when each of them matches (thanks to
filterfalse);
- added pattern ORing for :file[x]type and :fileviewer commands implemented as
a comma-separated list (thanks to filterfalse);
- expand environment variables for :edit (thanks to filterfalse);
- don't print just table header on `:cabbr something`, print message that no
matches found instead;
- use original (before custom view) cursor position on :sync! in custom views
(thanks to filterfalse).
File preview:
- added cancellation (handling of Ctrl-C) for quick view and view mode loading
(thanks to kalterfive);
- skip UTF-8 BOM for file preview.
File list:
- never add parent entry (..) to very custom view (%U) (thanks to filterfalse);
- silently ignore tries to remove parent entry (..) (thanks to aleksejrs);
- automatically update custom view entries on rename of their parent directory
in the same custom view.
Completion:
- added completion of :wincmd argument;
- do not reset completion on terminal resize;
- some corrections of when completion happens for :find and :grep.
Scripting:
- added chooseopt() builtin function that retrieves various parameters of file
choosing (thanks to Von Welch).