yorukot / superfile

Pretty fancy and modern terminal file manager
https://superfile.netlify.app
MIT License
5.86k stars 126 forks source link

Feature Request: Vim-like Keybindings for spf #300

Open stepbystepcode opened 3 months ago

stepbystepcode commented 3 months ago

Feature Request: Vim-like Keybindings for spf

Is your feature request related to a problem? Please describe.

As a Vim user, I find the default keybindings in spf difficult and unintuitive to use. The lack of familiar Vim-like shortcuts significantly hinders my workflow and efficiency.

Describe the solution you'd like

I propose implementing Vim-like keybindings in spf, drawing inspiration from the Ranger file manager. Specifically, I suggest the following:

Describe alternatives you've considered

I've considered remapping existing spf keybindings, but this approach is cumbersome and doesn't fully address the need for a more Vim-centric experience.

Additional context

These Vim-like keybindings are widely adopted and appreciated by Vim users. Implementing them in spf would greatly enhance the tool's usability and appeal to a broader audience familiar with Vim's efficient workflow.

MrPandir commented 3 months ago

It's a good idea. But I would like to make some small comments:

yy to copy the current line/selection. pp to paste the copied content (with a double-click confirmation for safety).

We can use the single operators y and p for this.

pp to paste the copied content (with a double-click confirmation for safety).

I don't think we need a confirmation, instead we should add undo, redo to the actions we took.

hl to toggle between parent and child directory.

Totally agree, I'm surprised it's not set by default now.

g followed by a directory name (e.g., gh) to jump to the home directory. g/ followed by a directory name to jump to root directory.

Great, I would also like to be able to customize these aliases in the config. Something like this:

[goto]
h = "$HOME"
d = "$HOME/Desktop"
c = "$HOME/.config"
"/" = "/"

gg to jump to the first file in the current directory. G to jump to the last file in the current directory.

Additionally, in select mode, we can highlight the files we jumped.