github blue-panels/mcommander v6.2.0

one hour ago

Русская версия

Major changes

A new duplicates panel plugin finds copies of files. Command > Find duplicates... searches a directory, and the other panel too if you want, by size, name or content; files are compared by size, then by a hash of their first and last 4 KiB, then by a hash of the whole file, and the hashes are kept for the next search. "Similar content" also groups pictures that look the same and texts that differ only in line endings and spaces. The other panel can be a reference directory whose files are never moved or deleted. The search runs in the background: "Show found" opens the panel with the groups found so far, and the drive menu brings it back. (#463)

Panel plugins now reach databases and GitHub. The postgres plugin browses PostgreSQL servers and shows the rows of a query as a table; the gh plugin lists the pull requests and issues of GitHub; the mongo and sqlite plugins show a collection, a table, a view or a page of rows as a table on F3. Panel plugin modules are opened only when they are first used, so they no longer slow down the start. (#434, #435, #438, #440, #441, #443, #444, #462)

The panels and the built-in terminal speak the full kitty keyboard protocol. Keys such as Ctrl with a digit work, the key bar follows the modifier you hold, and programs that run in mcterm get the protocol as well. The Win32 input mode of Windows Terminal is supported too. (#346, #383, #398, #399, #401)

The compare view merges three files. It compares with the xdiff code of git inside the program instead of running diff, lets you pick the base of a merge and shows which file is active and in which direction a change is copied. The git panel shows merge conflicts and opens this merge on Shift-F3. (#413, #415, #421, #422)

An opt-in Far mode gives the panels the keys of Far Manager, including the fast find on Alt with a character. (#403, #437)


Features

Panel plugins

  • Duplicate file search. The duplicates plugin also finds similar pictures (JPEG and PNG, using a perceptual hash) and texts. (#463)

  • PostgreSQL. A new panel plugin: servers, databases, schemas and tables. Alt-F3 opens a query console for the database (bluerig or psql), and F3 on a table shows its SQL and its first rows as a table. (#438, #444)

  • GitHub. The gh plugin lists the pull requests and issues of a repository. (#434)

  • MongoDB. Alt-F3 opens a query console for the database (bluerig or mongosh), and F3 on a collection shows its documents as a table. (#435, #440, #443)

  • SQLite. F3 shows a table, a view or a page of rows as a table. (#441)

  • Git panel. The panel runs the bluerig editor for its Git window, shows merge conflicts and merges them on Shift-F3. (#407, #421)

  • Changes of a branch. The git panel shows all the changes of a branch in the diff folder at the top of the commit list, and Quick view shows the description of a commit. (#425)

  • Access control lists. An editor of POSIX and Windows ACLs, from the Attributes menu. (#409)

  • sftp and shell-link. sftp uses the default keys and keyboard-interactive authentication; shell-link reports the errors of a remote write or unlink. (#411, #412)

  • Lazy loading of plugins. Panel plugins are loaded the first time they are used, which lowers the use of memory and other resources. (#462)

  • External editor. The bluerig tool can be run from the panel plugins for git, MongoDB and PostgreSQL. (#467)

  • Recoding. Alt-e recodes filenames in a plugin panel, as in a local one. (#442)

Built-in terminal (mcterm)

  • Kitty keyboard protocol. The full protocol in the panels and for the programs in mcterm, and Ctrl with a digit. (#346, #383, #398, #399)

  • Key bar with modifiers. While Shift, Ctrl or Alt is held, the key bar shows the commands of the F keys with that modifier. It needs a terminal with the kitty keyboard protocol and is turned on by the keybar_modifiers option in the settings file. (#398)

  • Wide characters and attributes. Wide characters take two cells, and more SGR attributes are shown. (#354)

  • Clipboard of programs. The OSC 52 clipboard text of a program in mcterm reaches the clipboard. (#378)

  • Sessions. mc can survive a closed terminal or a dropped connection: with the session plugin, the next start of mc returns to the same session. The plugin is turned on in Manage plugins. (#423)

Editor

  • Bracketed paste. A paste comes in as one block and is undone in one step. (#397)

  • File chooser. A new file chooser dialog. (#419)

  • Editor. Ctrl-A now selects all the text in the editor. (#416)

Syntax highlighting

  • Nested syntaxes. One syntax can be embedded in another: scripts and style sheets in HTML are highlighted as JavaScript and CSS, and code blocks in markdown by the language they name. Rule sets can be layered, as in Smarty or Jinja2 templates. (#404)

  • New syntaxes. Highlighting for Jinja2, Mermaid, Smarty and git commit messages. Code for awk, python and SQL inside shell scripts is highlighted by the rules of its language. (#405)

Viewer

  • Faster search in the viewer. Searching for plain text or hex in large files is many times faster. (#458)

Compare view

  • Three-way merge. The compare view merges three files, with a chosen base, the active file and the copy direction shown; files are compared with the xdiff code of git. (#413, #415, #422)

  • The compare program is renamed to mcdiff6 because of a name clash. (#343)

  • Compare files is now on Ctrl-X f; it used to be Ctrl-X Ctrl-d. (#416)

Interface and core

  • Optional Far mode. A mode with the keys of Far Manager and its fast find on Alt with a character. Turned on by separate options. (#403, #437)

  • Windows Terminal. The keys of the Win32 input mode are read. (#401)

  • Widgets. Lists and tables draw scrollbars as the skin sets them, a drop-down menu taller than the screen scrolls, and the check boxes of a table row get a cursor. (#408, #432, #436)

  • Clipboard of the terminal. Copying goes to the clipboard of the terminal via OSC 52. (#430)

  • Pictures. Sixel pictures are drawn again after the screen is refreshed. (#384)

  • User menu. Entries can have conditions, and the menu has a file to edit by hand. (#388)


Fixes

Editor

  • A ctags jump no longer crashes the editor: the highlighting read the window that had been freed. (#466)
  • The memory errors valgrind found are fixed, among them a character read past the end of a buffer chunk. (#469)
  • Undo and redo take a UTF-8 character as a whole. (#406)
  • The editor shows its text at start, not just the title and the buttons until the first key press. (#445)
  • An editor window moved off the screen no longer loads the CPU, and "Press any key to continue" waits for a real key press. (#447)
  • ctags no longer leaks pointer buffers in tag lookups. (#459)

Viewer and quick view

  • Quick view shows the file as soon as the panel switches to it, not after the cursor moves. (#464)
  • F3 and Quick view show pictures not only for local files but in plugin panels too. (#465)
  • A file is no longer downloaded twice when viewed (F3 and Quick view) in panel plugins. (#439)
  • A source gets its own display mode back when the view is done, and hex bytes are shown on a line of their own. (#400, #424)
  • Markdown keeps table rows whole, keeps long code lines inside their frame and shows plain text as text. (#380, #381, #446)

Built-in terminal (mcterm)

  • mcterm answers DSR, starts bash with its own startup file, passes a paste to the shell as one block and waits for the echo only after a whole UTF-8 character. (#342, #356, #379, #382)
  • Home, End and Shift-Tab reach the shell and the programs as in xterm, and the scroll and tag keys work with the embedded terminal. (#390, #391, #393)
  • No line break shows right after Enter, APC, PM and SOS strings are skipped, the right prompt is not read as typed text, and mc quits when the shell behind the panels exits. (#387, #394, #431, #456)

Panel plugins

  • mongo: the last bucket keeps the last document of its range. (#448, #450)
  • arcmc: Archives with hundreds of thousands of files open many times faster. (#451)
  • F7 makes a directory inside an ftp or sftp connection, and shell-link makes the missing parent directories. (#452, #453)
  • Fixed a crash on Enter on a file in the git panel with Quick view in the other panel. (#427)

Interface and core

  • A mouse wheel scroll is no longer treated as a button press. (#433)
  • An external editor or viewer keeps the alternate screen. (#428)
  • The Win32 input mode is preferred to the kitty protocol, and a paste that comes as its keys is read. (#402, #426)
  • Comparing with case ignored works for Cyrillic even when the file has an invalid UTF-8 byte. (#420)
  • A program run from the user menu without the panel shell gets the keyboard, and the panels come back in the right mode after it exits. (#410)
  • The title of the terminal window shows which command runs in the built-in terminal. (#396)

Don't miss a new mcommander release

NewReleases is sending notifications on new releases.