Hacker News new | past | comments | ask | show | jobs | submit login
Emacs: ffmpeg and macOS aliasing commands (xenodium.com)
57 points by xenodium on Dec 18, 2022 | hide | past | favorite | 15 comments



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).


I'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.


By 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_...


Why 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.


Ah, 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).


If you haven’t run across Atuin yet you might like it! https://github.com/ellie/atuin

It stores shell history in a SQLite database and you can use Ctrl+R to fuzzy search it.


I 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


Ah, this precise command is aliased as `git lol` (Log One Line) for me!


Ctrl+R combined with fzf is your friend :-)


Amen 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.


For non-emacs users, I'm aware of navi which is a similar editor-independent solution.

https://github.com/denisidoro/navi


For things like this, I utilize the Babel feature in Org mode.


I recently created a tiny tool to run code blocks from org files: https://github.com/eyeinsky/org_script

Essentially, you just mark the code blocks with `:script name`, and then can list or execute the block from a terminal. This also keeps the script in context within whatever other notes you had on the topic, when you were figuring it out etc. And if something turns out to be a useful snippet, you move it out to an actually separate script. :)


I use Typinator expansions with the input video path (from the clipboard) as a variable to perform common ffmpeg operations, such as downsize, speed up, extract audio, strip audio, export frames to create GIF animations, or encoding as MP4.

Typinator lets you use what's on the clipboard but also add scripting (say, Python or JavaScript) when certain parameters need to be calculated, like sizes or names.


is this for cutting a whole documentary in ffmpeg?

https://www.youtube.com/watch?v=9kaIXkImCAM




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

Search: