To easily remember vertical and horizontal splits, just add this bind | split-window -h bind _ split-window -v Then, you can split the window with a visual reminder of where you want the divider.
I have single binding that splits the pane over the longest axis, like bspwm does. No more need to think about which direction and which key binding I need.
Check out the tmux-pain-control plugin, which collects this suggestion and several other common pane navigation tips from the community. The only difference is that it uses `-` for normal horizontal split and `_` for "full width split".
lol - you may have reinvented the wheel there... thats what the defaults are meant to do (I agree its not that intuitive): double quotation (") looks like two things side by side and splits vertically, percent (%) is one thing over another and splits horizontally
Zellij has sane defaults, you might want to check that out. Changing defaults after the fact is not a good idea, since it's a breaking change for users that stuck to the default, which will alienate your existing user base.
i love when someone pick up something like vscode, doesnt learn it at all and goes to learn something else. you can do all that tmux stuff in vscode . also your video should display why tmux is good , and then if people want to, make a video how to setup, i dont understand the concept of this video at all :D
@@somerandomchannel382, VSCode comes from a company preferring to write proprietary code. Who knows why VSCode is OS. Well, at least there is the MS type of Telemetry in there. Remember, MS bought Github back in 2018 and they sunset (retired/ shelved) Atom at the end of 2022. Speaks volumes. Why have bloated IDE when can achieve your goals with something like tmux, gcc and gdb. All FOSS and from the community.
have always loved tmux, loving your extra config options that I haven't thought of before! Mouse support is a boon and has been part of my config since I learned about it, I also changed the vertical & horizontal split keybinds to the "[" and "-" keys respectively as they represent the direction of the split. I didn't realize tmux had its own package/plugin manager, that is really cool! Thanks for sharing!!
I've done 2 week test runs on both VIM with TMUX and EMACS. Both times I decided they were solutions to problems they created while also adding a ton of work for configuration and mental overhead remembering how it all works. For now, I've decided my zen is zero config. I can download whatever IDE I want, pull from Git and go. Maybe one day I'll dedicate a longer period of time to trying it out, maybe a month or two because I think having everything set up like this is just cool. Thanks for the video, if I ever do try again I'll reference this.
Start with VIM plug-in for the ide/editor you already use. Learn VIM motions. It won’t be smooth at the beginning but then the magic happens. After that you’ll just want to migrate to NeoVIM. It’s natural. :)
@@wawbagel thanks for the recommendation. I'll give it a try. I heavily use home, end, and Ctrl+arrows for fast horizontal movement which is already pretty efficient. I'll have to see what it feels like.
Exactly how I feel. I am more than comfortable with the cli but unless you have a potato computer that can't handle electron apps; there are many great IDEs out there.
@@rallisf1 believe me, I was all in when it comes to IntelliJ and stuff like that for years. I use neovim exclusively these days. No mouse usage, no wrist pain, buttery smooth workflow. It’s amazing.
Liked, subscribed and saved to my playlist. Currently trying my best to learn vim keybindings, tmux, shell scripting while juggling through college courses. I couldn't be more thankful for this video. Hope you upload as frequently as possible. Cheers!
I wish I had gone to the 'trouble' of learning vim motions with a terminal based workflow when I was taking my college courseload for CS. The MVP skill I learned during THAT process (and am still learning) is that slowing down and reading docs carefully is the fastest path to solving your problems. Not stack overflow and google searches. Going through the vim motions/terminal process slowed me down when coding allowing WHAT I was coding to fully sink in too. It just improves learning and absorption overall and I'd recommend ANY and all learners add it to their list of workflow improvements. Stick to it!
It would've taken me much longer to learn everything from scratch and implement this workflow, but following your method, I've now got a very sensible setup. Many thanks for sharing your hard work!
7 min and I love everything about the video, format, audio, narrative, visual and a good knowledge foundation, you got me, new subscriber here waiting for more content like this, keep the hard work because is definitely paying off 🎉
Thank you for sharing free knowledge! I started using tmux this year only to keep my vps' ssh sessions saved, then after little time I started using it for parallel tasks, but still only in the vps because it is headless... My local machine is running Windows and I use a lot of built-in helpers from IDE's when writing code, that leads me to lots of mouse interactivity, I didn't like much of the keybindings in tmux and was lazy to change it, after seeing this video I will try harder to use it for local terminal productivity! Great tips and thanks again for the config copy paste! Subscribed! edit: add comma, fix "interactivity"
Thanks for this! I'm actually coming from using byobu, which is a wrapper around either screen or tmux (as in, a configuration choice). It offers a bunch of F-key bindings that I've really liked, as alternatives to using the prefix every time. Things like using F2 for creating a new vertical split, or shift+F2 for a horizontal. Those things alone had me very hesitant to try switching to raw tmux, until I started having issues with re-attaching to sessions recently. And this video came about right in the perfect time to switch!
I had never used Tmux or Vim before stumbling across your channel. Decided to setup Tmux with Vim and use most of the settings you used in your video. Gotta say.... Tmux and Vim are very quickly growing on me. Thanks for the video and getting me into them!
Great little video on how to configure tmux. I've been using it for years but had never gone through the effort of making it "nice". This video prompted me to do it. Even though some of the configurations that you used didn't work for me this was a great framework.
Excellent video. I learned tmux many years ago, but I didn't know about the package manager or the neat vim integration. The only thing for me is that I learned tmux by reading the book `Tmux 2` by Brian P Hogan, and I really liked his key bindings, specially I decided to change prefix from Ctrl-b to Ctrl-a and switch in my keyboard the Ctrl and Tabs keys, in that way is much faster to type the Tmux commands, also his keybindings to split the window are more mnemonic, using ` -` and ` |` to split horizontally and vertically
great video. What really made tmux work for me is actually to ignore most of the functionality. I basically only use sessions and windows. I never use panes, copy mode or any other features. Having this limited feature set lets me use alt as a standalone prefix key. So i can navigate between windows with alt-h and alt-l, and i can navigate between windows with alt-j and alt-k. Its so much more ergonomic than having to prefix everything, especially when you want to quickly toggle between windows or sessions
Even without rebinding keys I find it easy to toggle switch between windows with _ctrl-b l_ and between panes with _ctrl-b ;_ . But I found some of the remaps shown in the video pretty useful and will probably adopt them.
Thanks a lot for sharing this config. I've been playing with Neovim and Tmux for almost a year now but being a dad with close to no free time so I never had a chance to optimize my configuration as much as I initially intended to (installed a meh theme and vim keybindings and called it a day). There are a lot of interesting things in your config : C-Space as the prefix sounds like a really good idea and being able to use C-HJKL to move from a Neovim split to a Tmux pane is a gamechanger. I've still no idea when I'll be able to try this out but it sure seems like you've made me save a lot of time. o/
I am using tmux for a while now. I just added rectangular select and split in current pane‘s directory to my config. I didn‘t even know that the latter was possible. Thank you.
I already use Tmux + neovim but still find this video useful. I didn't know about a few of the keybind changes. The change you made for copying in tmux looks very useful. Default is hard to remember because I don't use it a lot. That plugin to let you switch panes while in neovim will be great too. Thanks.
i'm a nano warrior when it comes to the terminal (i develop in vscode) but pretty much all the tmux config you showed off is amazing! especially that last one to spawn panes in cwd, that will save me hours of my life xD
I like your configuration so much. I added two plugins to my configuration: - tmux-ressurect: to save and restore my session - tmux-continuum: to automatically save and restore my session Now I have to watch your video on the chad neovim! Continue like this! You're awesome!
Awesome! I recently changed from a tiling window manager to Cinnamon, because I got tired of making scripts and custom keybindings for all features that Cinnamon offers out of the box. Tmux brings the tiling experience back in the terminal, where live most of the time. Your video gives me a kickstart for my own tmux setup. Thanks!
hmmm, i normally see people going from free float to tiling. And you are the opposite. Is there something special about Cinamon that make you switch to it?
@@nobeltnium Yes, I agree that it's not a usual move. And I really miss the automatic tiling. But a real desktop environment does so many things out of the box, that I previously needed shell scripts and extra shortcuts for. Managing different monitor setups automatically, managing the start up apps, automatically switch to head phones, and a lot more. I know this can all be done with i3 or bspwm as well, but each and every change in your config change needs to be handled by changing your dotfiles or shell scripts. I have the feeling that everything just runs more smoothly now. Also, I use Jetbrains Rider as my IDE, which isn't working nicely with tiling window managers. Apart from that, I am still missing the auto tiling and ctrl-arrow to switch between the windows.
@@janvanveldhuizen The only tiling i ever really use is Gnome (intergrated in Pop!OS and can be toggled between free float or tiling windows) . And it does every thing you mention above very well. Sound, multi display, graphics card you name it. Just plug and play, no fiddling with dot file or what so ever. Tbh it's the only tiling WM i use heavily till this day (i use i3 on my laptop, but rarely. And it doesn't have a speaker nor mic and i don't use multi display on it so idk how painful it will get to get them working). I recommend you try it if you haven't. I think it's just what you need. It's basically a DE with tiling on top of it
This is another awesome video to tweak my tmux experience and maximize the comfort of using it 🎉 Thank you for your effort and making the lives of developers better ❤
Great video. I was a user of tmux for many years but since I’ve switched to a Linux desktop I only use it remotely on my servers. My main work is simply done with the kitty terminal. No need to complicate this further. but if you need the remote feature, tmux is pretty neat.
I don't understand. I also use a Linux desktop, but I still use tmux. What's the problem with using Linux desktop and tmux? I have guake installed and set it to run tmux instead of bash so that I only need to press F12 to access tmux.
I appreciate the video, and I think you've done a great job with it. I've used tmux and vim, and still use vim bindings all the time today. In the end, I just think tmux, and a lot of terminal based IDE solutions are yak-shaving, and for the median person, retract value rather than adding it. VSCode provides 80% of what people need out of the box and takes no time at all to set up or think about. Reducing cognitive overhead (by not learning new programs etc.) is often a better solution to doing your work than trying to squeeze out marginal efficiency gains in code-per-minute. For me at least, even if i'm 10% more efficient in writing code, or some other metric, I don't really get much more done in a week or year, because coding efficiency is a small contributor to efficiency. Having clear goals, articulating what I want, etc., make more difference than anything related to coding ever could. Sorry for the rant, and I think you've done a great job with the video. I think for most people, if they like the aesthetic of using tmux, they should do it, but I don't think it will help people the way they secretly hope it will.
One of the biggest factors for me in using Tmux, Neovim and (sometimes) emacs is philosophical, more so than anything else. I personally prefer foss options where possible and tend to think they're all great projects. Not everyone thinks like I do of course, but Tmux still has had a massive impact on the way I write code. But then, I also have a workflow that I wouldnt be able to recreate in something like VSCode.
Very nice introduction to tmux, this helped me a lot setting it up. On macOS with Alacritty I had to make some minor adjustments, but with some digging around I got it to work perfectly. First, C-Space is used on mac to switch keyboard layouts, so either you have to unbind those or use a different prefix. Second, the lines at 09:10 didn't work for me to get the correct colors in NeoVim, instead what worked was: set -g default-terminal "screen-256color" set -ag terminal-overrides ",xterm-256color:RGB" But everything else worked great. Thanks. (PS: Above also works in iTerm2)
Thank you for sharing the changes! I'll be getting a Mac for on the go video editing in the near future so this will help me when I need to dip into a terminal
Man, I was going crazy not being able to figure out why C-b was working but C-Space was not. You really made my day way better. I just had to disable the Mac change keyboard layout shortcut. Thanks a lot :)!
Few suggestion... bind-key r command-prompt -p "Rename window: " "rename-window '%%'" # rename the window bind -n S-Right next bind -n S-Left prev # helps to move easily between session bind -n S-Up new-window # creates a new tmux tab set-option -g status-position top # when using nvim - the status bar on top on tmux looks good set -s set-clipboard on
Well most of the guides ive found were not mentioning about window index and yank (i need these). It seems they stuck at old conf using xclip and pbcopy. Good stuff
Another tip for people with non english keyboards. Characters like öäüéàè are never bound to anything and are very conveniently located. So you get free special keys at no cost. I use ä/ü for splitting vertically/horizontally.
Great video. One thing I've found useful in tmux is the ability to type into several panes at the same time. I have -y bound to "setw synchronize-panes". This is useful for managing multiple servers where (say) I want to "sudo apt upgrade" all of them at once.
Hey, just wanted to say that I really appreciate your videos. Your entire channel has been a blessing in the world of hours long videos without clear or concise structure.
Comming back to this vid, after using this config + some tweaks i have to say it sure feels natural as a vim user. i forgot some that some of the settings were changed because it just felt so natural. Well done!
4:12 I started changing the prefix to ^G as that is less likely to interfere with other input for me. It's also extremely central, and only one key up from the default. Reminder that ^B is often used as backspace in readline based editing, as well as some editors that don't use vim bindings.
I’ve been using ^S and ^Q for about 12 years (corresponding to outer and inner/remote tmux sessions), as those bindings turn echo off and back on again, respectively, something I very rarely want to do. I accompany this with the appropriate config in my shell startup files to disable that tty feature.
This video actually gives me inspiration and enthusiasm for coding. I left aside my preconception about programming can be only in Microsoft products after started to use Nvim + Tmux combination. I hate Microsoft monopoly at software development so this kind of projects such as tmux, noevim, nvchad etc. gives me the feel of freedom.
I've been pretty happy with gnu screen + mosh, for persistent remote terminals I can connect to from anywhere, optionally auto-reconnecting with mosh. Plus Vim, of course. And a heavily customized zsh. I haven't really wanted sub-window management inside a single window though, since I have features like that built in to my X11 window manager... Sawfish with a bunch of customization to handle tabbed windowing and tiling and keyboard navigation and stuff. But someday, perhaps I'll finally switch from screen to tmux. Edit: Er, for non-remote use... I don't bother. I routinely have a few hundred shells open, and that's way too much to be usable in screen or tmux. I only use screen/tmux for a small handful of tasks where I need access to a single session from more than one host. Sawfish does the rest, since it handles hundreds of windows easily.
This is very similar to my setup back in the day. Using vim like navigstion to scroll through sessions, panes, and windows is so much easier than any other multi view management. Detaching and attaching sessions, and fullscreen and you really could code on any size screen. Still prefer it over VS Code but VS Code has some specific performant features and perks I need more these days. I hope good copilot and ai integrations for vim come in soon.
I used it, but later I found that tmuxp is a better choice. It supports layouts, naming, environments, etc. If for example you are working with python, it can easily open windows with specific venv activated (tmux-resurrect does not support such options).
Great video. I had been using Tmux for a while but dropped it on my recent install of Ubuntu because I couldn't get the colors fixed. But now I finally have it working thanks to this video! Keep up de awesome content!
The best part to me and the real benefit of such a config over an IDE is that it works seamlessly over SSH I move around a lot and code from different computers sometimes But being able to open one terminal, SSH into my server at home and start coding in my own environment from any PC really is a godsend Not to mention it means I don't have to reboot when I'm coding for Linux only for my friends to want to play something on windows 5 minutes later
Emacs has had this sort of thing built-in for quite some time: split-window-below and split-window-right, ordinarily bound to C-x 2 and C-x 3, respectively.
I'm tmux beginner, and this video is well put. thank you! But I noticed that s is like w, the s just make the tree folded but you can use right arrow to open sessions > windows and navigate.
Not sure I understand how this changes anything, except for the part where you have to spend a tons of time to turn the editor into a brittle vscode with the VIM plugin 🤣
@@summerWTFE the only added value i see here is the remote editing with SSH. but i dont see any other benefit? I love terminal as much as the next guy but i am perfectly fine with VScode
Resource usage, ssh and pure keyboard control is another consideration. But if VSCode works for you, there's no need to change it. I personally dislike like electron apps and prefer FOSS when possible.
@@dreamsofcode i dont mind FOSS. I just mind my experience feels fast. I used Webstorm for 4 years before switching to vscode because webstorm was a resource HOG! And yeah... i feel you on the electrons apps. I work with mongoDB and their db explorer is an electron app and OMG. It so bad. But i blame the devs not really the software. Vscode runs smooth and doesnt eat up much even when i have open a workspace of a fullstack platform using both vue and python.
Oh this came in a good time for me. I want to get into tmux so much. I found that figuring out the right bindings at all levels is a pain fo me. WM bindings + Vim + Terminal Emulator Bindings + Tmux. And then some standard plugin bindings. Geez.
Unconvinced. Make a 13:30 long well presented video on this. No but really can you provide just a few bulletpoints on why? I'm in the situation of trying to move to a better development environment and the list of things to evaluate is constantly growing.
Terminator has a completely different usecase. Tmux is a terminal multiplexer and session manager. Terminator is a terminal emulator with some of tmux's features built in. But they are totally different programs. You could even use tmux inside of terminator.
I also use terminator, but only because it has simple bindings for terminal splitting, tmux would definitely be a better choice in the long run if you are doing a terminal-based developer workflow
This isn’t a good comparison. TMUX is a multiplexer you can use when SSHing into a server etc. Terminator is an actual gui terminal emulator application
I watched your video on nvchad, had some issues with it so i spent hours configuring my own config and made a fully functioning thing thats comparible with vscode that also has copilot, you got me into neovim and with nvchad i was able to understand the basics so tysm dude you got me into neovim and now tmux
I felt inspired to update my tmux config which I didn't touch since 2.2a. Back in the day, there were virtually no useful plugins for tmux, but now there's a whole ecosystem!. I took a lot of ideas from this video. Thanks!. btw: that catpuccin status bar theme is 🔥.
Thank you so much. I used Tmux before, but the Mouse Scroll and Green Bar were deal breaking issues for me, so I stoped using it. Now I makes sence to go back, and I might finally be able to migrate fully to Nvim Thanks for the very well made video
Amazing! I used to use byobu but it's too opinionated and conflicts a lot with my LunarVim config so now I just use the neovim buffer split feature. Like others, I would change the split window key melodies to v and s
A very well organised video, I wasn't expecting that you would go over tmux , I think this video should be the perfect starting point for anyone starting with tmux , thank you for your hardword
Yeah sweet instruction. I’ve been using Tmux for years. This suggested some different keybindings to mine that I may try out. Install Tmux resurrect too. That way if you shutdown the station, your session can be restored.
I know this video is very old ... but if you're seeing this I wanted to suggest that you should always tell something about the software that the video is about (tmux for this one), so that the uninitiated people who are just curious to learn something new can follow along the video. Thanks for the video!
I want to recommend tmuxinator, which manages tmux sessions. If I want to start the frontend project "foo" i'm currently working on, `tmuxinator foo` could start a tmux session with three windows, one for nvim, one for the development server (e.g. vite), one for running tests in watch mode. It will also set the working directory of the session, so that new windows will spawn in the right directory. You can also set layouts, create multiple panes per window and much more. For me, the cwd + pre-defined windows is enough :D
I’ve been using the integrated tmux implementation of iTerm2 for so long I forgot how to use tmux itself! This will be super helpful as I start to use Linux more and more in my work.
Great video! Very smooth animations and great iconography. I've used tmux for a while until I had problems with ligatures or wayland with multiple terminal emulators, so I picked up wezterm which has it's own multiplexer, highly recommend checking it out! Haven't used tmux since I got used to it's own multiplexer.
Old tmux user here! I recently changed my terminal multiplexer from tmux to zellij, I find zellij more modern and easier to learn. Tmux stills a good gold standard for remote servers.
Tmux has a great Integration with iterm2, and I used it to remember (and keep permanently running) all the open windows when sshing into the server I was working on. That's one of the best uses ever. Especially because iterm2 allows you to manage all windows and panes in the gui, instead of remembering dozens of commands. But for development I rather use vs code windows split up on my ultra ultra wide curved monitor, especially since the commands are actual written out
I really enjoy those videos thanks to you I have setup my tmux and nvchad. I feel 10x more motivated to wake up and work on my rust rpg game. It's nothing special I just enjoy working on it for fun to add to my skills and use it for interviews as a deeply developed application.
Liked and Subscribed!, this is some real good quality content and super educational, consider me a fan of your work my man XD Best of wishes from Mexico City (:
Been walking around tmux for years and decided to smash together a little tmux config Used nothing from this video but it was a sorta final signal for me that I should try 😂
Thanks for these videos. This convinced me to try to start using TMUX instead of splitting and making tabs in KDE Konsole UI. I have tried using GNU Screen in the past, and maybe it supports similar features, but tmux seems more interesting with the plugin and customization support! One of my biggest pain points with using screen was always getting long bits of text into my main desktop clipboard. but the fact I can enter copy mode, use PgUp to copy to a buffer, then save that buffer to a txt file easily could come in quite handy. I need to try to break my habit of always using the mouse.
Wow also just realized I can do PgUp and it will immediately enter copy mode and scroll up. So I can Ctrl Space then PgUp, PgUp, etc. really quickly. Not sure if that's native or part of tmux sensible but very nice.
This video actually seems organized enough that someone like me who has never used TMUX could actually try to get it up and running. Thanks, mate!
Thank you! Glad you enjoyed it!
same feeling, I might give tmux a try just because of this.
tmux for the peasants
To easily remember vertical and horizontal splits, just add this
bind | split-window -h
bind _ split-window -v
Then, you can split the window with a visual reminder of where you want the divider.
I do
bind \\ split-window -h
bind - split-window -v
just so I don't need to press shift,
I have single binding that splits the pane over the longest axis, like bspwm does. No more need to think about which direction and which key binding I need.
Check out the tmux-pain-control plugin, which collects this suggestion and several other common pane navigation tips from the community. The only difference is that it uses `-` for normal horizontal split and `_` for "full width split".
@@LPFan33How did you do that?
lol - you may have reinvented the wheel there... thats what the defaults are meant to do (I agree its not that intuitive): double quotation (") looks like two things side by side and splits vertically, percent (%) is one thing over another and splits horizontally
You should do a pull request for your better setup as a sane default. Open source needs better defaults in general to make and keep users.
Zellij has sane defaults, you might want to check that out. Changing defaults after the fact is not a good idea, since it's a breaking change for users that stuck to the default, which will alienate your existing user base.
i love when someone pick up something like vscode, doesnt learn it at all and goes to learn something else. you can do all that tmux stuff in vscode . also your video should display why tmux is good , and then if people want to, make a video how to setup, i dont understand the concept of this video at all :D
@@somerandomchannel382 this should probably be a main comment?
@@somerandomchannel382, VSCode comes from a company preferring to write proprietary code. Who knows why VSCode is OS. Well, at least there is the MS type of Telemetry in there. Remember, MS bought Github back in 2018 and they sunset (retired/ shelved) Atom at the end of 2022. Speaks volumes.
Why have bloated IDE when can achieve your goals with something like tmux, gcc and gdb. All FOSS and from the community.
@@zizlog_soundNothing wrong with telemetry, you irrational, hysterical NPC.
have always loved tmux, loving your extra config options that I haven't thought of before! Mouse support is a boon and has been part of my config since I learned about it, I also changed the vertical & horizontal split keybinds to the "[" and "-" keys respectively as they represent the direction of the split.
I didn't realize tmux had its own package/plugin manager, that is really cool!
Thanks for sharing!!
That's awesome to hear! I'm glad I got to share something new with you.
I've done 2 week test runs on both VIM with TMUX and EMACS. Both times I decided they were solutions to problems they created while also adding a ton of work for configuration and mental overhead remembering how it all works. For now, I've decided my zen is zero config. I can download whatever IDE I want, pull from Git and go.
Maybe one day I'll dedicate a longer period of time to trying it out, maybe a month or two because I think having everything set up like this is just cool. Thanks for the video, if I ever do try again I'll reference this.
Honestly. Only use tmux for running an application in the background instead of systemd or compiling for runtime use.
Start with VIM plug-in for the ide/editor you already use. Learn VIM motions. It won’t be smooth at the beginning but then the magic happens. After that you’ll just want to migrate to NeoVIM. It’s natural. :)
@@wawbagel thanks for the recommendation. I'll give it a try. I heavily use home, end, and Ctrl+arrows for fast horizontal movement which is already pretty efficient. I'll have to see what it feels like.
Exactly how I feel. I am more than comfortable with the cli but unless you have a potato computer that can't handle electron apps; there are many great IDEs out there.
@@rallisf1 believe me, I was all in when it comes to IntelliJ and stuff like that for years. I use neovim exclusively these days. No mouse usage, no wrist pain, buttery smooth workflow. It’s amazing.
Liked, subscribed and saved to my playlist. Currently trying my best to learn vim keybindings, tmux, shell scripting while juggling through college courses.
I couldn't be more thankful for this video. Hope you upload as frequently as possible. Cheers!
Thank you! I appreciate the feedback.
Good luck ! Learn bits by bits, and make it manageable for yourself~
thoughtbot on RUclips has some stuff from the Boston Vim Conference
You won't regret it. But I'm sure you already know that.
I wish I had gone to the 'trouble' of learning vim motions with a terminal based workflow when I was taking my college courseload for CS. The MVP skill I learned during THAT process (and am still learning) is that slowing down and reading docs carefully is the fastest path to solving your problems. Not stack overflow and google searches. Going through the vim motions/terminal process slowed me down when coding allowing WHAT I was coding to fully sink in too. It just improves learning and absorption overall and I'd recommend ANY and all learners add it to their list of workflow improvements. Stick to it!
Amazing video as always! I was using tmux but didn't know about the plugins that you can install, my workflow just improved a lot with this!
Yay! Hopefully it adds some value :)
It would've taken me much longer to learn everything from scratch and implement this workflow, but following your method, I've now got a very sensible setup. Many thanks for sharing your hard work!
7 min and I love everything about the video, format, audio, narrative, visual and a good knowledge foundation, you got me, new subscriber here waiting for more content like this, keep the hard work because is definitely paying off 🎉
Thank you for the lovely feedback!
I can only repeat what you say, another sub here
Thank you for sharing free knowledge!
I started using tmux this year only to keep my vps' ssh sessions saved, then after little time I started using it for parallel tasks, but still only in the vps because it is headless... My local machine is running Windows and I use a lot of built-in helpers from IDE's when writing code, that leads me to lots of mouse interactivity, I didn't like much of the keybindings in tmux and was lazy to change it, after seeing this video I will try harder to use it for local terminal productivity!
Great tips and thanks again for the config copy paste! Subscribed!
edit: add comma, fix "interactivity"
Thanks for this! I'm actually coming from using byobu, which is a wrapper around either screen or tmux (as in, a configuration choice). It offers a bunch of F-key bindings that I've really liked, as alternatives to using the prefix every time. Things like using F2 for creating a new vertical split, or shift+F2 for a horizontal.
Those things alone had me very hesitant to try switching to raw tmux, until I started having issues with re-attaching to sessions recently. And this video came about right in the perfect time to switch!
Have you made the switch from byobu yet? I'm interested to hear whether it's been a worthwhile change for you.
@@richardgraham3537 I have, and it has - I switched to a minimalist theme that makes it gorgeous
I had never used Tmux or Vim before stumbling across your channel. Decided to setup Tmux with Vim and use most of the settings you used in your video. Gotta say.... Tmux and Vim are very quickly growing on me. Thanks for the video and getting me into them!
Great little video on how to configure tmux. I've been using it for years but had never gone through the effort of making it "nice". This video prompted me to do it. Even though some of the configurations that you used didn't work for me this was a great framework.
Great video, the config looks awesome! (and damn, nice editing)
Thank you for the feedback! I love your videos as well.
Excellent video. I learned tmux many years ago, but I didn't know about the package manager or the neat vim integration. The only thing for me is that I learned tmux by reading the book `Tmux 2` by Brian P Hogan, and I really liked his key bindings, specially I decided to change prefix from Ctrl-b to Ctrl-a and switch in my keyboard the Ctrl and Tabs keys, in that way is much faster to type the Tmux commands, also his keybindings to split the window are more mnemonic, using ` -` and ` |` to split horizontally and vertically
i use tmux with screen, amd screen needs ctrl-a
@@mcfnord interesting, but why would you use tmux and screen, my understanding is that they serve the same purpose
@@rayanez I'm told here that tmux can detach a process, so screen might not be needed anymore.
great video. What really made tmux work for me is actually to ignore most of the functionality. I basically only use sessions and windows. I never use panes, copy mode or any other features. Having this limited feature set lets me use alt as a standalone prefix key. So i can navigate between windows with alt-h and alt-l, and i can navigate between windows with alt-j and alt-k. Its so much more ergonomic than having to prefix everything, especially when you want to quickly toggle between windows or sessions
That's awesome! For me, I love panes too much on larger displays, but I can see how this works amazingly on a laptop.
Big pane fan here, but really wasn't aware of multiple windows in multiple sessions.
Even without rebinding keys I find it easy to toggle switch between windows with _ctrl-b l_ and between panes with _ctrl-b ;_ .
But I found some of the remaps shown in the video pretty useful and will probably adopt them.
I had no idea what tmux was until I saw this. Now I've copied all (except for gruvbox colors) and love it. Many, many thanks!
Thanks a lot for sharing this config. I've been playing with Neovim and Tmux for almost a year now but being a dad with close to no free time so I never had a chance to optimize my configuration as much as I initially intended to (installed a meh theme and vim keybindings and called it a day).
There are a lot of interesting things in your config : C-Space as the prefix sounds like a really good idea and being able to use C-HJKL to move from a Neovim split to a Tmux pane is a gamechanger.
I've still no idea when I'll be able to try this out but it sure seems like you've made me save a lot of time. o/
I am using tmux for a while now. I just added rectangular select and split in current pane‘s directory to my config. I didn‘t even know that the latter was possible. Thank you.
I already use Tmux + neovim but still find this video useful. I didn't know about a few of the keybind changes. The change you made for copying in tmux looks very useful. Default is hard to remember because I don't use it a lot. That plugin to let you switch panes while in neovim will be great too. Thanks.
Reporting back after using tmux for a few months. This video has changed how I work for the better. Thank you!
i'm a nano warrior when it comes to the terminal (i develop in vscode) but pretty much all the tmux config you showed off is amazing! especially that last one to spawn panes in cwd, that will save me hours of my life xD
I used to be a vim inside vscode kinda guy but after trying out neovim; it's so much faster and nicer
I like your configuration so much.
I added two plugins to my configuration:
- tmux-ressurect: to save and restore my session
- tmux-continuum: to automatically save and restore my session
Now I have to watch your video on the chad neovim!
Continue like this! You're awesome!
Awesome! I recently changed from a tiling window manager to Cinnamon, because I got tired of making scripts and custom keybindings for all features that Cinnamon offers out of the box. Tmux brings the tiling experience back in the terminal, where live most of the time. Your video gives me a kickstart for my own tmux setup. Thanks!
You're very welcome!
hmmm, i normally see people going from free float to tiling. And you are the opposite. Is there something special about Cinamon that make you switch to it?
@@nobeltnium Yes, I agree that it's not a usual move. And I really miss the automatic tiling. But a real desktop environment does so many things out of the box, that I previously needed shell scripts and extra shortcuts for. Managing different monitor setups automatically, managing the start up apps, automatically switch to head phones, and a lot more.
I know this can all be done with i3 or bspwm as well, but each and every change in your config change needs to be handled by changing your dotfiles or shell scripts. I have the feeling that everything just runs more smoothly now.
Also, I use Jetbrains Rider as my IDE, which isn't working nicely with tiling window managers.
Apart from that, I am still missing the auto
tiling and ctrl-arrow to switch between the windows.
@@janvanveldhuizen The only tiling i ever really use is Gnome (intergrated in Pop!OS and can be toggled between free float or tiling windows) . And it does every thing you mention above very well. Sound, multi display, graphics card you name it. Just plug and play, no fiddling with dot file or what so ever. Tbh it's the only tiling WM i use heavily till this day (i use i3 on my laptop, but rarely. And it doesn't have a speaker nor mic and i don't use multi display on it so idk how painful it will get to get them working).
I recommend you try it if you haven't. I think it's just what you need. It's basically a DE with tiling on top of it
@@nobeltnium pop os is a good idea, actually. I'll give it a try.
This is honestly the best tmux setup anyone has posted, thank you
This is another awesome video to tweak my tmux experience and maximize the comfort of using it 🎉 Thank you for your effort and making the lives of developers better ❤
I'm glad to hear you liked it!
Great video. I was a user of tmux for many years but since I’ve switched to a Linux desktop I only use it remotely on my servers. My main work is simply done with the kitty terminal. No need to complicate this further. but if you need the remote feature, tmux is pretty neat.
I don't understand. I also use a Linux desktop, but I still use tmux. What's the problem with using Linux desktop and tmux? I have guake installed and set it to run tmux instead of bash so that I only need to press F12 to access tmux.
I appreciate the video, and I think you've done a great job with it. I've used tmux and vim, and still use vim bindings all the time today. In the end, I just think tmux, and a lot of terminal based IDE solutions are yak-shaving, and for the median person, retract value rather than adding it. VSCode provides 80% of what people need out of the box and takes no time at all to set up or think about. Reducing cognitive overhead (by not learning new programs etc.) is often a better solution to doing your work than trying to squeeze out marginal efficiency gains in code-per-minute. For me at least, even if i'm 10% more efficient in writing code, or some other metric, I don't really get much more done in a week or year, because coding efficiency is a small contributor to efficiency. Having clear goals, articulating what I want, etc., make more difference than anything related to coding ever could.
Sorry for the rant, and I think you've done a great job with the video. I think for most people, if they like the aesthetic of using tmux, they should do it, but I don't think it will help people the way they secretly hope it will.
One of the biggest factors for me in using Tmux, Neovim and (sometimes) emacs is philosophical, more so than anything else.
I personally prefer foss options where possible and tend to think they're all great projects. Not everyone thinks like I do of course, but Tmux still has had a massive impact on the way I write code.
But then, I also have a workflow that I wouldnt be able to recreate in something like VSCode.
I used tmux for years, but I never got into configuring it. Thanks for improving my workflow
Very nice introduction to tmux, this helped me a lot setting it up.
On macOS with Alacritty I had to make some minor adjustments, but with some digging around I got it to work perfectly.
First, C-Space is used on mac to switch keyboard layouts, so either you have to unbind those or use a different prefix.
Second, the lines at 09:10 didn't work for me to get the correct colors in NeoVim, instead what worked was:
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
But everything else worked great. Thanks.
(PS: Above also works in iTerm2)
Thank you for sharing the changes! I'll be getting a Mac for on the go video editing in the near future so this will help me when I need to dip into a terminal
Man, I was going crazy not being able to figure out why C-b was working but C-Space was not. You really made my day way better. I just had to disable the Mac change keyboard layout shortcut. Thanks a lot :)!
Few suggestion...
bind-key r command-prompt -p "Rename window: " "rename-window '%%'" # rename the window
bind -n S-Right next
bind -n S-Left prev # helps to move easily between session
bind -n S-Up new-window # creates a new tmux tab
set-option -g status-position top # when using nvim - the status bar on top on tmux looks good
set -s set-clipboard on
Well most of the guides ive found were not mentioning about window index and yank (i need these). It seems they stuck at old conf using xclip and pbcopy. Good stuff
I'm glad it helped!
this video is perfect! i learned a LOT about tmux in only 13 minutes. I never saw tmux before, but now I'm obsessed! thank you ❤
Great video! I've always wanted to start using tmux, and this video definitely helps ease into it with some great styling tips. Thank you!
Another tip for people with non english keyboards. Characters like öäüéàè are never bound to anything and are very conveniently located. So you get free special keys at no cost. I use ä/ü for splitting vertically/horizontally.
Great video. One thing I've found useful in tmux is the ability to type into several panes at the same time. I have -y bound to "setw synchronize-panes". This is useful for managing multiple servers where (say) I want to "sudo apt upgrade" all of them at once.
Hey, just wanted to say that I really appreciate your videos. Your entire channel has been a blessing in the world of hours long videos without clear or concise structure.
Comming back to this vid, after using this config + some tweaks i have to say it sure feels natural as a vim user. i forgot some that some of the settings were changed because it just felt so natural. Well done!
4:12 I started changing the prefix to ^G as that is less likely to interfere with other input for me. It's also extremely central, and only one key up from the default.
Reminder that ^B is often used as backspace in readline based editing, as well as some editors that don't use vim bindings.
^G is good. You're correct, that's the main reason why I rebind from ^B. Space for me is a similar reason as G but just down one :)
I’ve been using ^S and ^Q for about 12 years (corresponding to outer and inner/remote tmux sessions), as those bindings turn echo off and back on again, respectively, something I very rarely want to do. I accompany this with the appropriate config in my shell startup files to disable that tty feature.
I eventually come to "back quote" as prefix
This video actually gives me inspiration and enthusiasm for coding. I left aside my preconception about programming can be only in Microsoft products after started to use Nvim + Tmux combination. I hate Microsoft monopoly at software development so this kind of projects such as tmux, noevim, nvchad etc. gives me the feel of freedom.
I've been pretty happy with gnu screen + mosh, for persistent remote terminals I can connect to from anywhere, optionally auto-reconnecting with mosh. Plus Vim, of course. And a heavily customized zsh. I haven't really wanted sub-window management inside a single window though, since I have features like that built in to my X11 window manager... Sawfish with a bunch of customization to handle tabbed windowing and tiling and keyboard navigation and stuff. But someday, perhaps I'll finally switch from screen to tmux.
Edit: Er, for non-remote use... I don't bother. I routinely have a few hundred shells open, and that's way too much to be usable in screen or tmux. I only use screen/tmux for a small handful of tasks where I need access to a single session from more than one host. Sawfish does the rest, since it handles hundreds of windows easily.
I’ve been using tmux for years and I’ve never once considered customizing it. I’m gonna have to try this.
This is very similar to my setup back in the day. Using vim like navigstion to scroll through sessions, panes, and windows is so much easier than any other multi view management. Detaching and attaching sessions, and fullscreen and you really could code on any size screen. Still prefer it over VS Code but VS Code has some specific performant features and perks I need more these days. I hope good copilot and ai integrations for vim come in soon.
We have copilot for Neovim 😎
It's pretty good as well
This tmux config is truly zenful, a blessing indeed.
I think tmux-resurrect is one of the best plugins to have.
I've played with it but yet to integrate it into my workflow (I sometimes like a clean slate). I may have to give it another go though!
I used it, but later I found that tmuxp is a better choice. It supports layouts, naming, environments, etc. If for example you are working with python, it can easily open windows with specific venv activated (tmux-resurrect does not support such options).
@@rozarioagro5532 I shall give it a go!
superb this is my first time running tmux on terminal and I was able to follow through and get things configured. thank you for your help.
finally a modern well produced sensible tmux walkthrough. thanks!
Thank you!
Thanks for this! Small correction: 4:57 ➠ + % = split pane vertically, + " = split pane horizontally
growing up is just rawdogging the terrible keybindings in tmux and vim.
Great video. I had been using Tmux for a while but dropped it on my recent install of Ubuntu because I couldn't get the colors fixed. But now I finally have it working thanks to this video! Keep up de awesome content!
That's great to hear! Thank you for the feedback!
RIP Vim creator, he passed away recently.
The best part to me and the real benefit of such a config over an IDE is that it works seamlessly over SSH
I move around a lot and code from different computers sometimes
But being able to open one terminal, SSH into my server at home and start coding in my own environment from any PC really is a godsend
Not to mention it means I don't have to reboot when I'm coding for Linux only for my friends to want to play something on windows 5 minutes later
Emacs has had this sort of thing built-in for quite some time: split-window-below and split-window-right, ordinarily bound to C-x 2 and C-x 3, respectively.
I really like emacs, but I've always struggled with elisp and the shell modss.
Evil mode does make it more viable however.
I'm tmux beginner, and this video is well put. thank you! But I noticed that s is like w, the s just make the tree folded but you can use right arrow to open sessions > windows and navigate.
Great video. Imagine how long took to make those animations
Thank you!
Thanks for teaching me tmux, a program that had laid dormant on my computer for many years, waiting to be used.
May it lay dormant no longer!
Not sure I understand how this changes anything, except for the part where you have to spend a tons of time to turn the editor into a brittle vscode with the VIM plugin 🤣
Digital hipsters
Probably a JavaScript coder that uses right click to copy.
@@summerWTFE the only added value i see here is the remote editing with SSH. but i dont see any other benefit? I love terminal as much as the next guy but i am perfectly fine with VScode
Resource usage, ssh and pure keyboard control is another consideration. But if VSCode works for you, there's no need to change it. I personally dislike like electron apps and prefer FOSS when possible.
@@dreamsofcode i dont mind FOSS. I just mind my experience feels fast. I used Webstorm for 4 years before switching to vscode because webstorm was a resource HOG! And yeah... i feel you on the electrons apps. I work with mongoDB and their db explorer is an electron app and OMG. It so bad. But i blame the devs not really the software. Vscode runs smooth and doesnt eat up much even when i have open a workspace of a fullstack platform using both vue and python.
Great tips. I also find the “resurrect” plug-in very handy.
I need to give it another go!
Anyone is zellij fan here
zellij is the best! I don't know why one would choose tmux over it.
There's a few of you in the comments. I see y'all and going to give it a try.
Yeah I switched to it a couple of months ago, it's a lot of fun
I love zellij keybinds veing so simple to remember
I try zellij but it conflict keymap in Macos then I still use tmux
Oh this came in a good time for me. I want to get into tmux so much.
I found that figuring out the right bindings at all levels is a pain fo me.
WM bindings + Vim + Terminal Emulator Bindings + Tmux. And then some standard plugin bindings. Geez.
Zellij
I did not know tmux could do all of that. Thanks for sharing.
Terminator is far better and more user-friendly
Unconvinced. Make a 13:30 long well presented video on this.
No but really can you provide just a few bulletpoints on why? I'm in the situation of trying to move to a better development environment and the list of things to evaluate is constantly growing.
Terminator has a completely different usecase.
Tmux is a terminal multiplexer and session manager.
Terminator is a terminal emulator with some of tmux's features built in. But they are totally different programs. You could even use tmux inside of terminator.
I also use terminator, but only because it has simple bindings for terminal splitting, tmux would definitely be a better choice in the long run if you are doing a terminal-based developer workflow
This isn’t a good comparison. TMUX is a multiplexer you can use when SSHing into a server etc. Terminator is an actual gui terminal emulator application
@@spencerwilson-softwaredeve6384 you can just remap tmux, i use | and - keys as it makes sense
Set true color: set-option -sa terminal-overrides ',xterm*:Tc' - This is very helpful. Thanks!
Started using tmux after seeing this video. AMAZING. Using it for pairing now, love it.
I watched your video on nvchad, had some issues with it so i spent hours configuring my own config and made a fully functioning thing thats comparible with vscode that also has copilot, you got me into neovim and with nvchad i was able to understand the basics so tysm dude you got me into neovim and now tmux
All these little navigation quality of life plugins are great! Thanks for bringing them to my attention
Been using tmux with byobu for a while and I didn't know about the pane_current_path option. VERY COOL!!!
Thank you for making this video.
Thank you for the feedback! I appreciate it a lot.
I felt inspired to update my tmux config which I didn't touch since 2.2a. Back in the day, there were virtually no useful plugins for tmux, but now there's a whole ecosystem!. I took a lot of ideas from this video. Thanks!. btw: that catpuccin status bar theme is 🔥.
that C-Space binding saved my fingers. thank you
Thanks. That was a really helpful startup guide for tmux. I can't live without it!
Thank you! I appreciate that 🙏
@@dreamsofcode Are there any plans for a video on a good neovim setup for Python?
@@devbites77 there is! I've got a Go one coming out next, but python will be the following one I do in the VIM series
This is so cool! I spent the whole day setting up my tmux. You know what? This is brilliant!!! Thanks a lot for inspiring me!!
I'm really glad to hear that!
basically the same config I have, very minimal. but I was able to pick up a couple additional tips I didn't have. very well done.
Glad it helped!
Great video! I used it to configure my tmux. I especially like the vim bindings for yanking text from the terminal.
Learned some good tips. The base-index issue has always bugged me, that's the first thing I changed. Thanks.
I'm glad it helped!
Thank you so much. I used Tmux before, but the Mouse Scroll and Green Bar were deal breaking issues for me, so I stoped using it. Now I makes sence to go back, and I might finally be able to migrate fully to Nvim
Thanks for the very well made video
Thank you for watching! I'm glad I helped someone get away from the horrible green bar 😅😅
I used to use tmux all the time but never realized it was this powerful! This is awesome!
It's really useful! The plugins make it awesome as well.
Amazing! I used to use byobu but it's too opinionated and conflicts a lot with my LunarVim config so now I just use the neovim buffer split feature. Like others, I would change the split window key melodies to v and s
A very well organised video, I wasn't expecting that you would go over tmux , I think this video should be the perfect starting point for anyone starting with tmux , thank you for your hardword
Litterally got started with tmux as of yesterday. Perfect timing for this vid! Thanks!
That's awesome! I hope this video helps
Yeah sweet instruction. I’ve been using Tmux for years. This suggested some different keybindings to mine that I may try out. Install Tmux resurrect too. That way if you shutdown the station, your session can be restored.
I know this video is very old ... but if you're seeing this I wanted to suggest that you should always tell something about the software that the video is about (tmux for this one), so that the uninitiated people who are just curious to learn something new can follow along the video. Thanks for the video!
I want to recommend tmuxinator, which manages tmux sessions. If I want to start the frontend project "foo" i'm currently working on, `tmuxinator foo` could start a tmux session with three windows, one for nvim, one for the development server (e.g. vite), one for running tests in watch mode. It will also set the working directory of the session, so that new windows will spawn in the right directory. You can also set layouts, create multiple panes per window and much more. For me, the cwd + pre-defined windows is enough :D
I’ve been using the integrated tmux implementation of iTerm2 for so long I forgot how to use tmux itself! This will be super helpful as I start to use Linux more and more in my work.
I'm glad to hear that!
Amazing. My only regret is why I didn't find this channel earlier.❤
Great video! Very smooth animations and great iconography. I've used tmux for a while until I had problems with ligatures or wayland with multiple terminal emulators, so I picked up wezterm which has it's own multiplexer, highly recommend checking it out! Haven't used tmux since I got used to it's own multiplexer.
Thanks for the tip! I'll take a look at wezterm, sounds very interesting. I enjoy playing with new tools haha.
Great! Concentrated flow of useful information! And very inspiring as well
👍
Thank you!
Old tmux user here! I recently changed my terminal multiplexer from tmux to zellij, I find zellij more modern and easier to learn. Tmux stills a good gold standard for remote servers.
Tmux has a great Integration with iterm2, and I used it to remember (and keep permanently running) all the open windows when sshing into the server I was working on.
That's one of the best uses ever. Especially because iterm2 allows you to manage all windows and panes in the gui, instead of remembering dozens of commands.
But for development I rather use vs code windows split up on my ultra ultra wide curved monitor, especially since the commands are actual written out
I really enjoy those videos thanks to you I have setup my tmux and nvchad. I feel 10x more motivated to wake up and work on my rust rpg game. It's nothing special I just enjoy working on it for fun to add to my skills and use it for interviews as a deeply developed application.
That's awesome. I'm looking forward to seeing your game one day!
@@dreamsofcode not going out it’s something I spit out code on
This helped me start using tmux in so many ways
Liked and Subscribed!, this is some real good quality content and super educational, consider me a fan of your work my man XD
Best of wishes from Mexico City (:
Thank you! I appreciate that a lot!
Been walking around tmux for years and decided to smash together a little tmux config
Used nothing from this video but it was a sorta final signal for me that I should try 😂
Damn, I've been using tmux for years and never knew it had mouse support. Thanks!
I'm a big fan of it when I'm being lazy!
it's kinda cute seeing people excited discovering features we've had in GNU screen since 1987
Really great video Sabine 👍🏼 it eally helps to understand about nuclear and energy production in general
I hope One day you make a video about you're beautiful terminal theme and configuration ^^
I will do!
Rewatching just because. I noticed how much your voice has changed! :)
Better microphone & technique 😆 I think I was using the blue yeti for this one
Thanks for these videos. This convinced me to try to start using TMUX instead of splitting and making tabs in KDE Konsole UI. I have tried using GNU Screen in the past, and maybe it supports similar features, but tmux seems more interesting with the plugin and customization support! One of my biggest pain points with using screen was always getting long bits of text into my main desktop clipboard. but the fact I can enter copy mode, use PgUp to copy to a buffer, then save that buffer to a txt file easily could come in quite handy. I need to try to break my habit of always using the mouse.
Wow also just realized I can do PgUp and it will immediately enter copy mode and scroll up. So I can Ctrl Space then PgUp, PgUp, etc. really quickly. Not sure if that's native or part of tmux sensible but very nice.
thank you so much, this really helps me starting my tmux journey.
SUBSCRIBED !