10 ms·
The fact an article like this exists speaks to how bad the keyboard shortcuts for tools like tmux are. It shouldn't be revolutionary to use basic features of a
by spicybright 6y ago
The fact an article like this exists speaks to how bad the keyboard shortcuts for tools like tmux are. It shouldn't be revolutionary to use basic features of a program.
I'm a huge fan of a command window, where you type words to do a fuzzy search of all the commands in a program.
Sublime text and jetbrains products have it down so well to the point of me not needing to memorize key shortcuts. I just have to remember the first few letters and I'm good to go.
- ianthehenry 6y agoI don't think that's fair: this is not news to anyone who has ever used tmux. This post was written for people who have never tried tmux, but who might want to if they knew about this feature. I think tmux actually has good command discoverability (once you install it) -- prefix + question mark lists all the keybindings, with user-friendly descriptions of what they do. That said, I agree with your larger point completely -- I love Sublime's command palette, and I love using ivy/counsel for M-x in emacs. It would be even better if tmux had something like that.
- corndoge 6y agoBeen using tmux for many years and did not know it could copy text
- ianthehenry 6y agoWell, I stand corrected then. More discoverability would definitely make the world a better place. :)
- minusf 6y agoit's called reading the docs... some tools are so feature packed there's no way to discover/know everything and that's fine. i didn't discover tmux could copy text until i got really annoyed by selecting with the mouse... not annoyed = not discovered :)
- d33 6y agoDocs aren't a replacement for a good UX. Tmux comes from the times when this attitude was okay, but I feel that the standard now is raised and if the UI could give some feedback/help that doesn't require reading through all of the documentation, it's definitely something that should be prioritized. Anti-example - help screens. Press ctr+b, then ?. Compare this to screen's ctrl+a, then ?. Both are quite terrible, but tmux definitely leaves users more disoriented while this isn't something that couldn't be avoided. A simple message saying "you are in XYZ mode, type :help xyz-mode to get help" could go a long way. The RTFM philosophy combined with a wall of single-file manpage with no tutorial is something that I really wish died already.
- phone8675309 6y ago> The RTFM philosophy combined with a wall of single-file manpage with no tutorial is something that I really wish died already. With respect: what do you do for the tools you use to help this situation? The software is open source and accepts patches, and I'm sure they'd love to accept a patch that adds user-friendly documentation to the tool.
- d33 6y agoIt sounds like a loaded question, but a perfectly valid one :) If you're asking whether I actually change the tools I complain about then the answer is "no". The reason is that if you hate how, say, coreutils works and have a strong vision of how it should be restructured, it will boil down to being off-putting to the mainteiners at best and - at worst - becoming a rewrite anyway. This is why I see my role as more of a propagator of tools that want to dethrone the current defaults: I look out for new exciting projects that have wildly better ergonomics than what's most common and I recommend them to my friends. And given that I'm running a hackerspace in my city, I have a bit of a reach so I think that this strategy might be a net good. I also try to share knowledge on how to code and keep in touch with FLOSS communities, so while I might not be contributing code directly, I (hopefully) end up bringing contributors anyway. And while we're talking about spreading the word when a project has good ergonomics, here are some examples I personally love: 1. "glances" - a tool that combines a couple of tools like top, iftop, iotop and various other monitoring programs into one CLI dashboard. It's a bit chunky, but its functionality justifies it. 2. "fd" (cargo install fd-find) - a simpler version of "find". instead of crazy "find -iname 'something" you can just do "fd something". It's also faster. 3. "ripgrep" - like fd, but for grep. Defaults to recursive grep and skips .gitignore, so you can just type "rg variableName" and see all occurrences of it within files in your directory tree. But you're right, I love to complain and quite frankly, in many cases I'm disappointed by priorities some projects choose in terms of ergonomics. Disappointed up to the point that I gave up sending patches - or even filing issues (example: GitLab). Perhaps a solution to the problem would be to have something like a GitHub badge signalling "UX feedback is welcome" or "RTFM", depending on one's design philosophy? That would help developers reach their target audience, regardless of which side of the argument they prefer.
- square_usual 6y agoSeconded. Used tmux for basic ops stuff for ~2 years, didn't know about copying.
- chaps 6y agoBeen using it for about five, and honestly I stopped using this in my workflows a long time ago. My workflow now is to ctrl-a+z to maximize the pane, highlight (with the mouse) and hit ctrl-insert to copy and ctrl-shift-insert to paste, then ctrl-a+z to restore the pane. It's still a bit of a pane, but it's deeply ingrained enough into my muscle memory that it's smooth. But... sublime is my text editor for notes and SQL. Everything else text related is in a terminal with vim mode enabled universally. Not sure why SQL is so annoying with vim..
- disqard 6y ago> It's still a bit of a pane I see what you did there :)
- boogies 6y agoIf you `set-option mouse on`, tmux will let you use copy-mode just by clicking and dragging (intelligently within panes, negating the need to resize-pane -Z). But TBH I often do almost the same thing (but Xorg does its part of the copy-pasta without forcing any Emacs-esque three-finger keyboard chording, thank goodness), selecting text is the only thing I ever use the mouse for in the terminal (except rare scrolling, especially overflowed weechat bars), so I keep tmux’s mouse support off.
- chaps 6y agoAh yeah, I use that configuration option (love it), but I think the issue is that highlighting text doesn't stay highlighted unless I hold shift -- which shifts the mouse functionality to the terminal emulator. Maybe there's a setting to get around that, but it hasn't been a big enough deal to really try and figure out.
- EamonnMR 6y agoI used Tmux as my tiling window manager for a while and I didn't know this.
- rgoulter 6y agoOne feature to improve the discoverability of sequences of keypresses/chords is a which-key style UI. e.g. a panel will show the available set of next inputs which can be handled, and what their command is. https://github.com/justbur/emacs-which-key#more-examples https://github.com/justbur/emacs-which-key#more-examples
- oblio 6y agoI've been using tmux for a while and I didn't know about this. Just because an app has some features doesn't mean that everyone knows about them. In fact the opposite is true, most features are never discovered and even fewer are used, even "obvious" ones.
- iopq 6y agoI've used it, but I use it like a retard so it's useful to me.
- lucideer 6y agotmux user. This is news to me.
- rekoros 6y agoI've used tmux for 10 years, and for 10 years I've struggled to copy text in tmux. To my defense, the documentation is impenetrable. That said, so looking forward to copying text in tmux going forward. The instructions in the OP didn't work for me, but I found two other posts - one from 2013, one from 2016, the combination of which worked. Not only can I copy text to a tmux buffer now, but it automatically goes to the system clipboard. This feels like overcoming a major disability.
- 0xEFF 6y agoYou may already know, but in case not, you can also use this tmux feature from your editor. For example in vim :w !tmux load-buffer - Writes whatever you have selected in vim into the tmux buffer through standard in. Elsewhere you can paste like pbpaste. :r !tmux save-buffer - The save-buffer command is’t the most intuitive name, but it’s saving to a file, stdout in this case.
- simias 6y agotmux's keyboard copy is rather intuitive... If you know emacs.
- nobleach 6y agoThe crazy thing there is that it uses Vim visual mode for selecting text `v` or `V`.
- russellendicott 6y agoI've been using tmux buffers for quite some time now but what always throws a wrench in my plans is when using tmux in SSH sessions there are always gotchas when getting access to my host's clipboard buffer depending on the platform (windows/mac/nix). The whole reason I dev remotely through SSH is so it doesn't matter what platform I'm coming from. For example, from Windows these days I'm having to vim yank to file ~/clipboard and then I have a Windows keyboard shortcut to pscp that file locally && notepad file. Hacky, yes, but the muscle memory is there now so meh. But that's just the flavor of the month this month...
- 6y ago
- tomphoolery 6y agofzf could in theory be used for this
- blueblob 6y agoI agree with the command discoverability. Not only does prefix+? show you the commands, it is also searchable, and if you use vi-mode, it uses the same search commands.
- Galanwe 6y ago> Sublime text and jetbrains products have it down so well to the point of me not needing to memorize key shortcuts. Right, but you dont run things _inside_ sublime text. Keep in mind tmux has to play well with hundreds of existing shortcuts that people expect to work. When you are attached to a tmux, you don't want to override the shortcuts of something you may run inside the tmux. All the terminal shortcuts are expected to work (Ctrl-E, Ctrl-Arrow, Ctrl-A, Ctrl-E, Ctrl-E, Ctrl-Q, etc..). All main program shortcuts are expected to work (vim, emacs, etc) And of course not desirable to override screen shortcuts.
- wahern 6y agoI never used GNU screen as its command prefix, ctrl-k, conflicted w/ the command prefix for my preferred editor, JOE, and I was always too lazy to reconfigure the bindings. tmux uses ctrl-b by default, which smoothed the way to using tmux. I'm still too lazy to learn any tmux commands; the only one I know off-hand is ctrl-b-d, for detaching, which is sufficient for my needs. Scrolling is annoying in tmux sessions because I don't remember the commands, but I compensate by avoiding tmux when I might need the scroll buffer or by tee'ing output to temporary files.
- pwg 6y agoI just moved screen's command prefix to ctrl-j, for the same reason, it did not conflict with Joe (in JStar mode) command keys. That reconfiguration occurred very soon after I was introduced to screen, circa. 1993 or thereabouts.
- usr1106 6y agoI'm suprised anybody uses JOE as their preferred editor. I have never met anybody even mentioning it, but obviously people have different backgrounds. I've used Unix in the 1980s the first time and learned that whatever your preferred editor is, you need to know vi, because vi is always installed. That has been true in my experience with a single exception. In a recent embedded Linux I used they had only nano available. So what is the story behind JOE and what is good about it?
- leejoramo 6y agoI first encountered the fuzzy search command bar shortly after I started using Mac OS X 20 years ago when I discovered LaunchBar. This revolutionized my computer usage. Basically bringing the power of CLI to GUI It took quite a few years fir this to be picked up by SublimeText, but wow that was another huge boost. No longer needing to learn tons of keyboard commands to navigate an application. I wish an OS would deeply bake this idea in. Apple has done good job with Spotlight for the system level (I still use LaunchBar on my own systems) , but I want this functionality to be shared between System and Apps
- lanstin 6y agoThe large numbers of keyboard shortcuts is a feature - like learning a piano piece or something, once you have muscle memory you can fly thru the commands. Having to look at anything other than the output of your command, like a suggested completion is slower.
- leejoramo 6y agoLets just say I am very keyboard centric. I have used computers for nearly 40 years. I automate the my systems with extensive Keyboard Maestro and AHK scripts, use multiple layers on my programmable hardware keyboard, LaunchBar or Keypirinha. When editing text I seldom touch the mouse or use the menus. I have mostly made Windows 10 bend to my highly MacOS inspired keyboard focus On Linux, I mostly restrict myself to the CLI. When I try Linux GUIs, I am frustrated with the lack of keyboard consistency in the GUI, but I have also never given it the months of time it would take to bend the Linux GUI to my way. (I do customize the heck out of the CLI)
- CodeGlitch 6y agoThis is what Ubuntu tried to achieve with Unity. Even as far as being able to search for GUI commands within individual applications. I thought it worked pretty well and was gutted when they scraped it.
- leejoramo 6y ago
- gertlex 6y agoI learned of byobu several years ago from a coworker. I think of it as (but may be technically incorrect) a wrapper on top of tmux (or optionally screen; behaves the same-ish either way?) It's hotkeys are... less arcane to remember by virtue of being primarily the F-keys at the top of the keyboard. https://manpages.ubuntu.com/manpages/eoan/en/man1/byobu.1.html#keybindings https://manpages.ubuntu.com/manpages/eoan/en/man1/byobu.1.ht...
- spookthesunset 6y ago+1 for this tool. Really makes it obvious what is going on.
- G3rn0ti 6y ago> The fact an article like this exists speaks to how bad the keyboard shortcuts for tools like tmux are Well, tmux is not an editor but a terminal multiplexer — its keyboard shortcuts are like this as to make sure they don’t interfere with any editor’s shortcuts running in the terminal.
- toyota86 6y agoCringe. The copy and paste buffer is inspired by vi btw. Do you have a problem with vi in addition to tmux? That is to say, it's dead simple once it's explained to you. The issue is with documentation, not the keyboard shortcuts themselves. Sublime Text and Jetbrains are also vi-inspired. For where Jetbrains doesn't go far enough there is a vim mode plugin. I would say these are strong indicators of vi's dominance among keyboard shortcut layouts.
- blux 6y agoI read the documentation; and the shortcut is explained in the documentation. I've been using it for years already. I think that maybe the problem is partly that people just do not bother to read the documentation, and expect the tool to take them by their hand. Do we expect that from the tools we use? Is that good software?
- alpaca128 6y agoI use Vim every day and love it. And I found tmux' configuration style and controls so confusing that I gave it up completely. You want Vim-like controls? Use dvtm. It lets you open the content of any terminal in Vim, and from that point you can do anything from selecting/copying text up to saving a snippet in a file with a simple ":w foo". All that aside, clipboard copy-pasting in Vim is absolutely horrible out of the box. > Jetbrains are also vi-inspired Not sure about that. The tab management and window splitting alone feel near unusable to me, because like many other modern apps they are convinced I only want to switch tabs in a seemingly random order(instead of, you know, the order that's literally shown on screen), and none actually have Vim's tabbing where a tab can contain multiple buffers, not the other way around. And guess what, no Vim plugin I know ever touched tabs. Probably because people not using Vim think the UX is all just in some arcane keybindings.
- mrighele 6y ago> because like many other modern apps they are convinced I only want to switch tabs in a seemingly random order(instead of, you know, the order that's literally shown on screen), If you mean the behavior of Ctrl-Tab, yes, that's confusing for me too. But you can switch using the order shown on screen though, by using Alt-Left / Alt-Right.
- sime2009 6y agoThe general problem with these kinds of TUI apps isn't the shortcuts but the complete lack of discoverability of the commands and their shortcuts. The expectation that people have to go and the read the documentation and then memorise the shortcuts is ridiculous. GUIs for decades have demonstrated practical ways of making commands discoverable and also teaching users the keyboard shortcuts. All without having to ask people to RTFM. It is a pity that so many TUI apps haven't learnt the same lessons. There is a reason why Nano became such a popular default editor for email. The shortcuts are printed at the bottom of the screen(!) I hope more TUI apps pick up on the idea of the command palette though. It is a fast and keyboard friendly way of improving usability.
- renox 6y agoGood GUIs can be discoverable yes, but what about about Windows XP's file explorer shift right-click option (to make reappear 'Open with..'), Windows 10 right click on the 'start' menu? Do you find these things discoverable? The truth is that being pretty/fashionable matter more than discoverability..
- ropeladder 6y agoIt's not about being flashy. Those Windows commands are hidden precisely because they are for power users and Microsoft presumably thinks that average users don't want or need them. Which is a whole different can of worms.
- renox 6y agoThese commands should be also provided behind an 'advanced' submenu which would make them both discoverable AND not used by default by normal users.
- spookthesunset 6y agoIf tmux or screen had two rows worth of UX like nano does... it’d use them way more. I see the value of those programs but they are so not core to my workflow that I can never bother to remember the keyboard shortcuts. Ubuntu has some wrapper for tmux called byobu that does exactly this. It is the only time I really enjoy using this sort of tool. https://www.byobu.org/ https://www.byobu.org/
- raverbashing 6y agoCompletely agree. I love these tools, but the usability (and defaults) are awful Not to mention they all seem to come from an "old unix" perspective, with weird combinations and few use of bound combinations Hence why I prefer keeping my terminal tabs not on tmux but on iTerm (or your favourite terminal emulator - except for the Gnome one)
- easytiger 6y agoThats completely unfair to the point of being plain wrong. For a start tmux does have similar interfaces, ability to search all panes etc. Also comparing tmux to an ide is also possible wrong.
- swiley 6y agoI've been messing with Emacs lately, tab completion in M-x is amazing. The editor is surprisingly discoverable because of its "minibuffer" command window.
- y04nn 6y agoTmux is a great replacement for screen, but it's true that keyboard shortcuts are atrocious, I think every shortcuts that I use daily are remapped in my tmux.conf. Also when I copy in tmux it automatically change the clipboard and vice-versa, very useful to copy errors or paste snipped of code from internet. And with 'mode-keys vi' it's even faster.
- ryanmarsh 6y agoSame, I thought I'd be cool and learn tmux (after 25 years of Linux/Unix use). After a year I realized it's just easier to learn the keyboard shortcuts of my favorite terminal client and tile the windows.
- king_magic 6y agoI've had no trouble reading a guide to tmux's keyboard shortcuts and then using them.