Hacker News new | past | comments | ask | show | jobs | submit login
JetBrains IDE new Terminal Interface (jetbrains.com)
127 points by wmstack 11 months ago | hide | past | favorite | 98 comments



My Jetbrains software yearly subscription is the best value for money I pay for anything related to my work!

Their software just improves my productivity out of sight.

If you look at the prices for other subscriptions, then look at Jetbrains, you wonder, "How do they do it?"

I guess they're just really good at software.


DataGrip is the best RDBMS client I've ever used, hands down. It's so far beyond the competition in my experience. Maybe something like SQL Server Management Studio is really great specifically for SQL Server, but DataGrip is fantastic. I wouldn't trust most SQL clients with a production connection honestly. Getting read only constraints and commitable changes in my SQL client is a no-brainer that most other clients I've used didn't have.


I have to work with SQL Server and use DataGrip wherever possible, using SQL Server Management Studio only for the pieces DataGrip doesn't support (mostly running SSIS packages). My productivity really did jump when I switched to DataGrip.


My choise is DBeaver. Work consistenly good.


Prior to Jetbrains I bounced around with a bunch of different IDE's. When I found Jetbrains I really started to enjoy coding more.


Yes! It's so worth the money.


Seconded! And I also like how they treat their subscriptions. They reward long-term customers (by giving upto 40% discount on renewals), and even give a fallback license in case you want to stop paying them after a year. Kids do growth hacking, legends do customer retention!


I love Jetbrains products to bits but they better shift gears with their AI integration strategy.


So much this.

I'm a Emacs guy, and still use it when staging/stashing/committing stuff, but when I rediscovered JetBrains tools, it was such a joy to use, I've used WebStorm (with Datagrip paid plugin) as my daily driver ever since.

I like Emacs but JetBrains stuff just work without needing to search obscure config on the web, it's a breath of fresh air.


The problem with a lot of these tools is that they fight with the shell to provide the UX enhancements (the comments in this thread are littered with people commenting that this new terminal breaks basic feature X, Y or Z. Really what they should be doing is working with the existing command line primitives as a hook for their UX enhancements.

I know those existing primitives are 50 years old and suck in a great many ways. But the alternative is having a terminal that only works some of the time.

This is field I'm actively experimenting in too. And have already had some degree of success despite the project being only a couple of months old: https://github.com/lmorg/mxtty

My point is this: any refinements to the terminal interface shouldn't break support for terminal applications. But all to often (this term included) form is now prioritised over function.


100%. What ppl often mixup is shell responsibility and the terminal itself. They are not really to blame for that, because their interactive terminal usage is mostly at a shell prompt.

Idk how they implemented things here, prolly by sidechanneling information to/from the terminal widget. Which is bad, they'd better use in-band terminal sequences for that, so the ecosystem of TEs and cmdline apps can eval the sequences and incorparate them, where they are useful (like the prompt marking OSC sequences...)


I'll keep an eye on your project. Are you planning to support tmux control mode like iTerm2 does?


I'm not planning on supporting split panes (though I'm sure that feature will eventually be written), instead relying on multiplexers like tmux to fill that gap for the time being. I don't really know enough about tmux's control mode to understand how I might integrate it but I, personally, didn't like iTerm2's integration much so if I did interface with tmux at a lower level then it might look somewhat different to iTerm2.

That all said, at this point in time I'm not discounting any ideas.


Huh, ok. Split panes are one of the killer features of iTerm2 IMO, and also one of the reasons why tmux control mode is so great on it. :)

To each their own though, so if it doesn't work for you, then it doesn't!


I've had a lot of trouble with commands in Warp going haywire because of how much magic there is in creating visual blocks, and it looks like Jet Brains is taking it one step further. The reason terminals are great is because they are dumb, standard interfaces where you can have full access to any system, local or remote, and directly execute binaries and interact with a command language like bash or zsh.

