Fix the issues reported by the coverage test (#1206)
[ranger.git] / CHANGELOG.md
blob346b18dd8472d360c89fa32d6c15b0307d1d352c
1 This log documents changes between stable versions.
3 # 2018-02-22: version 1.9.1
4 * Fixed the rifle config backwards compatibility (regression in 1.9.0)
5 * Fixed the POSIX compatibility of `Makefile`
6 * Fixed `--choosefile`, `--choosefiles` and `--choosedir` so they work
7   with the process substitution (`>(...)` in Bash)
8 * Changed the default `gt` binding to `gp` due to a conflict
9 * Changed the help message for `--choosefile`, `--choosefiles` and
10   `--choosedir` to avoid confusion
11 * Changed the behavior of `:reset` to reload the tags too
12 * Added `geeqie` to the default `rifle.conf`
14 # 2018-01-25: version 1.9.0
15 * Fixed memory leak in w3m image preview
16 * Fixed `Q` binding, map it to `quitall` instead of `quit!`
17 * Fixed `gR` binding
18 * Fixed custom linemode not being applied to files
19 * Fixed w3m image display invocation on OpenBSD
20 * Fixed broken pager after changing view mode with `~`
21 * Added reset of rifle.conf when pressing `<C-R>`
22 * Added image-based PDF previews to `scope.sh` (disabled by default)
23 * Added terminology-based image previews
24 * Added check for `$VISUAL` environment variable
25 * Added setting `iterm2_font_height` and `iterm2_font_width`
26 * Renamed setting `cd_tab_smart` to `cd_tab_fuzzy`
27 * Changed command for mercurial integration from `hg` to `chg`
29 # 2017-11-19: version 1.9.0b6
30 * Fixed crash when parsing corrupted history file
31 * Fixed tab completion with `cd -r ...`
32 * Fixed crash when previewing files encoded in little-endian UTF-16
33 * Fixed flicker in previewing symlinked images
34 * Fixed detection of location of scope.sh
35 * Fixed crash when running ranger from the directory containing its package
36 * Fixed cursor position after moving half a page down and back up
37 * Fixed handling of lines that are too long for the console
38 * Added `<F2>` binding to `:rename_append`
39 * Avoid dereferencing symlinked directory when starting ranger in one
40 * Added support for `file://` URIs as path arguments
41 * Added setting `save_tabs_on_exit`
42 * Added setting `cd_tab_case`, sets case sensitivity of `:cd` tab completion
43 * Added setting `cd_tab_smart`, allows fuzzy tab completion with `:cd`,
44   for example, `:cd /u/lo/b<TAB>` expands to `:cd /usr/local/bin`
45 * Added setting `global_inode_type_filter` to show only directories when
46   running ranger with the new option `--show-only-dirs`
47 * Added setting `save_backtick_bookmark`, e.g. for easier syncing of bookmarks
48 * Added setting `one_indexed` to start counting line numbers from 1
49 * Added rifle.conf entries to list/extract archives without atool
50 * Added `:yank` command for simplified definitions of `yn`, `yd` & `yp`
51 * Added `:narrow` command, which filters selected files
52 * Added setting `freeze_files`, bound to `F` key, to avoid reloading files
53 * Changed `:shell -p ...` to display stderr in pager
55 # 2017-02-19: version 1.9.0b5
56 * Fixed width calculation of multibyte characters in preview
57 * Fixed crash in iTerm2 preview with python 3.5
59 # 2017-02-10: version 1.9.0b1
60 * Fixed crash when using `Mi` on files without reading permissions
61 * Fixed natural sorting (`11.jpg` < `100.jpg`)
62 * Fixed loss of precision in timestamps when copying
63 * Fixed smart case matching in `:travel`
64 * Fixed automatically disabling `preview_script` when running as root
65 * Fixed crash on sshfs disconnect
66 * Fixed crash on missing `~/.config/ranger/history`
67 * Fixed crash when path not accessible during start-up
68 * Fixed automatic tmux title
69 * Fixed urxvt image previewing when running tmux
70 * Fixed macro expansion in aliased commands
71 * Fixed `hidden_filter` option when combined with `:flat`
72 * Fixed various other crashes
73 * Fixed error message that occasionally pops up when changing settings
74 * Introduced extensive linting to ensure code quality
75 * Added continuous integration.  Patches now require `make test` to pass.
76 * Added handling of arguments in "$PAGER" environment variable
77 * Added quote parsing for `:setlocal path=...`
78 * Added `ys` to copy the selection to clipboard
79 * Added setting `hostname_in_titlebar`
80 * Added setting `wrap_scroll` to wrap cursor around when scrolling
81 * Added example plugin `plugin_fasd_add.py`
82 * Added command `jump_non` to jump to the first non-directory file
83 * Added additional arguments to the command `:rename_append`
84 * Added key binding 'zz' as an alternative to 'zf'
85 * Added option `-c` to the `rifle` file opener command
86 * Added support for `$XDG_DATA_HOME`
87 * Avoid exiting ranger while copying.  Use `:quit!` to quit while copying.
88 * Improved scope.sh (better performance & readability)
89 * Improved logs handling by migrating to the python standard logging library (PR #725)
90 * Changed `ranger --choosefiles` to return all selected files in all paths
91 * Changed interpretation of commands: treat tabs as argument separators
92 * Changed `<C-n>` to open new tab in current directory rather than `$HOME`
93 * Changed `:quit!` to only close 1 tab.  Use `:quitall` to close all tabs.
94 * Removed backward compatibility for `options.py`, predecessor of `rc.conf`
95 * Automatically update bookmarks+tags when renaming them via ranger
97 # 2017-01-08: version 1.8.1
98 * Fixed `:scout` break due to incompatible change in python 3.6
100 # 2016-12-24: version 1.8.0
101 * scope.sh is now needed for the now fully scriptable image previews
102 * Overhaul of version control system integration, now with threads
103 * Fixed ranger not finding the location of w3mimgdisplay in most cases
104 * Fixed many minor bugs
105 * Added midnight-commander like multipane view, toggleable with `~` key.
106   It displays the current directory of all the open tabs next to each other.
107 * Added autodetect for 256 color support in scope.sh source code preview
108 * Added macro `%confdir` that expands to `~/.config/ranger` by default
109 * Added possibility to toggle/cycle through options with `set <option_name>!`
110 * Added `Mm`/`Ms` key to enable the linemode showing modification time
111 * Added `yt`/`dt` keys to toggle whether file is in copy/cut buffer
112 * Added `line_numbers` setting showing absolute/relative line numbers
113 * Added `Alt-Left` and `Alt-Right` key bindings to move by words in console
114 * Added previews for libreoffice files with `odt2txt`
115 * Added `preview_images_method=urxvt` option for previewing images by changing
116   the urxvt background (requires urxvt compiled with pixbuf support)
117 * Added `clear_filters_on_dir_change` option
118 * Added Travis-CI integration
119 * Changed `zi` key to toggle `preview_images` option
120 * Improved PEP8 compliance
121 * Improved documentation
122 * Improved UI by separating file path in titlebar with a space from the
123   username/hostname for quick copy&pasting by shift+double-clicking on it.
125 # 2015-10-04: version 1.7.2
126 * Fixed file name arguments passed to `sxiv` and `feh` when using `:flat`
127 * Fixed removal of empty directories when using `:rename`
128 * Fixed free disk space display on Mac OS X
129 * Fixed `examples/vim_file_chooser` to work with gvim too
130 * Fixed some other rare crashes and bugs
131 * Fixed downward mouse wheel scrolling
132 * Fixed warning about regex splits being drawn in titlebar since python3.5
133 * Really fixed `S` key binding not working when SHELL=fish
134 * Improved `doc/cheatsheet.svg`
135 * Added some entries to rifle.conf
136 * Added key bindings `pO` and `pP` which work like `po` and `pp` but queue the
137   operation in a first-in-first-out order.
139 # 2015-05-04: version 1.7.1
140 * Added `doc/cheatsheet.svg`
141 * Added `examples/rc_emacs.conf`, a config file adding emacs-like key bindings
142 * Added `env` keyword in rifle.conf
143 * Fixed `:bulkrename` command in python3
144 * Fixed `S` key binding not working when SHELL=fish
146 # 2015-04-13: version 1.7.0
147 * The default editor is now `vim` instead of `nano`
148 * Added automatic updates of tags when a file is renamed from within ranger
149 * Added `preview_images_method` which can be set to `iterm2` to use native
150   iTerm2 image previews
151 * Added `:rename_append` command to rename files without the file extension
152 * Added `:linemode` command to change the way the files are displayed
153   Try this out by pressing M followed by one of the suggested keys.
154   New linemodes can be added with `ranger.api.register_linemode()`.
155 * Added `:filter_inode_type` command to only show directories, files or links
156 * Added `:meta` command for managing custom file metadata
157 * Added `:flat` command for displaying subdirectories
158 * Added `solarized` colorscheme
159 * Added generic ability to use scope.sh for image previews
160 * Added video previews in scope.sh
161 * Added option `sort_unicode` to sort according to unicode, not ASCII
162 * `:mkdir` can now create multiple directory levels (like `mkdir -p`)
163 * `:help` (key binding `?`) is now interactive
164 * `:find` (key binding `/`) is now case insensitive by default
165 * `ranger --copy-config=all` now copies a short sample commands.py rather than
166   the full one, so that you can update ranger without having broken commands.
167   The full commands.py is still copied to `~/.config/ranger/commands_full.py`.
168 * Fixed broken copying of symlinks
170 # 2013-05-24: Version 1.6.1
171 * Added support for version control systems, see:
172   http://lists.nongnu.org/archive/html/ranger-users/2013-03/msg00007.html
173 * Added :scout command as a unified backend to :find, :search, etc
174 * Added `open_all_images` setting to remove the need for external scripts
175   to handle opening of all images in a directory at once.
176 * Now previewing with `i` uses the whole available width.
178 # 2013-02-22: Version 1.6.0
179 * Overhauled all config files.  Please update them or use the --clean switch
180 * Added `examples/` directory to source code which contains sample programs or
181   plugins that can be used together with ranger
182 * Added progress bars to copying, moving and directory loading processes
183 * Added feature to draw images inside the console using w3mimgdisplay (you need
184   to add `set preview_images true` in rc.conf)
185 * Added a plugin system like in the program `anki`, i.e. place any python file
186   into ~/.config/ranger/plugins/ and it will be imported by ranger
187 * Added a separate file launcher named `rifle` that is configured through
188   rifle.conf and is installed as a standalone program.
189   Using `ranger [filename]` from the shell for opening files is deprecated now,
190   please use `rifle [filename]` instead.
191 * Added `uq` keybinding to undo closed tabs
192 * Added :setlocal command to change settings for specific directories only
193 * Added :travel command to move more quickly to your destination
194 * Added 256 color support for scope.sh
195 * Added a real yes/no prompt for :delete command
196 * Added settings: `confirm_on_delete`, `draw_progress_bar_in_status_bar`,
197   `preview_images`, `status_bar_on_top`, `update_tmux_title`
198 * Added commands: `:mark_tag`, `:unmark_tag`
199 * Added BSD-friendly setsid implementation
200 * Added as-you-type filtering for `:filter` command
201 * Replaced `options.py` file by :set commands in rc.conf
202 * Replaced `apps.py` file with rifle.conf
203 * Improved `r` key to interface with rifle
204 * Rewritten `scope.sh` in POSIX shell
205 * Changed copying/moving code to work without GNU coreutils
206 * Changed key to untag files from `T` to `ut`
207 * Changed the flag `d` (for detached) to `f` (for fork) in program launcher
208 * Changed appearance of keybinding-hints and bookmarks
209 * Changed tabs with 4 spaces in the source code (see PEP 8)
210 * Removed ranger.core.environment class
211 * Removed settings: `colorscheme_overlay`, `draw_bookmark_borders`,
212   `init_function`, `load_default_rc`
213 * Fixed zombie process apocalypse
214 * Fixed `draw_borders=true` in combination with `padding_right=false`
216 # 2012-08-10: Version 1.5.5
217 * Ensure that detached programs continue to run when ranger is killed
219 # 2012-05-03: Version 1.5.4
220 * Added exiftool to scope.sh by default
221 * Fixed a crash when entering a directory with a unicode name
222 * Speedup in `ranger.ext.get_executables`
224 # 2012-03-05: Version 1.5.3
225 * Added --selectfile option that selects a certain file on startup
226 * Added --list-tagged-files option
227 * Added --cmd option to run commands on startup
228 * Added --profile option for additional debug information on exit
229 * Added a visual mode (activate with `V`, deactivate with Esc)
230 * Added a reversed visual mode (activate with `uV`)
231 * Added `$RANGER_LEVEL` environment variable which ranger sets to `1` or higher
232   so programs can know that they were spawned from ranger
233 * Added run flag `r` for running with root privileges (needs sudo)
234 * Added run flag `t` for running in a new terminal (as specified in $TERMCMD)
235 * Added :relink command to change destinations of symlinks
236 * Added `dc` binding for getting the cumulative size of a directory
237 * Added `autoupdate_cumulative_size` option
238 * Added `pht` binding to Paste Hardlinked subTrees (like cp -l)
239 * Improved sorting speed of signals (noticeable when caching many directories)
240 * Improved drawing speed
241 * Fixed unexpected behavior when displaying nonprintable characters
242 * Fixed :bulkrename to work with files starting with a minus sign
243 * Fixed RangerChooser example in man page
244 * Fixed crash when opening images with sxiv/feh by running `ranger <image>`
246 # 2011-10-23: Version 1.5.2
247 * Fixed graphical bug that appears in certain cases when drawing
248   characters at the right edge.
250 # 2011-10-23: Version 1.5.1
251 * Added `fm.select_file(path)`
252 * Added --choosefiles option (like --choosefile, but chooses multiple files)
253 * Fixed --list-unused-keys
254 * Fixed Zombie processes
255 * Fixed handling of filenames with undecodable bytes (unicode surrogates)
256 * Fixed crashes due to incomplete loading of directories
257 * Fixed tab completion of the command `shell`
258 * Fixed `ot` and `oT` keys in rc.conf
259 * Fixed parsing of chained commands (like in the binding `om`)
261 # 2011-10-11: Version 1.5.0
262 * Full python3.2 compatibility
263 * Added new configuration file `rc.conf` which contains a list
264   of commands that are executed on startup - mainly used for keybindings
265 * Added --list-unused-keys
266 * Added new program handlers to apps.py
267 * Added pop-up window for keychains and bookmarks
268 * Added `load_default_rc` option
269 * Fixed all known unicode issues
270 * Fixed crash when $TERM is unknown to the system
271 * Fixed scrolling in colored preview
272 * Changed the default `column_ratios` to 1/3/4 and sorting method to `natural`
273 * Changed :rename so it doesn't overwrite existing files
274 * Internal actions are now accessible as commands
275 * Replaced unittests by doctests
276 * Replaced integrated help with an extended man page and dynamic lists
277   of keybindings, commands and settings.
278 * Removed `keys.py` configuration file in favor of `rc.conf`
279 * Removed `texas` colorscheme
280 * apps.py: Now able to define programs that only run with Xorg
281 * commands.py: Using parse(self.line) to parse the line is unnecessary now.
282   parse(self.line).rest(n) is now written as self.rest(n).
283   However, parse(self.line).chunk(n) has been renamed to self.arg(n).
284 * commands.py: parse(self.line) + X is now self.firstpart + X
285 * commands.py: New special attribute `resolve_macros` which decides whether
286   strings like %f should be expanded to the name of the current file, etc.
287 * commands.py: New special attribute `escape_macros_for_shell` to toggle
288   whether or not macros should be escaped, so you can use them in other
289   commands than :shell, for example :edit %f
290 * Countless small fixes and improvements
292 # 2011-10-02: Version 1.4.4
293 * Added keys for chmod (like +ow for `chmod o+w`, etc)
294 * Added `c` flag for running files
295 * Added various key bindings
296 * Added wavpack and webm types to mime.types
297 * Added option `display_tags_in_all_columns`
298 * Added command.cancel method which is called when pressing ESC in console
299 * Added sorting and cycling by ctime and atime
300 * Added custom tags (press "x)
301 * Added bittorrent preview
302 * Fixed blocking when using interactive scripts in scope.sh
303 * Fixed issues with ALT key
304 * Fixed pager crash when trying to read non-readable file
305 * Forbid piping things into ranger
306 * Improved hints
308 # 2011-04-05: Version 1.4.3
309 * Fixed mimetype checking when invoking ranger with a filename
310 * Fixed loss of bookmarks when disk is full
311 * Minor improvements
313 # 2011-03-05: Version 1.4.2
314 * Added --choosefile and --choosedir flag
315 * Added use of bookmarks in tab completion of the :cd command
316 * Fixed bug with detached programs and python 3.2
318 # 2011-01-04: Version 1.4.1
319 * Fixed crash when preview failed under some circumstances
320 * Fixed graphical bug when pressing i
322 # 2010-12-22: Version 1.4.0
323 * Added option to use any external scripts for previews (see scope.sh)
324 * Added key: zv to toggle the use of the external script
325 * Added indicator for the used filter (type `zf`)
326 * Added option `padding_right` to remove whitespace if theres no preview
327 * Added command `:search_inc` for incremental search
328 * Added commands `:save_copy_buffer` and `:load_copy_buffer` to share
329   the copied files between ranger instances
330 * Added mimeopen as a fallback if no useful application can be found
331 * Added natural sort, sorts 1foo before 10foo. (type `on`)
332 * Added keys: yp, yd and yb to copy path, dirname or basename to seleciton
333 * Let `open_with` use the selection, not just one file
334 * Run files with right mouse click
335 * Implemented copying via coreutils rather than internal python code
336 * Improved handling of unicode
337 * Some restructuration of the source code
339 # 2010-12-13: Version 1.2.3
340 * Enable binding to alt-keys
341 * Fixed memory leak in garbage collecting of old, unused directory objects
342 * Fixed python3 incompatibilities
343 * Fixed problems with identifying changes of files
344 * Fixed lazy lookup of some FSObject attributes
346 # 2010-10-10: Version 1.2.2
347 * Prevent currently used directories from being garbage collected
348 * Disable mouse buttons when console is open
349 * Fixed :cd command: Without arguments, cd's into $HOME
350 * Fixed bug which prevented pydoc to work on some config files
351 * Fixed some bugs in `snow` and `jungle` colorschemes
352 * Several other clean-ups and fixes
354 # 2010-09-16: Version 1.2.1
355 * Fixed yy/pp bug when yanking multiple directories
357 # 2010-09-13: Version 1.2.0
358 * !!! Changed the default configuration directory to ~/.config/ranger !!!
359 * Removed `Console Modes`, each old mode is now a simple command
360 * Disabled file previews by default if ranger is used by root
361 * Allow to jump to specific help sections by typing two numbers, e.g. 13?
362 * Added keys: da, dr, ya, yr for adding and removing files from copy buffer
363 * Added keys: gl and gL to resolve links, see 11?
364 * Added key: pL to create a relative symlink
365 * Added %<LETTER> and %<N><LETTER> macros for the console, see 33?
366 * Fixed ansi codes for colors in the pager
367 * Use the file ~/.mime.types for mime type detection
368 * Several clean-ups and fixes
370 # 2010-07-17: Version 1.1.2
371 * Fix crash when using scrollwheel to scroll down in some cases
372 * The command `ranger dir1 dir2 ...` opens multiple directories in tabs
373 * Removed pydoc html documentation by default, re-create it with `make doc`
374 * Minor fixes
376 # 2010-06-18: Version 1.1.1
377 * New install script, `setup.py`
378 * New flag for running programs: `w` (waits for enter press)
379 * Minor fixes
381 # 2010-06-09: Version 1.1.0
382 * Added a man page
383 * Tab support
384 * Improved directory loading performance
385 * Commands are definable in ~/.ranger/commands.py
386 * Case insensitive sorting (type zs)
387 * Better UTF support
388 * Possibility to turn off previews (zp and zP)
389 * Changing options with :set (e.g. `:set column_ratios=1,2,3,4`)
390 * Ask for confirmation when using :delete
391 * New invocation flag: --fail-unless-cd
392 * New hotkeys, commands, options.
393 * New syntax for ~/.ranger/keys.py
394 * Several user contributions
395 * And tons of general improvements