A VIM-inspired filemanager for the console

Overview

ranger 1.9.3

Build Status latest packaged version(s)

ranger is a console file manager with VI key bindings. It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with rifle, a file launcher that is good at automatically finding out which program to use for what file type.

screenshot

For mc aficionados there's also the multi-pane viewmode.

two panes multiple panes

This file describes ranger and how to get it to run. For instructions on the usage, please read the man page (man ranger in a terminal). See HACKING.md for development-specific information.

For configuration, check the files in ranger/config/ or copy the default config to ~/.config/ranger with ranger --copy-config (see instructions).

The examples/ directory contains several scripts and plugins that demonstrate how ranger can be extended or combined with other programs. These files can be found in the git repository or in /usr/share/doc/ranger.

A note to packagers: Versions meant for packaging are listed in the changelog on the website.

About

Design Goals

  • An easily maintainable file manager in a high level language
  • A quick way to switch directories and browse the file system
  • Keep it small but useful, do one thing and do it well
  • Console-based, with smooth integration into the unix shell

Features

  • UTF-8 Support (if your Python copy supports it)
  • Multi-column display
  • Preview of the selected file/directory
  • Common file operations (create/chmod/copy/delete/...)
  • Renaming multiple files at once
  • VIM-like console and hotkeys
  • Automatically determine file types and run them with correct programs
  • Change the directory of your shell after exiting ranger
  • Tabs, bookmarks, mouse support...

Dependencies

  • Python (>=2.6 or >=3.1) with the curses module and (optionally) wide-unicode support
  • A pager (less by default)

Optional dependencies

For general usage:

  • file for determining file types
  • chardet (Python package) for improved encoding detection of text files
  • sudo to use the "run as root" feature
  • python-bidi (Python package) to display right-to-left file names correctly (Hebrew, Arabic)

For enhanced file previews (with scope.sh):

  • img2txt (from caca-utils) for ASCII-art image previews
  • w3mimgdisplay, ueberzug, mpv, iTerm2, kitty, terminology or urxvt for image previews
  • convert (from imagemagick) to auto-rotate images and for SVG previews
  • ffmpeg, or ffmpegthumbnailer for video thumbnails
  • highlight, bat or pygmentize for syntax highlighting of code
  • atool, bsdtar, unrar and/or 7z to preview archives
  • bsdtar, tar, unrar, unzip and/or zipinfo (and sed) to preview archives as their first image
  • lynx, w3m or elinks to preview html pages
  • pdftotext or mutool (and fmt) for textual pdf previews, pdftoppm to preview as image
  • djvutxt for textual DjVu previews, ddjvu to preview as image
  • calibre or epub-thumbnailer for image previews of ebooks
  • transmission-show for viewing BitTorrent information
  • mediainfo or exiftool for viewing information about media files
  • odt2txt for OpenDocument text files (odt, ods, odp and sxw)
  • python or jq for JSON files
  • fontimage for font previews
  • openscad for 3D model previews (stl, off, dxf, scad, csg)

Installing

Use the package manager of your operating system to install ranger. You can also install ranger through PyPI: pip install ranger-fm.

Check current version: Packaging status Packaging status

Installing from a clone

Note that you don't have to install ranger; you can simply run ranger.py.

To install ranger manually:

sudo make install

This translates roughly to:

sudo python setup.py install --optimize=1 --record=install_log.txt

This also saves a list of all installed files to install_log.txt, which you can use to uninstall ranger.

Getting Started

After starting ranger, you can use the Arrow Keys or h j k l to navigate, Enter to open a file or q to quit. The third column shows a preview of the current file. The second is the main column and the first shows the parent directory.

Ranger can automatically copy default configuration files to ~/.config/ranger if you run it with the switch --copy-config=( rc | scope | ... | all ). See ranger --help for a description of that switch. Also check ranger/config/ for the default configuration.

Going Further

  • To get the most out of ranger, read the Official User Guide.
  • For frequently asked questions, see the FAQ.
  • For more information on customization, see the wiki.

Community

For help, support, or if you just want to hang out with us, you can find us here:

Comments
  • support ueberzug image displayer

    support ueberzug image displayer

    Überzug is a command line util which allows to draw images on terminals by using child windows. It has some advantages over w3mimgdisplay, e.g.:

    • it has no memory leak (/ unlimited cache) (related: https://github.com/ranger/ranger/issues/451)
    • no race conditions as a new window is used to display images
    • tmux support
    • faster as the current w3mimgdisplay implementation as the communication goes only in one direction

    More: https://github.com/seebye/ueberzug#%C3%9Cberzug

    ISSUE TYPE

    • Improvement/feature implementation

    RUNTIME ENVIRONMENT

    • Operating system and version: Debian Buster
    • Terminal emulator and version: xterm / alacritty
    • Python version: 2.7.15 (default, Jul 28 2018, 11:29:29) [GCC 8.1.0]
    • Ranger version/commit: ranger-master v1.9.1-173-gd37e4b2c
    • Locale: None.None

    CHECKLIST

    • [X] The CONTRIBUTING document has been read [REQUIRED]
    • [X] All changes follow the code style [REQUIRED]
    • [X] All new and existing tests pass [REQUIRED]
    • [ ] Changes require config files to be updated
      • [ ] Config files have been updated
    • [X] Changes require documentation to be updated
      • [X] Documentation has been updated
    • [ ] Changes require tests to be updated
      • [ ] Tests have been updated

    DESCRIPTION

    MOTIVATION AND CONTEXT

    w3mimgdisplay does not work with alacritty, tmux is also not supported

    TESTING

    IMAGES / VIDEOS

    needs-testing image-preview needs-improvement 
    opened by seebye 102
  • Kitty image preview

    Kitty image preview

    ISSUE TYPE

    • Improvement/feature implementation

    RUNTIME ENVIRONMENT

    • ranger version: ranger-master 1.9.0
    • Python version: 3.6.4 (default, Jan 5 2018, 02:35:40) [GCC 7.2.1 20171224]
    • Locale: en_US.UTF-8
    • Operating system and version: Arch Linux (up to date)
    • Terminal emulator and version: kitty 0.7.1 and XTerm(331)
    • Python version: 3.64 - 2.7.14
    • Ranger version/commit: #0b4f6b2a

    CHECKLIST

    • [x] The CONTRIBUTING document has been read [REQUIRED]
    • [x] All changes follow the code style [REQUIRED]
    • [x] All new and existing tests pass [REQUIRED]
    • [x] Changes require config files to be updated
      • [x] Config files have been updated
    • [x] Changes require documentation to be updated
      • [x] Documentation has been updated
    • [ ] Changes require tests to be updated
      • [ ] Tests have been updated

    DESCRIPTION

    • Added support for previews in kitty using its innate image protocol (similar to terminology or iTerm2). Support come in two flavors, one leveraging the local storage (faster) and one streaming the image alongside the draw commands (slower but network transparent). Manapages and rc.conf have been updated to advertise this new option.
    • (Minor) Refactored some code in the img_display.py module that was used in three subclasses as an helper function.
    • Fixed support and docs for terminology: during tests for the above change I notices that support for terminology was broken, independently from the changes (due to a missing \n). This has been fixed; also the lack of documentation for the terminology support was fixed too, adding it to both the manpages and rc.conf

    Notes and issues

    Since kitty only likes png or raw RGB data PIL is required as a dependency. I also plan on implementing an extra backend using the external ImageMagick toolkit, like kitty does for his own icat utility. I left it for a later time since this method has been shown to fail occasionally, and is potentially slower since it has to invoke external processes. In any case, PIL is only imported at the class level and not at the module level, leaving other options alone. It is also possible to change KittyImagePreview to automagically select between streaming and local file, but due to a bug and my incompetence with stdin this feature is delayed, and the choice is made in rc.conf

    MOTIVATION AND CONTEXT

    The changes have been motivated by the fact that kitty has native support for images, meaning less edge cases, and in general w3m doesn't work on terminals that refresh independently of input, like kitty. This brings full image preview to kitty, basically.

    #983 Relevant discussion

    TESTING

    The new branch has been used both on python2 and 3 (packages installed with pacman are python-pillow and python2-pillow).

    The standard test suite has been run.

    The core of the codebase is mostly untouched, except for intialization of ImageDisplay classes in fm.py naturally. The _get_image_displayer function has been updated with the relevant branches and excluded from pylint too-many-return-statements since ""fixing"" the warning would amount to add a local variable and make the function one line longer and potentially slower.

    The other touched part is obviously img_display.py with most changes being orthogonal to the original code, except for the excision of a small common helper function to temporarely move the cursor (now wrapped nicely as a context manager). Terminology, which had the most complex use case has seen no change to its (buggy and now fixed) behavior. I couldn't test iTerm2 graphically but the text output looks fine.

    IMAGES / VIDEOS

    kittyranger kitty showing images for more than half a millisecond (you will have to believe me on the persistence of the output)

    enhancement needs-testing image-preview 
    opened by mark-dawn 97
  • Add bat support for code highlighting

    Add bat support for code highlighting

    ISSUE TYPE

    • Improvement/feature implementation

    CHECKLIST

    • [x] The CONTRIBUTING document has been read [REQUIRED]
    • [x] All changes follow the code style [REQUIRED]
    • [x] All new and existing tests pass [REQUIRED]
    • [x] Changes require config files to be updated
      • [x] Config files have been updated
    • [x] Changes require documentation to be updated
      • [ ] Documentation has been updated
    • [ ] Changes require tests to be updated
      • [ ] Tests have been updated
    opened by leiserfg 50
  • ranger won't refresh preview column when previewing images and files

    ranger won't refresh preview column when previewing images and files

    Similar to #811, I get some strange effects when previewing images. Bug stays even after deleting old ranger version (installed with apt) and building new version from current master. Deleted ~/.config/ranger directory, ran ranger --copy-config all and changed preview_images to true.

    ISSUE TYPE

    • Bug report

    RUNTIME ENVIRONMENT

    • Operating system and version: Ubuntu-Gnome 17.04
    • Terminal emulator and version: konsole 16.12.3
    • Python version: Python 3.5.3
    • Ranger version/commit: ranger-master 1.9.0b5
    • Locale: en_US.UTF-8

    EXPECTED BEHAVIOR

    • image preview redraws over previous images
    • image preview "clears" after closing ranger

    CURRENT BEHAVIOR

    • some images are cropped
    • small images are drawn over previous images
    • image parts stay after closing ranger if terminal contains long texts

    STEPS TO REPRODUCE

    (see video)

    TRACEBACK

    Traceback (most recent call last):
      File "/usr/local/bin/ranger", line 41, in <module>
        sys.exit(ranger.main())  # pylint: disable=no-member
      File "/usr/local/lib/python3.5/dist-packages/ranger/core/main.py", line 222, in main
        fm.ui.destroy()
      File "/usr/local/lib/python3.5/dist-packages/ranger/gui/ui.py", line 171, in destroy
        DisplayableContainer.destroy(self)
      File "/usr/local/lib/python3.5/dist-packages/ranger/gui/displayable.py", line 291, in destroy
        displayable.destroy()
      File "/usr/local/lib/python3.5/dist-packages/ranger/gui/displayable.py", line 291, in destroy
        displayable.destroy()
      File "/usr/local/lib/python3.5/dist-packages/ranger/gui/widgets/pager.py", line 71, in destroy
        self.clear_image(force=True)
      File "/usr/local/lib/python3.5/dist-packages/ranger/gui/widgets/pager.py", line 60, in clear_image
        self.fm.image_displayer.clear(self.x, self.y, self.wid, self.hei)
      File "/usr/local/lib/python3.5/dist-packages/ranger/ext/img_display.py", line 146, in clear
        self.process.stdin.flush()
    BrokenPipeError: [Errno 32] Broken pipe
    
    

    IMAGES / VIDEOS

    ranger

    enhancement not-our-bug image-preview 
    opened by x4121 50
  • default terminal colorscheme is no longer inherited

    default terminal colorscheme is no longer inherited

    Runtime Environment

    • Operating system and version: Arch Linux
    • Terminal emulator and version: Kitty 0.12.3
    • Python version: 3.7.0
    • Ranger version/commit: 1.9.2.8.g9454e9ff
    • Locale: en_US.UTF-8

    Current Behavior

    This screenshot is from the latest (9454e9ff) git version of ranger.

    ranger_git

    Expected Behavior

    This screenshot is from ranger 1.9.1 in the Arch repositories right now.

    ranger-1 9 1

    Steps to reproduce

    1. Use a custom colorscheme in your terminal
    2. Start ranger in the terminal ($ kitty ranger)
    3. Notice the difference in behavior between master and 1.9.1
    bug 
    opened by ghost 37
  • Task. Translate kb from en in ogther(ua ru)

    Task. Translate kb from en in ogther(ua ru)

    TASK to keyboard translation key bindings Inputs key bindings commands only Latin with any language-type of keyboards

    ISSUE TYPE

    • Improvement/feature implementation

    RUNTIME ENVIRONMENT

    no matter

    no matter

    • Operating system and version: no matter
    • Terminal emulator and version: no matter
    • Python version:
    • Ranger version/commit:
    • Locale: ALL

    CHECKLIST

    • [X] The CONTRIBUTING document has been read [REQUIRED]
    • [X] All changes follow the code style [REQUIRED]
    • [X] All new and existing tests pass [REQUIRED]
    • [X] Changes require config files to be updated
      • [ ] Config files have been updated
    • [X] Changes require documentation to be updated
      • [ ] Documentation has been updated
    • [X] Changes require tests to be updated
      • [ ] Tests have been updated

    DESCRIPTION

    !This text mayby changes or|and updated. Do watch for it desctiption fo to be competent in this task 2020-04-29::4

    DEVELOPMENT TASK REORGANISATION

    1. planning option setting-value 'en-keys' and 'other_keys' as string: For example see code
    2. planed create pyton module with name keyboards.py • It containe a code to handling of mapped pressed key onto Latin ascii. • (not actual) If need to correct file name in shell operation, it prepares base to do it ‣ This module will be imported in ui.py ‣ This module wiil be check existing 'en-keys' and 'other_keys' in rc.conf ‣ This module maybe adding source code "os.system("stty -ixon")" ... Now it is unknown

    Base ending result: Translate input key bindings for hot keys commands (only for hot-key commands and only) without swith keyboard for any language KB

    EXAMPLE: user pressed hot keys ss(find) to find directory name "Фильмы" (ru) without it

    user action1; user controll curren KB. If curren KB not EN, user selected KB=EN user action2; pressed-> ss user action3; user selected KB=RU user action4; input-> Фильмы user action5(1); if need command next, user selected KB=EN

    Next: User can do it on KB=EN | KB=RU | KB=AU selected himself languages KB of marke uppered

    EXAMPLE: user pressed hot keys ss(find) to find directory name "Фильмы" (ru) with it

    user action1; pressed-> ss user action2; user controll curren KB. If curren KB not RU -> user selected KB=RU user action3; input-> Фильмы

    User of Ukraine often use three languge keyboards: EN RU UA It will be useful too else languages. Example for Germany user where use umlauts. And it like... It making any file.conf universl. It will be work in else users of different countries, for it enough remap keys bindings fillint two strings in your rc.conf.

    en_keys - keys on English (Latin) other_keys - keys of user mapping on en (now is 'ru' in it)

    other_keys for default contain "" and|or is comment. User need userself input these string en_keys for default contain alphabetic latin [a-zA-Z] and|or is comment. For enable supprot userself keyboards, need uncomment it and fill it

    mapping next symbols: abcdefghijklmnopqrstuvwxyz,./[];''ABCDEFGHIJKLMNOPQRSTUVWXYZ<>?{}:"~@#$^&`

    other_keys mayby contain two and more KB for one letter

    Example key 'r' for RU and UA (ruusina and ukrain 'к' and more else for ukrain and russian are identical) en_keys = "rR" other = "кК"

    Example key 's' for RU and UA en_keys = "ssSS" other = "ыіЫІ"

    Example key 's' for RU only en_keys = "sS" other = "ыЫ"

    Example key 's' for UA only en_keys = "sS" other = "іІ"

    String-values 'en_keys' and 'other-keys' will be existing in single existens instance. User maybe to use it, for adding suport userself keys with userself languages. See code it (Russian and Ukraine mapping to English)

    Example for Cyrillic: en ="abcdefghijklmnopqrsstuvwxyz,./[]];''``"
    'ABCDEFGHIJKLMNOPQRSSTUVWXYZ<>?{}}:""~~'
    '@#$^&' other ="фисвуапршолдьтщзйкыіегмцчнябю.хъїжэєё'"
    'ФИСВУАПРШОЛДЬТЩЗЙКЫІЕГМЦЧНЯБЮ,ХЪЇЖЭЄЁʼ'
    ru_mm ='"№;%:?'

    Not translated symbols

    There are special keyboard layout keys/symbols for certain languages that are not included in the “other_keys”, which like “+” do not participate in the translation (ru,ua exactly). They pass as is. For example: '=' or '+' (Shift-=) for russian, ukrain and english is identical.

    Duplication|Conflict of some up-digital keyboard shortcuts in Cyrillic languages (for converting only)

    Usually users of languages from the Cyrillic group do not use the S-6 key and similar at all. For the reason that they are duplicated on an alphabetic keyboard. There is two way solve it small problem. See down next. Theory: For example RU: S-6 (EN) duplicate S -; (RU). Whay that is problem? This is that because pressed it hotkey (S-6) for these languages give two different symbols, where one from it is be in bouth languages — it is ':' for this hotkey.

    |----+-----+----+----+-------------------------------------------|
    | KB | KEY | CH | IN | DESCRIPTION                               |
    |----+-----+----+----+-------------------------------------------|
    | EN | S-6 | ^  | :  | has intersection S-; at alphabetic block  |
    | RU | S-6 | :  |    | 'Ж' at on pressed S-; at alphabetic block |
    |----+-----+----+----+-------------------------------------------|
    | EN | S-4 | $  | ;  | has intersection  ;  at alphabetic block  |
    | RU | S-4 | ;  |    |                                           |
    |----+-----+----+----+-------------------------------------------|
    | EN | S-2 | @  | "  | has intersection S-' at alphabetic block  |
    | RU | S-2 | "  |    | 'Э' at on pressed S-' at alphabetic block |
    |----+-----+----+----+-------------------------------------------|
    

    The user expects the same command to press S-6 on EN and on RU (UA). But he gets two different command on press it keybinding. Or comands works only in EN. The user is in shock. No, advanced users know this fact, and do not use these keyboard shortcuts at all. But ...

    Possible 1 - do not use these hotkey at all 2 - merge these hotkeys on bouth keyboards For to marge hotkeys used strings in en_key and other_keys other_keys_mm = '"№;:?'

    If used mergin method (MM) then applied hotkey on key bindings of EN only, keybindings of other KB will be ignored. If used different commands method (DCM) then applied keybindings all keyboards.

    MM: Indeed even it maybe bring in of user in a shock. Now two hotkeys are works at equals - the one command.

    DCM: One hotkey -> two commands MM: Two hotkeys -> one command

    Public custom generation string 'en' and 'other' ranger user

    It can implement on web-site, where will be select userneeded language kayboards. It allow easy update data base and public access for anybody. • multiple choice kayboard layouts • public access for anybody • ability selecting of translate method DCM/MM (for two of many selected languages if ability)

    General information

    For hieroglyphic-languages it need to be remade appreciably. It demand hard deep thinking in a process of Unicode

    MOTIVATION AND CONTEXT

    useful

    useful

    TESTING

    Simple TEST

    Marginal changes and margin in the fature

    IMAGES / VIDEOS

    opened by mrgoodvin 35
  •  image preview feature not work in OSX

    image preview feature not work in OSX

    ISSUE TYPE

    • Bug report

    RUNTIME ENVIRONMENT

    • Operating system and version: macOS Sierra 10.12.4
    • Terminal emulator and version: ITerm2 3.0.14
    • Python version: Python 2.7.10
    • Ranger version/commit: ranger-stable 1.8.1

    Python 2.7.10 (default, Feb 6 2017, 23:53:20) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]

    • Locale:

    EXPECTED BEHAVIOR

    Preview images

    CURRENT BEHAVIOR

    No pictures are shown

    CONTEXT

    POSSIBLE SOLUTIONS

    STEPS TO REPRODUCE

    1. I added my rc.conf
    set preview_images true
    set preview_images_method iterm2
    
    
    1. Open ranger

    TRACEBACK

    
    

    IMAGES / VIDEOS

    bug image-preview 
    opened by tanrax 35
  • Test for and follow tab changes in multipane mode

    Test for and follow tab changes in multipane mode

    ISSUE TYPE

    • Bug fix for #1880

    RUNTIME ENVIRONMENT

    • Operating system and version: Manjaro Linux
    • Terminal emulator and version: xfce4-terminal 0.8.9.2
    • Python version: 3.8.3 (default, May 17 2020, 18:15:42) [GCC 10.1.0]
    • Ranger version/commit: ranger-master
    • Locale: en_AU.UTF-8

    CHECKLIST

    • [X] The CONTRIBUTING document has been read [REQUIRED]
    • [X] All changes follow the code style [REQUIRED]
    • [X] All new and existing tests pass [REQUIRED]

    DESCRIPTION

    Bound tab.change and setopt.viewmode signals to StatusBar widget request_redraw Added a new test to def draw() that enforces current column to match browser main_column

    MOTIVATION AND CONTEXT

    Solves the bug of the Status bar getting locked to an old directory when switching tabs in multipane mode and on returning to miller mode.

    TESTING

    Ran all existing tests successfully. This only affects the statusbar when multipane mode is used.

    opened by politas 32
  • "preview" is not working for any file type

    Runtime Environment

    • Operating system and version: 4.19.1-1-MANJARO (I3WM)
    • Terminal emulator and version: Konsole 18.08.3 and urxvt v9.22
    • Python version: 3.7.1
    • Ranger version/commit: (master) 1.9.2
    • Locale: pt_BR.UTF-8

    Current Behavior

    In preview window, there is a message when a try to view images and text files

    ----- File Type Classification -----
    

    Expected Behavior

    Open the correct preview format

    Context

    First of all i tried to run in konsole with w3m, wich failed, so i moved up to urxvt (rxvt-unicode-pixbuf) to see if things change. But the message keeps as the same. In rc.conf i set preview_images to true. ranger The result is equal trying to open images

    Possible Solutions

    Have no idea

    Steps to reproduce

    1. Open ranger
    2. Try to preview something

    Traceback

    Nothing throws errors

    opened by GabrielTrettel 31
  • Python print unexpected output under ranger shell

    Python print unexpected output under ranger shell

    My script fill the file called "numbers 1.txt" by sequence from 1 to 10.

    Then the script calculate and print out the sum of all numbers from the file.

    When I've tried to execute this script:

    `

     def FillNumbersFile(numbers_file_name, numbers):
       with open(numbers_file_name, 'w') as numbers_file:
           for index in range(1, numbers + 1):
               numbers_file.write('%d\n' % index)
    
     def PrintFileNumbersSum(numbers_file_name):
       # define an empty list
       numbers = []
    
       # open file and read the content in a list
       with open(numbers_file_name, 'r') as numbers_file:
           for line in numbers_file:
               # remove linebreak which is the last character of the string
               current_number = int(line[:-1])
    
               # add item to the list
               numbers.append(current_number)
    
        print(sum(numbers))
    
    
      numbers_file_name = "numbers1.txt"
      number_count = 10
    
      FillNumbersFile(numbers_file_name, number_count)
      PrintFileNumbersSum(numbers_file_name)
    

    ` I've got output:

    On Ubuntu 20.04.1 LTS under ranger shell with command: :shell -w python3 myScript 55nger

    On Ubuntu 20.04.1 LTS under Ubuntu shell: 55

    On Windows 10: 55

    Runtime Environment

    • Operating system and version: Ubuntu 20.04.1 LTS
    • Terminal emulator and version:
    • Python version: 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]
    • Ranger version/commit: ranger 1.9.3
    • Locale: uk_UA.UTF-8

    Current Behavior

    Print 55nger

    Expected Behavior

    Print 55

    Context

    I've got unexpected output of the above script.

    Possible Solutions

    ???

    Steps to reproduce

    Run above script under the ranger shell by command :shell -w python3 myScript

    bug 
    opened by tsedii 26
  • Refactored examples/bash_automatic_cd.sh

    Refactored examples/bash_automatic_cd.sh

    Refactored examples/bash_automatic_cd.sh

    ISSUE TYPE

    • Improvement/feature implementation

    RUNTIME ENVIRONMENT

    • Operating system and version: Arch Linux
    • Terminal emulator and version: kitty 0.14.6
    • Python version: 3.7.4 (default, Oct 4 2019, 06:57:26) [GCC 9.2.0]
    • Ranger version/commit: ranger-master v1.9.2-379-gc915dff4
    • Locale: en_US.UTF-8

    CHECKLIST

    • [X] The CONTRIBUTING document has been read [REQUIRED]
    • [X] All changes follow the code style [REQUIRED]
    • [X] All new and existing tests pass [REQUIRED]
    • [ ] Changes require config files to be updated
      • [ ] Config files have been updated
    • [ ] Changes require documentation to be updated
      • [ ] Documentation has been updated
    • [ ] Changes require tests to be updated
      • [ ] Tests have been updated

    DESCRIPTION

    I basically replaced deprecated/useless syntax with newer, removed unnecessary spawned processes and removed arguments to mktemp when creating a temporary file. The script remains compatible with Zsh. Note that this PR breaks compatibility with POSIX sh. Although by the name of the file I concluded that this is not needed anyway.

    I also applied the same logic to the shell script embedded in ranger.py, however that one I made POSIX-compliant, though this requires spawning a cat process to read the file. I can workaround that using the read builtin or drop POSIX sh support at all, let me know if I should do that.

    MOTIVATION AND CONTEXT

    TESTING

    IMAGES / VIDEOS

    opened by dmitmel 25
  • syntax highlighting is broken in wsl2

    syntax highlighting is broken in wsl2

    Runtime Environment

    • Operating system and version: WSL2 Ubuntu20.04
    • Terminal emulator and version: Windows Termmial
    • Python version: 3.8.10
    • Ranger version/commit: 1.9.3-1build1
    • Locale: en_US.UTF-8

    Current Behavior

    Syntax highlighting is broken though I've already installed highlight image

    Expected Behavior

    Being able to preveiw highlighted code

    opened by trace1729 0
  • Bat theme looks darker in ranger preview than in standard output

    Bat theme looks darker in ranger preview than in standard output

    I've made a custom theme for bat inspired by the Everforest theme by sainnhe. My issue is that in ranger the colors look darker than in the normal output in the terminal. I've attached a picture to show you what I mean.

    Above you can see a normal bat output and it shows the right colors. But below in ranger when I open the exact same file in the preview the colors appear to be darker.

    Is there any idea on how to get the true colors into the ranger preview? screenshot-20230103-182139Z-all

    opened by 3rfaan 0
  • Plugin API run code on termination

    Plugin API run code on termination

    At the moment it seems like there is no counterpart for ranger.api.hook_init available. Is there any way for a plugin to run code on termination of ranger?

    If not i think a ranger.api.hook_termination would be a great addition to the api.

    opened by Nimmidev 0
  • Syntax highlighting and line numbers support for text files in preview pane

    Syntax highlighting and line numbers support for text files in preview pane

    ISSUE TYPE

    • Improvement/feature implementation

    RUNTIME ENVIRONMENT

    • Operating system and version: Ubuntu 20.04
    • Terminal emulator and version: Tilix 1.9.1
    • Python version: 3.8.12
    • Ranger version/commit: f8b304f7
    • Locale: N/A

    CHECKLIST

    • [x] The CONTRIBUTING document has been read [REQUIRED]
    • [x] All changes follow the code style [REQUIRED]
    • [x] All new and existing tests pass [REQUIRED]
    • [x] Changes require config files to be updated
      • [x] Config files have been updated
    • [x] Changes require documentation to be updated
      • [x] Documentation has been updated
    • [ ] Changes require tests to be updated
      • [ ] Tests have been updated

    DESCRIPTION

    Syntax highlighting and line numbers support for text files in preview pane

    MOTIVATION AND CONTEXT

    Going through a project directory is a lot easier with syntax highlighting and line numbers support. This will reduce opening of individual files in editor/IDE. #2475

    TESTING

    I haven't personally tested this on legacy Python (versions 2.x) yet. All the other tests have been run including shellcheck. The changes doesn't affect other areas of the codebase.

    IMAGES / VIDEOS

    image Full screen previews imitate read-only feature of editors

    image

    opened by pnchinmay 0
  • after reboot pop-up with editor choices doesn't work anymore

    after reboot pop-up with editor choices doesn't work anymore

    Runtime Environment

    • Operating system and version: Linux Mint 20.3 (Una)
    • Terminal emulator and version: Bash 5.0.17(1)
    • Python version: 3.8.10
    • Ranger version/commit: 3.8.10
    • Locale: en_CA.UTF-8

    Current Behavior

    after reboot, this option won't work anymore

    Expected Behavior

    after installing ranger in linux mint 20.3, and navigating to a *.txt- file. then on-click "enter" there was a pop up to choose among available editors.

    Context

    Possible Solutions

    Steps to reproduce

    Traceback

    
    
    opened by matrixcollegemtl1980 4
A minimalist Vim plugin manager.

A minimalist Vim plugin manager. Pros. Easy to set up: Single file. No boilerplate code required. Easy to use: Concise, intuitive syntax Super-fast pa

Junegunn Choi 30.2k Jan 8, 2023
Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim

Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim This is a matcher plugin for denite.nvim and CtrlP.

Raghu 113 Sep 29, 2022
CLI Web-CAT interface for people who use VIM.

CLI Web-CAT CLI Web-CAT interface. Installation git clone https://github.com/phuang1024/cliwebcat cd cliwebcat python setup.py bdist_wheel sdist cd di

Patrick 4 Apr 11, 2022
Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Carter 19 Aug 24, 2022
Personal and work vim 8 configuration with submodules

vimfiles Windows Vim 8 configuration files based on the recommendations of Ruslan Osipov, Keep Your vimrc file clean and The musings of bluz71. :help

null 1 Aug 27, 2022
Vsm - A manager for the under-utilized mksession command in vim

Vim Session Manager A manager for the under-utilized `mksession` command in vim

Matt Williams 3 Oct 12, 2022
Magnificent app which corrects your previous console command.

The Fuck The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands. Is The Fuck too slow? Try t

Vladimir Iakovlev 75k Jan 2, 2023
Bad Apple printed out on the console with Python!