I feel like this terminal is counterproductive. It adds visual niceties at the cost of dumbing down the power of the terminal and removing terminal feature that will be confusing to regular terminal users. It really doesn't have to be this complicated to be useful.


On the other hand, it makes the terminal much more accessible for less regular users. I’ve really appreciated the extra tools of Warp as someone who’s in the terminal infrequently enough to forget most intermediate commands.


A new terminal is nice, I guess.

But all I ever wanted was simply the ability to disable line wrap.

https://youtrack.jetbrains.com/issue/IDEA-212620/Allow-a-use...

Nobody gets promoted for implementing a line wrap toggle in the old terminal, but they do for creating an entirely new terminal.


That's not nearly as easy as it sounds because terminals are grid based. So expanding the terminal width dynamically due to a lack of LF control character would get very computationally expensive very quickly.


Yes! I just responded before I saw this comment. Exactly this! This is so typical of jetbrains, rather than fix a bug they created something that will take weeks to learn, when really we just want our own console that we already know.


In almost a decade of using Pycharm I have not once used the builtin shell. (Debug console is another matter.)

It can never beat the system terminal+shell setup you pick yourself (for me Alacrity+z4h zsh distro). I can only see it as a nice-to-have for when you for some reason cannot install your own terminal. The UI-UX divergence from the system-wide shell setup will always be too wide and incur a learning-curve/feature gap.


Personally I find it really useful for juggling interpreters between projects and keeping their state alive. There are CLI solutions for this, of course, but it's another set of commands to remember.


I'm not familiar with the z4h what does it offer over normal zsh?


