ranger-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ranger-users] Alternative Navigation Mode


From: Andrés Martano
Subject: [Ranger-users] Alternative Navigation Mode
Date: Thu, 13 Feb 2014 23:06:02 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Hello!

Tired of the terrible Nautilus keyboard support I decided to create my
own file-manager.
To be fast of running and easy to design, I choose curses and Python (my
preferred language).
After sometime working on it, and back to my home with better internet
access, I decided to look for a similar project just to make sure I
wasn't reinventing the wheel. I was. And Ranger is too good and close of
what I want to just ignore it.

But there are a few features that were central to my file-manager plan
that I am missing in Ranger (maybe because I am new to it):

## 1 ##
Being a Vim-easymotion plug-in user, I love the idea of using letters to
access something with few keystrokes.
In the context of a file-manager I thought about doing it this way:
- Press 'n' to enter navigation mode
- Before the name of each file/folder in the current folder you can see
a letter/number, press that key to open the file
- Repeat the line above or use '.' to go to parent directory
- Press 'esc' to leave navigation mode
This way you can access any file/directory in the current directory with
only one keystroke. At least in not too big folders (+62 items). I think
it is possible to re-index the items when the user scroll the list, so,
as long as the display doesn't have +62 lines, the items displayed are
always one key far from being accessed. Anyway, I think most of folders
are not that big.
The code I made before finding Ranger serves has an example of that (it
depends on "urwid" and was tested only in Python3):
https://gist.github.com/andresmrm/8986457
Try using 'n', and then navigate with the letters and '.' (dot).

I planned adding a "selection mode" too (maybe with <c-v> when in
navigation mode). So you could press 'n<c-v>adj' to select the 1st (a),
4th (d) and 10th (j) files. And even use a key, ',' (for exemple), to
select a range: 'nd<c-v>,j' would select all files from the 4th to the 10th.

The most similar feature I found in Ranger is the 'f' key. But I find it
a little dangerous, for I never know when the next letter will do an
exact match. So, or I type letter by letter checking to see if it
matched exactly and entered the folder (what is a bit slow), or I type
part of the name at once and risk entering the folder and issuing
unwanted commands (what is happening sometimes). Either way, most of
times I need more keypresses than in the previous method and it doesn't
seem to help with selection.

## 2 ##
The code I posted the link has another feature that I am missing too:
- Press '/' to open a text box to filter the current folder files.
- Type part of the name of the file your are searching
- The list will update showing matching files
- Use 'tab' to access the first file in the list, but not close the
filter box, so you can easily filter the next folder too
- Or use 'enter' to access the first file and close the filter box
- Any time you can press 'down' to select other than the first file
- When inside the filter box, use 'alt up' to go to parent directory
This navigation is similar to using "cd" in a shell, but here you have
automatic listing of the possibles names to type at each keystroke.
Ranger has a filter method too, but it seems much less useful for
navigation than this one.

## 3 ##
The last feature I planned to my file-manager that I miss in Ranger is a
global file finder ordered by access times.
I planned using the Unix "locate" command to return the list of files
matching a pattern (user's query) and then use some info stored by the
own file-manager to order it.
So, if I have a file or folder recently or frequently accessed, I could
(hopefully) fast access it this way. Didn't implemented it yet.


The last feature seems easy to implement via an hotkey to an external
program and changing the current working directory, so I wouldn't need
to modify Ranger's code.
But the other two features rely heavily on the file-manager interface
and would need some extra code to the Ranger.

What you all think about it? Do they seem good suggestions? Am I missing
something already implemented? Anyone up to implement them? If I
implement them, would the code have a good chance of being accepted in
the repository?


Thanks for the attention and sorry for the huge email...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]