Bad Apple printed out on the console with Python!

CalvinLoke 186 Dec 1, 2022
Enlighten Progress Bar is a console progress bar library for Python.

Overview Enlighten Progress Bar is a console progress bar library for Python. The main advantage of Enlighten is it allows writing to stdout and stder

Rockhopper Technologies 265 Dec 28, 2022
Python library & console tool for controlling Xiaomi smart appliances

python-miio This library (and its accompanying cli tool) can be used to interface with devices using Xiaomi's miIO and MIoT protocols. Getting started

Teemu R. 2.4k Jan 2, 2023
Simple and convenient console ToDo list app

How do you handle remembering all that loads of plans you are going to realize everyday? Producing tons of paper notes, plastered all over the house?

null 3 Aug 3, 2022
Todo list console based application. Todo's save to a seperate file.

Todo list console based application. Todo's save to a seperate file.

null 1 Dec 24, 2021
Investing library and command-line interface inspired by the Bogleheads philosophy

Lakshmi (Screenshot of the lak command in action) Background This project is inspired by Bogleheads forum. Bogleheads focus on a simple but powerful p

Sarvjeet Singh 108 Dec 26, 2022
An ZFS administration tool inspired on Midnight commander

ZC - ZFS Commander An ZFS administration tool inspired on Midnight commander Work in Progress Description ZFS Commander is a simple front-end for the

null 34 Dec 7, 2022
Textual: a TUI (Text User Interface) framework for Python inspired by modern web development

Textual Textual is a TUI (Text User Interface) framework for Python inspired by

null 17.1k Jan 4, 2023
Dahua Console, access internal debug console and/or other researched functions in Dahua devices.

Dahua Console, access internal debug console and/or other researched functions in Dahua devices.

bashis 156 Dec 28, 2022
Using the jedi autocompletion library for VIM.

jedi-vim - awesome Python autocompletion with VIM jedi-vim is a VIM binding to the autocompletion library Jedi. Here are some pictures: Completion for

Dave Halter 5.1k Dec 31, 2022
Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box.

Python-mode, a Python IDE for Vim This project needs contributors. Documentation: :help pymode https://github.com/python-mode/python-mode/wiki Importa

The Python-Mode 5.4k Jan 1, 2023
A code-completion engine for Vim

YouCompleteMe: a code-completion engine for Vim NOTE: Minimum Requirements Have Changed Our policy is to support the Vim version that's in the latest

null 24.5k Dec 30, 2022
A keyboard-driven, vim-like browser based on PyQt5.

qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and PyQt5 and free software, licensed under the GPL.

qutebrowser 8.4k Jan 1, 2023