Commonly used plugins preconfigured (I don't install my own anymore because it covers my bases) and the fastest possible plugin loading out of all zsh frameworks.


Except that Alacrity is not the system terminal.


Obviously I mean "the terminal application installed on your local host system where you develop".


I have always wanted a notebook style UI for terminal because I need to go back to what I learnt many times (say AWS CLI commands ...with syntax as well as output saved)

The visual separation of each command and output into block seems like a step in that direction?


Why not just use Jupyter? It has a zsh kernel[1].

[1] https://github.com/dan-oak/zsh-jupyter-kernel


Terminal in a browser with a heavyweight local server. Now you’re talking!


Thanks. I didn't realize this was an option.

Will surely check this out.


Would the old Unix script(1) program work for you?

https://man7.org/linux/man-pages/man1/script.1.html


I'm normally cynical bastard resistant to change. But Jetbrains new IDE styling is really good. I use it in WebStorm everyday and see no reason to move back to the old UI. Kudos Jetbrains.


I found for myself that "compact" version of the new UI is not compact enough. And the only way around this is to reduce IDE's font size, which worsens readability.


Same here, if your "compact" mode is way less compact than what you had before you're doing it wrong Jetbrains. Information density is key when developing


for me it strikes the right balance between enough "white space" and density. E.g. VS code is not dense enough for me.


VSCode's file explorer tree is way too dense, though, the indents are not big enough by default


I don’t get the extreme hate around here for new UI. I turned it on just to see and felt nothing really changed. Maybe it’s because I almost exclusively use keyboard shortcuts? I can already feel the angry replies being smashed into keyboards…


> Maybe it’s because I almost exclusively use keyboard shortcuts?

That's a reasonable suspicion, since my biggest gripe with the new UI is how it hides clear, text-based menus and labels behind more confusing icons.


Was there something in particular that you used often that was moved behind a confusing icon?

I don’t really find myself digging through these menus often, instead using the action search for things I don’t know/map the keyboard shortcut to.


Yes, I genuinely just use the menus for anything I don't use often enough to map a keyboard shortcut to.

I find search dialogues to be annoying and counter to building intuitive memory for using an application. They're a "last resort" to me when the UI of a program is poorly made.


Makes sense! Don’t mean to do that annoying internet thing where I am saying you are wrong and I am right, just curious to hear more specifics about it, thanks!


Nah I get you. I think it’s just a personal mind difference thing. Some people intuit functionality verbally and I imagine that the action search is probably preferable to them.

I tend to intuit functionality physically so I am often annoyed by layout changes.


I've been waiting for years for the ability to have two of them side by side (edit: you can).

Also not really convinced by the new UI (I tried it in Android Studio), mostly because I don't see anything wrong with the "old" one.


Upvote: little things like this somehow make it feel very unusable for me and keep me going back to VSC.

It doesn't even seem like it should be that hard to implement.


I looked it up again and you can actually do it with the split option since apparently 2020, great!

So I stand corrected.

Although it's not restored at launch (unlike the split in the editor).


I'd settle for them fixing text selection in the existing terminal: basic stuff like double-click to select words, triple-click for lines, shift-click to extend selection ... lacking the last one really irks me when I need to select a lot of output. And I'm hearing this new one hijacks ^r, which has long been wired into my muscle memory. I have a lot of reasons to love Jetbrains IDEs, but the terminal is not one of them.


Oh wow, this looks horrible. I guess whenever they make this permanent I will be switching back to using a terminal outside of my IDE.

I used to jokingly say "Jetbrains doesn't miss!" at new feature updates, but with the new UI and the force-installed AI Assistant plugin they have been hitting straight gutterballs lately.

Did something change in their leadership?


I'm so glad you can now use the old terminal.

When I first tried 2024 EAP it was locked on the new terminal which was very slow and didn't have reverse history search. And no way to turn off the horrible fig style auto complete.

I'm a big jetbrains fan, but not a fan of this direction. My terminal is sacred


I’ve never used the embedded terminal in any Intellij IDE. I prefer to run stuff on its terminal (more space, custom colors, familiarity, etc.)


At first glance, I love the idea of the prompt being in a static position, separated from the output. Surprised that this is the first time I've seen something like that.


> At first glance, I love the idea of the prompt being in a static position, separated from the output. Surprised that this is the first time I've seen something like that.

I effectively have that by sticking newlines into my PS1 variable.

And, yes, it's because its easier to track when the prompt is always in the same place after every command.


Could you elaborate more? I'm having trouble visualizing what you mean.


> Could you elaborate more? I'm having trouble visualizing what you mean.

The standard prompt is PS1, which after every command, places the cursor at some point in the line that depends on the width of $PS1 contents.

By appending a newline to the existing PS1 variable, the cursor is always at the same point after every command - far left on the last line.

I did play with embedding the last command into the PS1 variable too, so that not only is the cursor at a constant position, but the line above it prints the last command too (!! or something like that)


Ah yeah, I do this too. The hostname and current working dir gets its own line, then on the line below I have my prompt sigil (% or $, depending on shell). What I meant was in the new Jetbrains IDE terminal, the prompt is pinned in a pane at the bottom of the window while you view your output doing its thing in the pane above.


I think the GGP is referring to how, in this new interface, the prompt is always pinned to the bottom even if you scroll the terminal - so you can scroll back through the output of, say, `rsync --help` to find what you need, without losing sight of the prompt pinned to the bottom.


I've never found terminals in IDE's to be useful.

I run i3 and typically will just open a terminal in a new workspace/monitor and use alt+whatever to flip back and forth between the terminal and the IDE. Terminals in IDE's always try to display the minimum number of lines they can get away with.


I do the same, but using Guake/Yaquake/Quake (whichever fits the DE I'm in).

I'd rather memorize a keybind that works globally than an IDE-specific one.


That’s pretty cool. I wonder how JetBrains IDEs and VS Code manage to detect the installed shells (zsh, bash, PowerShell, etc.) in the first place since I certainly have no idea how to do it in either Java or JavaScript. Maybe they write platform-specific code?


On Windows I have no idea, but on Linux it seems easy enough:

   » cat /etc/shells
   # Pathnames of valid login shells.
   # See shells(5) for details.
   
   /bin/sh
   /bin/bash
   /usr/bin/git-shell
   /bin/zsh
   /usr/bin/zsh
   /bin/rbash
   /usr/bin/rbash
   /usr/bin/bash
   /usr/bin/sh


On linux the default shell is simply in the $SHELL env var.


It's also in $0 when you open a shell. I'm not sure how portable that is, though.


Trying to run it from its usual default path for each platform would be my guess.


I like the visual blocking of each command. Cool idea I haven't seen in other terminals.


Apple's Terminal.app had similar functionality for a while: CMD+Up/Down to navigate between past commands and quick selection of command outputs.

Other terminals, like iTerm (MacOS only), Kitty, WezTerm and so on also have similar options, usually behind some sort of "shell integrations" feature.


Do you happen to know how to configure this in iTerm? It's the one feature I miss the most from Warp.

EDIT: Found some more info

iTerm calls it "prompt marks": https://arc.net/l/quote/muwfagqi

If you're also using Starship (https://starship.rs/), then you might want to look at this issue: https://gitlab.com/gnachman/iterm2/-/issues/10537#note_15803...


Similar concepts have existed for a while, such as Warp. The Chrome Devtools console is also similar in having blocks for errors and warnings. I wonder if Nushell can work with it.


Konsole (part of KDE) does too


Do you have to enable that? There are no blocks for me.


> the convenience of a terminal lies in its ability to provide a universal way of managing tasks without needing to be proficient in all UI elements.

That's a gross misrepresentations of the value proposition of a terminal ui. Even when you are fully proficient in all UI elements, most UIs --- with very few counter examples [1] --- don't offer a comparable composability of commands.

[1]: The only ones that come to my mind are at the moment are, large graphics applications that provide an editable history of all commands that lead to the current state. That is arguable even more advanced than a terminal interface.


I really like this. I do use the built-in terminal from time to time, and I haven't had issues myself.

I'd love to see this released as a standalone terminal, like in the vain of iTerm2. I think that'd be really cool!


Not available in the "old" UI? Guess this is the beginning of the end.


    You can switch between the old and new terminal in Settings/Preferences | Tools | Terminal | Enable New Terminal.
I'm not what are you referring to?


> The new terminal (Beta) is now in JetBrains IDEs and will be available in the new UI

JetBrains IDEs are in a transition state right now where they have both a “New UI” that’s minimal and a cheap knock off of VSCode to lure the kiddos in, and the original “IDE-feeling” UI that’s arguably much better for actual work. A sort of approach like Reddit still having new and old years later.

The wording implies the new terminal is only available in the new JetBrains UI and not the old UI


A more charitable take is that power-users are mostly hotkey users, so hiding the UI leaves more space for things that matter.

That said (and with the understanding that I am, by nature, averse to changing my habits): I prefer the old UI by a long shot.


I use IntelliJ for ~10 years now, and when I read that they have a new UI, I expected the worst. But, to be honest, I fell in love on first sight (at least with the compact mode).


Compact mode is a must for me as well. When __new UI__ released for Android Studio, I didn't enable until they later rolled out the so called compact mode.


> “New UI” that’s minimal and a cheap knock off of VSCode

Equating being minimal with being cheap sounds about as smart as equating IDE with its UI. IDE is about functionalities not how big/small buttons are or how many panels you can show off at once.


Hard disagree: an IDE is a UI that integrates (the "I" in IDE) various development tools such as an editor and compiler with a unifying interface. An editor that wasn't mostly equivalent to its interface would be, well, sed (even ed has a UI). Dog knows I'd love to have all my IDE tools available as CLI scripts, but I'd never do my day to day development that way.

All that said, I like the new UI. The top bar with the project/task/branch switcher is just perfect for my workflow, even if the tasks UI could do with a little more attention.


Honestly the new UI looks very different, but it takes about a 30 minute video tour and a 30 minute usage run to get completely used to it.

I don't think it's necessarily better but it's also not worse. I use their IDE at work, so figured I should just adopt before I get behind with new features since I do find their IDEs to be better than anything else I've tried still.


> The primary visual distinction of the new terminal is that each command is now presented in a separate block

Yeah, I'd better like it if they didn't do that. This adds even more visual clutter.

> A new, convenient command history has been added, which allows for filtering and makes it easier to navigate through recently executed commands.

Why is ^r not enough? Oh, wait, they blocked access to that.

> We took full control over the prompt area of the terminal

So much for having a terminal in my IDE. It's not really a terminal anymore, or at least not in the sense that I'd call it a terminal, but more something that just barely fits the nomer of being a command+line interface.


You're free to turn it off, it's just an option.

I, for one, quite appreciate the redesign. Blocking ^r is too bad though, I tried the new terminal out a month or so ago, the redesign was nice and did feel optimized.

I ultimately switched back due to some issues with the autocompletion. I hope they've fixed these issues, things like makefiles would not autocomplete in this new terminal, while working fine in the 'old' terminal.


> You're free to turn it off, it's just an option.

For now


And here I was, thinking of implementing exactly that mechanism in an X terminal application. (haven't seen the JetBrains variant at all).


> We took full control over the prompt area of the terminal.

I use Fish, because it has really nice tab completion, suggests recently used commands, and expands abbreviations. I hope JetBrains won't force this new behavior because that would kill all these useful features. If they want to fix the integrated terminal, they should start with the performance, TUI apps are virtually unusable there.


One of the primary reasons I use the IDE's terminal is that it enables me to just share the IDE when doing screensharing and not share my entire desktop, which is good for my privacy.

with that said, at least in the past, their IDE terminal was far from perfect (if you did a "clear" in the terminal, it really messed it up, at least from my experience).


At a glance, this looks like https://warp.dev/ Terminal.


https://docs.warp.dev/getting-started/getting-started-with-w...

This visually does look great, but a login required for a local terminal is a deal breaker for me.


Heh, they make a point to calm users that it can truly be offline, later... at the loss of features.

Just log in first, please - 'valuation and stuff'

Christ they're pulling all the lead tricks. Supply an email to get a download link at the top, scroll down to find it listed.

Borderline insulting


Plz stop to worry. They only need that to help you around in the future, not to do any harm. Imagine you love their non-free offers later on, but don't know how to contact them to share credit card number - what a disruption on your end.

Or maybe not...


The primary visual distinction of the new terminal is that each command is now presented in a separate block.

Pretty neat !!!.


A few years ago my company moved to using Bazel as our build system. JetBrain IDEs have a plug-in for Bazel that’s incredibly slow and buggy. It’s a shame because I used to really enjoy using their product, but now it’s barely usable.


I really hope that this new terminal most definitely is not like that Warp terminal that was bandied about recently on HN. Anyone knows if this new terminal has telemetry baked in? Or not?


The headline can also be read as new terminal(UI) interface for JetBrains IDE (like an emacs server or vim+eclim).

Was happy for a moment until I read the article.


The new Fleet code editor they're pitching as a competitor to VSCode works with separately running language servers, maybe there's a hack waiting to happen there


What’s the point of including a terminal in an IDE — shouldn’t it be a mobile app instead?


typical Jetbrains, reinventing something, when they could have just enabled linewrap...


We took full control over the prompt area of the terminal. You can now use editor actions and move the cursor with the mouse during command input.

Great! Now give me access to the AI assistant, since I have the “all products pack”, which one would assume includes “all products”. Spoiler: it doesn’t by a long shot


> At the moment, we only support a limited set of shells: Zsh, Bash, and PowerShell. If you use any other shell, you will see the old terminal even if the new setting is enabled.

This is so wrong in the same way an ssh client isn't a terminal.

Also they could support limited features with other shells.


ctrl+r not working. Pass.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: