-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Implement history search --reverse
#4375
Conversation
It should be possible to have `history search` output ordered oldest to newest like nearly every other shell including bash, ksh, zsh, and csh. We can't make this the default because too many people expect the current behavior. This simply makes it possible for people to define their own abbreviations or functions that provide behavior they are likely used to if they are transitioning to fish from another shell. This also fixes a bug in the `history` function with respect to how it handles the `-n` / `--max` flag. Fixes #4354
Why not just flip the behavior for 3.0? Like you say most other shells order from oldest to newest, and if people think that's a better way to do things, why not just have fish do that, rather than add a flag? |
src/history.cpp
Outdated
@@ -1520,42 +1529,39 @@ void history_t::save(void) { | |||
|
|||
// Formats a single history record, including a trailing newline. Returns true | |||
// if bytes were written to the output stream and false otherwise. | |||
static bool format_history_record(const history_item_t &item, const wchar_t *show_time_format, | |||
bool null_terminate, io_streams_t &streams) { | |||
static void format_history_record(const history_item_t &item, const wchar_t *show_time_format, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment is wrong - it doesn't return anything anymore.
Personally, when I look at the history, I use the If I didn't page it, I'd want it the other way around so I wouldn't have to scroll to see the new stuff. But I believe the common case is to use a pager. So this looks good to me. |
OK, that makes sense to me @faho, you're right. I also use a pager and wouldn't want to have to scroll to the bottom. |
Couldn't someone avoiding the fish history pager just as easily abbr/alias in a |
That's a philosophical argument, and it's not invalid. However, given that there's two mutually exclusive ways to do this - my system doesn't have I consider this a failure of POSIX - not by specifying something stupid ($POSIXLY_CORRECT, anyone?), but by specifying too little. |
Correct, macOS for example, does not have tac. And |
Also, |
Also, regarding the default It is also very rare that I want to see more than the most recent 10 to 20 commands. Which is why I use an alias named Whenever the choice is between being friendly to average users or power users we should always favor the former. But that doesn't mean we can't or shouldn't provide ways to meet the needs of power users if doing so can be done without making fish less friendly for the average user. |
OK, seems reasonable. |
I actually just tired of that limitation and published a cross-platform, MIT-licensed
|
@faho, are you happy with this? |
@zanchey: Yeah, I'm happy. |
It should be possible to have
history search
output ordered oldest tonewest like nearly every other shell including bash, ksh, zsh, and csh.
We can't make this the default because too many people expect the
current behavior. This simply makes it possible for people to define
their own abbreviations or functions that provide behavior they are
likely used to if they are transitioning to fish from another shell.
This also fixes a bug in the
history
function with respect to how ithandles the
-n
/--max
flag.Fixes #4354