warpdotdev / Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
https://warp.dev
Other
20.93k stars 359 forks source link

Tab completion is not backwards compatible with other terminals #5253

Closed korya closed 5 days ago

korya commented 3 weeks ago

Dupe Check

Describe the bug

The behaviour of tab completion is not compatible with other terminals. Also, it is a bit counter-intuitive.

When I start typing a command, I see the proposed completion. I type tab to accept the completion and I expect to get this proposed completion. Instead, I get a completely unexpected completion.

First of all, it is counter-intuitive to me. But I could live with that.

The real problem is that this behaviour is not "backwards compatible" with other terminals. As a result, I have to fight with my muscular memory. This makes it very hard to use Warp. Sometimes, I type this combinations even without thinking or looking at the screen and expect to get the same result in all terminals.

To reproduce

  1. Type git sta
  2. The shown completion is git status -s
  3. Type Tab
  4. The picked completion is a name of a local folder; in my case, it is state.d

Expected behavior

I expect the terminal to accept the completion proposed to me after I type Tab.

At least, the first word out of the whole completion to make the behaviour similar to other temrinals.

Screenshots

https://github.com/user-attachments/assets/f9bc646c-369f-466d-b026-9a6571a03505

Operating system

MacOS

Operating system and version

14.6.1

Shell Version

GNU bash, version 5.2.32(1)-release (aarch64-apple-darwin23.4.0)

Current Warp version

v0.2024.08.20.08.02.stable_00

Regression

No, this bug or issue has existed throughout my experience using Warp

Recent working Warp date

No response

Additional context

No response

Does this block you from using Warp daily?

Yes, this issue prevents me from using Warp daily.

Is this an issue only in Warp?

Yes, I confirmed that this only happens in Warp, not other terminals.

Warp Internal (ignore): linear-label:b9d78064-c89e-4973-b153-5178a31ee54e

None

dannyneira commented 3 weeks ago

Hi @korya thanks for submitting. When you see the grey text, that's the Autosuggestion feature which shows commands based on history and possible completions. This can be accepted with RIGHT by default but you can change the keybinding for accepting autosuggestions to TAB. Configure this in the "Tab key behavior" setting under Features > Editor. Note: This will update the keybinding for opening the completions menu to CTRL-SPACE (normally TAB by default).

You can also enable the "Open completions menu as you type" in Settings > Features so that the completions menu opens automatically.

Please see more in our docs and let me know if this helps.

korya commented 3 weeks ago

Thanks! That makes sense.

I actually played with that option a bit more and I think that is not what I am looking for. So I reverted back to defaults.

I would love to have the warp experience compatible with other terminals/shells: easy and quick way to autocomplete commands. Right now, the default behaviour of popup window is way slower and less predictable than the dumb tab-complete functionality in a regular bash. The popup is too slow: I have to iterate and then explicitly hit enter to select a completion. Also, it turns out the autocompletion does not work for me when using bash instead of zsh. Not sure why.

Maybe, it is a matter of getting used to it. I will try to use it and see how far I can get 😄 Thanks again!

dannyneira commented 3 weeks ago

There is a request for supporting shell-based completions we're tracking here #1811.

Since Warp has built a wrapper around the shell to enable the IDE-like input and other features like blocks. We don't support the shell completions out of the box so support for them would have to be build. We'll post any updates on that thread above.

dannyneira commented 5 days ago

Duplicate of #1811