3 ms·
My personal method is to type "ffmpeg" and then hit Ctrl+R repeatedly until I make it to the last time I used it to do what I want to do again now, and then ada
by p4bl0 4y ago
My personal method is to type "ffmpeg" and then hit Ctrl+R repeatedly until I make it to the last time I used it to do what I want to do again now, and then adapt the command from history to my current needs.
It's not very efficient, but I don't feel it needs to be, and it requires no particular setup (except setting Bash to keep history forever but that's something useful I would do anyway for other use cases).
- tempodox 4y agoBy creating/editing `~/.inputrc` you can customize history navigation in bash. Enter `help bind` in bash to see an overview or consult [1]. A line like "\e[A": history-search-backward only shows history entries that start with the current text when you hit cursor-up, for instance. [1] https://www.gnu.org/savannah-checkouts/gnu/bash/manual/html_node/Readline-Init-File.html https://www.gnu.org/savannah-checkouts/gnu/bash/manual/html_...
- BeetleB 4y agoCtrl+R combined with fzf is your friend :-)
- michaelcampbell 4y agoAmen to that, I use almost nothing else these days except for when I have a new bespoke command I've never typed before. Even then fzf helps since I rarely am typing something COMPLETELY new.
- xenodium 4y agoAh, yes. This served me fairly well for some time. However, I also needed to remember the actual tool I used for the job. Was it ffmpeg? ffprobe? gifsicle? was it ImageMagick's convert? Not too bad if these are the only tools, but I also use pandoc, BluetoothConnector, pdftotext, qpdf, multiple AppleScripts, qrencode, system_profiler, fb-rotate, duti, sips, git... Bash history also remembers failed attempts, so I need to filter those out as I recall the successful one... Wrapping the winning command with a memorable function makes it a bit easier for me to recall the right incantation via fuzzy searching. For example: "set default" (resolves to dwim-shell-commands-macos-set-default-app) vs "duti" (which I can never remember).
- gumby 4y agoWhy not do `history | grep ffmpeg`? Each line will be prefixed with its place in the history ("445 ffmpeg --whatever") and you can just press `!445` to run it.
- m463 4y agoI think control-r quietly automates a good portion of what I do. As a matter of fact, I automatically (subconsciously) type control-r before every command. I think I've only ever typed this command once: git log --graph --decorate --oneline --all
- p4bl0 4y agoAh, this precise command is aliased as `git lol` (Log One Line) for me!
- Y_Y 4y agoI've found this is much more efficient if I add a comment at the end of the command describing what it does, then my C-r search can find that description, rather than just, say, any command in invoking some particular executable.
- dceddia 4y agoIf you haven’t run across Atuin yet you might like it! https://github.com/ellie/atuin https://github.com/ellie/atuin It stores shell history in a SQLite database and you can use Ctrl+R to fuzzy search it.