The ability to copy part of the output of the previous command to the current command

Open
#3,670 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
csharp
Domain
cli

Research direction

No files, tests, or entry points are named. Start by narrowing whether the feature should use interactive selection, command syntax, or an editor, then identify the relevant PSReadLine surface and define expected behavior for the examples. Done should include an agreed interaction model and tests covering selection from prior output.

Written by the indexing model from the issue text.

Description

Area-Predictors Issue-Enhancement
Prerequisites
  • Write a descriptive title.
Description of the new feature/enhancement

This is not a feature request that has a clear description and expectation, but more of a big general idea.

I often find myself need to grab a text from the output of the previous command and put it in the current command that is under compose. Using the mouse to select the text, copy and paste it into the current command does the job, but is inefficient.

Technically you can run the previous command and pipe it to a text editor and copy the text. However the point is that the need of copying part of the previous output is usually emergent, meaning you do not know that you need to do it until you are in the middle of composing the current command. As a workaround, you may perform some magic to always capture command output in a file and when needed, get the text from that file. However, with that, it is still requires additional steps and is not very neat.

There should be a way to:

  • Interactively select and copy (or some other mechanism that does not neccessarily require clipboard) a text from the previous output (right in the terminal?)
  • Or a command with text-selection syntax, e.g ssh $(2,3) (the third text from the second line of the previous output), which will resolve to the expected text when executed
  • Or open text editor with the content being the previous output, from which you can choose the text
  • etc.

A few examples that show how useful it is to be able to quickly grab some text from the previous output and put it in the current command:

> build
...
Error: syntax error in file 'foo/bar/baz.cpp'
> code foo/bar/baz.cpp
> health-check
...
Error: connection refused. IP: 208.232.96.166
> ping 208.232.96.166
> git status
modified: foo.txt
> git diff foo.txt
> Get-Content ./file.txt
One two three
four five six
> Set-ClipBoard -Value 'five'
Proposed technical implementation details (optional)

No response

Dominant language
C#
Stars
4.4k
Forks
341
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PowerShell/PSReadLine

All issues in PowerShell/PSReadLine

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.