xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit 211fe9a39d197e8304430d4d662c851e18f30214

Update NEWS file for v0.14 beta
Author: xaizek
Author date (UTC): 2025-01-18 23:16
Committer name: xaizek
Committer date (UTC): 2025-01-18 23:16
Parent(s): a09440e6b8e2d54be5083075dea3d6deb6c6a7f2
Signing key: 99DC5E4DB05F6BE2
Tree: d283a0f57229be590190db7418353567d61449a7
File Lines added Lines deleted
NEWS 373 0
File NEWS changed (mode: 100644) (index f2b4474fa..588fd5d72)
1 19 January 2025
2 ===============
3
4 Vifm v0.14 beta
5 ---------------
6
7 The beta stage will last about two weeks. In case any serious bugs are found
8 during this period, another release candidate can be released.
9
10 Highlights:
11
12 - Somewhat incompatible changes.
13
14 This release contains a number of changes which are technically
15 non-backwards compatible. However, all of them should have very little
16 negative impact (i.e., hard to notice the change without reading the
17 changelog).
18
19 At the same time, a bug, fixing which is likely to have an impact on user
20 configuration, has been identified but not yet fixed to give a chance to
21 update all affected `vifmrc` files. If a bug is likely to be relied on by
22 the configuration, a dialog with the explanation and instructions will
23 appear.
24
25 - Sorting and non-Latin characters.
26
27 Until this release Vifm has always used byte sorting (effectively, sorting
28 of UTF-8 byte sequences). From now on a form of Unicode normalization is
29 applied to strings when sorting views and completion results. The change
30 can be expanded to other cases in future releases. The measured performance
31 impact is negligible (several percent).
32
33 Practically, this means that characters like `a` and `ä` are now grouped
34 together regardless of the way in which diacritic is being encoded. Some
35 characters can still appear in weird non-alphabetic positions because full
36 Unicode normalization results in losing case sensitivity and is therefore
37 not applied.
38
39 - Addressing some longtime woes.
40
41 For one reason or another some inconvenient peculiarities have accumulated
42 over the years. Time has come to replace workarounds with something better:
43
44 * global variables (`g:var`) replace the use of environmental variables for
45 internal purposes, thus avoiding polluting environment of child processes
46 * use of `:let` to invoke a builtin function discarding its result is
47 superseded by a proper `:call` command
48 * use of `execute 'normal! gl'` to run selection now has `:open` command as
49 a better alternative
50 * size of selection can now be queried via `selected()` (previous releases
51 required `expand('%c') == expand('%f')` or an equivalent trick)
52 * `%{expression}` macro in `'statusline'` can now have `}` embedded as
53 `\}` (`\\` still means two slashes)
54 * dialogs now recognize `Enter` and `Escape` keys as "yes" and "no" replies
55
56 - More useful menus.
57
58 `:copen` recalled last navigation menu for years, but that's not always
59 enough. Now up to 25 such menus are stored after their use and can be
60 navigated to via `:chistory`/`:colder`/`:cnewer`.
61
62 In addition, `:grep` or `:find` can be rerun on the same set of commands
63 right from the menu which previously required leaving the menu just to get
64 back to it.
65
66 History of command-line in menus is now also managed and stored, making
67 staying in menu mode for longer a more pleasant experience.
68
69 - UI improvements.
70
71 Navigation between views/tabs via new `:wingo` command with optional
72 incremental completion thanks to new `'wildinc'` option (applicable to any
73 other command or all of them at once).
74
75 Ability to highlight a view column (`:highlight column:size ...`), specify
76 how highlighting applies (`'hloptions'`), set a separator between miller
77 columns in `set fillchars+=millersep:'|'`, shorten columns in the
78 middle (`^` in `'viewcolumn'`).
79
80 Also, displaying of CJK characters on Windows should have much fewer issues
81 now.
82
83 - Lua API.
84
85 Slowly adding new functionality. This batch comes with things like
86 primitive file operations, ability to create custom views or menus and
87 handling ranges of :commands.
88
89 - Other.
90
91 Search matches can be traversed via `Tab` and `Shift-Tab` while in the
92 prompt (applies to navigation mode as well).
93
94 An invalid expression in `:if` or `:elseif` no longer just skips that
95 command, now all commands up to and including matching `:endif` are skipped
96 to avoid executing half-random sequences of commands due to a mistake, which
97 also results in better error messages. Previously, `:elseif` was also
98 evaluating its expression even some earlier branch was already taken.
99
100 `:rename` now asks whether file move is intended instead of assuming a user
101 mistake and refusing to proceed.
102
103 Support MTP devices by bundled `vifm-media` script if simple-mtpfs is
104 installed. Also improve what devices are offered for mounting (e.g., don't
105 offer a whole drive if it contains partitions).
106
107 `v:version` to branch depending on release.
108
109 - Fixes.
110
111 Get preview graphics out of the way in more cases (like when opening menus).
112 Terminals with more than 32768 color pairs should not cause visual defects
113 or crashes anymore.
114
115 Merging of directories was either not asking for confirmation or aborting
116 after skipping a file. Paths with some unreadable characters were not
117 processed due to a regression. Directories weren't counted in estimates of
118 file operations.
119
120 `&&` operator was always evaluating both branches instead of properly
121 short-circuiting. `%a` macro of `'statusline'` was displaying wrong values
122 on non-Linux Unix-like systems. `:compare` falsely claimed that files of
123 identical size and with common prefix are identical.
124
125 Building:
126 - Changed --with-gtk flag to --with-glib (old name is still available). GTK
127 was pulled in by mistake, only GIO/GLib was ever used...
128 - Updated autotools scripts to their newer versions (thanks to phanium, a.k.a.
129 phanen).
130 - Fixed running tests with locales that use comma for decimal point (thanks to
131 PRESFIL).
132 - Fixed running tests with musl libc (thanks to Henrik Holst, a.k.a. hholst80).
133
134 :set command and options:
135 - Changed default value of 'findprg' to avoid the use of syntax specific to
136 GNU find. The only difference is that now one can see "Permission denied"
137 errors which weren't displayed before. Sample vifmrc files contain
138 detection of GNU find on startup (thanks to Jose Riha, a.k.a. jose1711).
139 - Added "mchistory" value to 'vifminfo' and 'sessionoptions' option. It
140 manages storing of command-line history of menus.
141 - Added 'hloptions' option to configure which view colums get affected by file
142 highlighting (thanks to qsmodo).
143 - Added "millersep:" value to 'fillchars' that allows customizing the border
144 between miller columns (thanks to Shuo, a.k.a. shenqshuoh).
145 - Added 'wildinc' option that defines which :commands should be completed as
146 they are edited.
147 - Added 'uioptions' option with possible "iodetails" value to display progress
148 dialog by default (thanks to Ralf Schmitt).
149 - Added middle view column alignment (specified by "^" in 'viewcolumns'
150 option). Part of the text is replaced with ellipsis to keep both start and
151 end visible (patch by Vadim Curcă).
152 - Made completion of an option with its current value work not only on
153 `opt=<tab>`, but also on `opt='<tab>` and `opt="<tab>` (thanks to
154 aleksejrs).
155
156 Command-line mode:
157 - Added ":history mcmd" menu for displaying command-line history of menus.
158 - Added :col[der] and :cnew[er] commands to menu mode to traverse history of
159 navigation menus.
160 - Added :chi[story] command that opens a menu of saved menus (available in all
161 menus as well).
162 - Added "column:{name}" form of argument to :highlight command to specify
163 style of a separate column (thanks to Anton Gepting).
164 - Added :wingo command to navigate to a view by substring matching against its
165 title or path (thanks to iSeeU816 and Alexandre Viau).
166 - Added :cal[l] command to run a function discarding its return value (thanks
167 to anyone asking about simply running a function).
168 - Added :o[pen] command to open current file, selection or range as if Enter
169 was pressed (thanks to Safal Piya, a.k.a. mrsafalpiya).
170 - Added a way to insert "}" inside of %{expr} macro of 'statusline' (thanks to
171 vuenn).
172 - Made :goto preserve custom and tree views (thanks to Svetlozar Iliev, a.k.a.
173 asmodeus812).
174 - Made :compare treat non-regular files (pipes, sockets, etc.) as empty.
175 - Allowed moving files via :rename (requires an interactive confirmation)
176 (thanks to aleksejrs).
177 - Improved error message on trying to :unlet a builtin variable.
178 - Expand environment variables in the arguments of :mark command (thanks to an
179 anonymous at Vifm Q2A site).
180 - Improved detection and reporting of invalid marks by :mark command.
181 - Made Tab and Shift-Tab in interactive search prompts (including when
182 navigating) move cursor to next/previous search match (thanks to David
183 Sierra DiazGranados, a.k.a. davidsierradz).
184
185 Macros:
186 - Allow and skip !/!! prefix of custom external :commands for more macros (%S,
187 %q, %i, %m, %M, %s, %v, %u, %U, %Iu, %IU).
188 - Adjusted heuristic for determining previewer type to allow use of %px and
189 %py with %pd without any implications (thanks to iambumblehead).
190
191 Core:
192 - Changed initialization to not create a copy of rendered man page at
193 $VIFM/vifm-help.txt, :help now opens the original file (thanks to intelfx).
194 - Changed handling of Ctrl-Z to not suspend the application if a corresponding
195 user mapping exists (patch 高浩亮, a.k.a. haolian9).
196 - Perform sorting of completion items after doing Unicode normalization.
197 - Perform sorting of file names after doing Unicode normalization (thanks to
198 hacksenwerk).
199
200 Normal and visual modes:
201 - Added [S and ]S shortcuts as wrapping versions of [s and ]s (thanks to
202 aksr).
203
204 Integration:
205 - Made vifm-media not offer partitioned drives as they aren't mountable as a
206 whole.
207 - Extended vifm-media script to support MTP devices if simple-mtpfs tool is
208 installed (thanks to FlyCat, a.k.a. yanwh0311, and Alexandre Viau).
209 - Fixed vifm-media script not listing external drives with udevil and udisks.
210 - Fixed vifm-media script not listing removable drives with udisks marked as
211 non-removable by udisks.
212
213 AppImage:
214 - Updated ncurses in AppImage to 6.5.
215 - Don't overwrite $TERMINFO in AppImage, set/append to $TERMINFO_DIRS instead
216 (thanks to anonymous at Vifm Q2A site).
217 - Fixed /usr/share/terminfo not being consulted when running from an AppImage
218 (thanks to anonymous at Vifm Q2A site).
219
220 Menus and dialogs:
221 - Added command-line history to menu mode.
222 - Added :gr[ep] and :fin[d] commands to menu mode. They allow (re)running the
223 commands on the same set of files without leaving the mode.
224 - Added inode number to File Info dialog.
225 - Added handling of Enter/Escape keys to prompts and error dialogs (thanks to
226 laur89, Alexandre Viau and multiple other users who asked about this).
227 - List register's content listed in normal rather then reversed order in
228 :registers/:display menu.
229 - Display number of color pairs in use in :version/:vifm menu.
230 - Constrained background error dialogs to appear only in normal mode when not
231 much is going on.
232
233 Macros:
234 - Changed %N macro to not be mutually exclusive with most of other macros (the
235 limitation wasn't documented and didn't make much sense) (thanks to James
236 Dietrich).
237
238 Scripting:
239 - Added a statusbar message and a dialog to warn about an upcoming fix for
240 strings in conditional expressions (e.g., `if $VAR` checks for `$VAR` being
241 non empty instead of converting it to an integer) (thanks to
242 justpretending2).
243 - Changed behaviour on failure to evaluate an expression of :if or :elseif.
244 Previously this resulted in trying to execute any commands until and
245 including :endif (all branches taken). Now everything up to :endif will not
246 be executed (no branches taken) (thanks to Ed Pavlov).
247 - Changed filetype() to accept path in its first parameter. This means that
248 passing it something like "15abc" will no longer be interpreted as 15
249 (thanks to MikeLemon).
250 - Added escape() builtin function to escape specific characters in strings
251 (thanks to The Cyberduck).
252 - Added selected() builtin function which returns number of currently selected
253 files.
254 - Added global variables (with "g:" prefix) to avoid using environment
255 variables in their place as a workaround.
256 - Added v:version builtin variable that exposes version as an integer which
257 can be meaningfully compared (thanks to an anonymous at Vifm Q2A site).
258
259 Performance:
260 - Slightly improved performance of comparing files by content.
261 - Fixed performance degradation after preview consumes lots of color pairs.
262
263 Documentation:
264 - Clarified documentation on column literals and escaping (thanks to
265 chelovechishko).
266 - Made documentation of 'vifminfo' more readable.
267 - Rewrote "Menus and dialogs" section.
268 - Document how the use of different preview macros affects classification of a
269 previewer (thanks to iambumblehead).
270 - Slightly expanded documentation on %N macro (thanks to James Dietrich).
271 - Somewhat improved documentation on functional keys.
272 - Fixed documentation on yy, Y, dd and DD not mentioning how "s" flag of
273 'cpoptions' affects their behaviour (thanks to James Dietrich).
274 - Fixed outdated documentation on the behaviour of n/N when 'hlsearch' is
275 enabled since the introduction of highlighting of search matches (thanks to
276 James Dietrich).
277
278 TUI (Text User Interface):
279 - When processing multiple files in background, show current position in the
280 list on the job bar.
281 - Shorten home directory in paths shown on the job bar.
282 - Provide numerical value of a color as a description of a completion item for
283 it.
284 - Don't attempt clearing graphics when menu-like mode is active. The graphics
285 should have been hidden on entering the mode.
286 - Allowed wild menu popup to take up up to 40% of the screen.
287
288 Only on Windows:
289 - Upgraded to PDCurses 3.9 (was 3.8). Combined with some other changes this
290 improves the situation with handling of CJK characters (thanks to
291 zzx41375004, vodbyte, Jeremy Yuan and others).
292 - Fixed `data/vifmrc` next to vifm.exe being used as global vifmrc file
293 (thanks to midrare).
294 - Fixed incorrectly determining whether a directory is writable (primarily C:\
295 could be reported as non-writable) (thanks to theorlangur and bitraid).
296 - Fixed system() and term() not taking 'shell'/'shellcmdflag' into account
297 (thanks to spence91).
298
299 Color schemes:
300 - Added WildBox highlight group. It can be used to set background of
301 completion window.
302
303 Noteworthy fixes:
304 - Fixed graphics of view mode not being hidden on activating menu, more or
305 file info modes.
306 - Fixed graphics not being cleared on switching to single-pane view (thanks to
307 ret2src).
308 - Fixed a historical omission of Ctrl-G not being available in some prompts:
309 file rename on conflict; owner, group and symbolic link target change
310 (thanks to Branislav Gerazov).
311 - Fixed display issues or a crash when using a terminal with more than 32768
312 color pairs (thanks to iboggs and itshog).
313 - Fixed %a 'statusline' macro producing wrong values on non-Linux Unix-like
314 systems (thanks to voh9eepah).
315 - Fixed merging directories on copying not asking for overwrite confirmations
316 (thanks to aleksejrs).
317 - Fixed skipping of file move during merging aborting the whole operation
318 (thanks to aleksejrs).
319 - Fixed `:[un]select !<text/html>` treating "<text/html>" as an external
320 command.
321 - Fixed environment variables not being expanded on checking that a
322 :file[x]type or :fileviewer command exists (thanks to Ben Elan).
323 - Fixed weird sorting of filenames with non-Latin characters when
324 'sortnumbers' option is set and strverscmp() is not provided by the system
325 (like on Windows).
326 - Fixed :compare reporting identical files as changed when there were more
327 than a couple of files with identical size and 4096-byte prefix. A
328 regression in 0.13-beta (thanks to Alexandr Keyp, a.k.a. IAmKapuze).
329 - Fixed :compare hanging on trying to compare non-regular files like pipes by
330 contents.
331 - Fixed :substitute, :tr, gu* and gU* detecting a non-existent target name
332 conflict when rename in a custom view would produce an identically named
333 files in different directories (thanks to aleksejrs).
334 - Fixed :restart leaving histories disabled unless 'history' is set to a
335 non-default value in vifmrc (thanks to James Dietrich).
336 - Fixed processing of file names and paths that undergo escaping in the UI,
337 like inability to externally rename them (regression in 0.12.1 beta) (thanks
338 to jc-SpaceXp).
339 - Fixed rules for handling of selection by :file[x]type not taking
340 %"c/%"C/%"f/%"F macros into account (relevant mostly to Windows) (thanks to
341 %smoothdad).
342 - Fixed :elseif evaluating its expression even if an earlier conditional
343 branch was already taken.
344 - Fixed loading a session with global tabs when 'tabscope' is "pane" resulting
345 in global tabs being invisible.
346 - Fixed Ctrl-A and Ctrl-E in command-line mode not stopping completion or
347 history search unlike other similar keys.
348 - Fixed directories not being accounted for in estimates (thanks to
349 justpretending2).
350 - Fixed Escape being handled as Ctrl-C in prompts which suppresses future
351 errors.
352 - Fixed !! not affecting commands that include %s or %v macro (thanks to James
353 Dietrich).
354 - Fixed a crash after a memory corruption when running an external command via
355 expansion of an environment variable when 'fastrun' is set (e.g.,
356 `!$EDITOR`) (thanks to Quaddroo).
357 - Fixed abort on instance sending something over IPC to itself (thanks to
358 Marcin Kurczewski, a.k.a. rr-).
359 - Fixed `&&` operator which was acting as binary `&` (in terms of evaluation,
360 the result was properly boolean) (thanks to justpretending2).
361
362 Other changes:
363 - Configure 'vifminfo' in sample vifmrc files to store most of the things in
364 vifminfo by default (add missing histories and tabs) (thanks to Christoph
365 Schmidpeter).
366 - Commented out one of MC-like shortcuts in sample vifmrc files, Ctrl-U, to
367 avoid confusing Vim users with default configuration (thanks to midrare).
368
369 See change log for the full list of changes and by whom they were suggested or
370 implemented.
371
372 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
373
1 374 04 April 2023 04 April 2023
2 375 ============= =============
3 376
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master