Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visual Selection #2994

Open
alex-courtis opened this issue Nov 8, 2024 Discussed in #2993 · 1 comment
Open

Visual Selection #2994

alex-courtis opened this issue Nov 8, 2024 Discussed in #2993 · 1 comment
Labels
feature request PR please nvim-tree team does not have the bandwidth to implement; a PR will be gratefully appreciated QOL Quality Of Life Improvement

Comments

@alex-courtis
Copy link
Member

Discussed in #2993

Originally posted by l00sed November 9, 2024
First of all, thank you so much to the open source community, the plugin author, and plugin contributors. Nvim Tree is a fantastic plugin and part of my everyday workflow. 🌳

Some Background, Visual Selection

The vim-centric way to delete multiple lines of text is to first Shift-v— visually select a full line of text. Next, with the visual line selection, I could navigate (j or k) to expand the selection area down or up, respectively. See below:

Screen.Recording.2024-11-08.at.9.13.43.AM.mov

I would love to mimic this behavior for selecting multiple files in Nvim Tree, using <S-v> to visually select files or folders, then pressing c (for example, to copy) or d (to delete)— or running any action against that selection of files.

Performing the selection this way, using the standard Vim visual selection, would feel like a seamless extension of normal buffer behavior.

Example Scenario

I want to delete several markdown files from a folder, blog. The files are in consecutive order, so I can <S-v> to visually select the first file to delete (car-hacking.mdx) and then press j several times to expand the selection downward. Pressing d deletes the selected files.

Screen.Recording.2024-11-08.at.9.20.17.AM.mov

Does anyone have an existing recipe that makes this behavior possible? Perhaps using the existing buffer marking (m) behavior as a way to integrate the key-bindings somehow?

I suspect there are other people interested in this as well— or those who may have already found a solution. Funny enough, I found a stack overflow issue related to NERD Tree which was likely asked in the hope of achieving the same visual-selection behavior in this other Neovim tree-based file manager.

Other relevant discussions:

@alex-courtis
Copy link
Member Author

This feature would be incredible!

I've found myself naturally doing the same: <s-v> j j d
That somewhat maps to marks m j m j m bd
<s-v> j j y p to clipboard c j c j c p
A repcipe to do this sort of mapping would be a bit clunky and failure prone, and will interfere with existing functionality.

A first class solution is desirable.
We cannot use marks as they have use cases other than file manipulation.
We can use the clipboard.
As a start: perhaps:

  • visual x: marks the visual selection as cut (regular x), clearing other cut and copied
  • visual y or c: marks as copied, clearing
  • visual d: deletes

As usual, pull requests are most gratefully appreciated, see CONTRIBUTING.md

@alex-courtis alex-courtis added feature request QOL Quality Of Life Improvement PR please nvim-tree team does not have the bandwidth to implement; a PR will be gratefully appreciated labels Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request PR please nvim-tree team does not have the bandwidth to implement; a PR will be gratefully appreciated QOL Quality Of Life Improvement
Projects
None yet
Development

No branches or pull requests

1 participant