Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My trick has always been to rely on tab auto-completion.

    mv foo-<tab>
    mv foo-bar-baz foo-<tab>
    mv foo-bar-baz foo-bar-baz
Now I can edit the second part pretty quickly.

Downside: you have to at least type `foo-` twice.

Upside: command line history still has the full command.



Tab-completion is somewhat obnoxious in directories with lots of files sharing a common prefix, for example.

Also, if you accidentally tab-complete the same file for output and input, depending on how clever the program is, you may end up deleting the source file.


i always run mv -i to make sure i don't accidentally overwrite an existing file.

i don't alias mv to mv -i either, to avoid getting used to the idea that just mv is going to ask me, because i might work on a server where the alias is not set.


I double check the filenames instead, because many of the tools I work with don't have -i flags.


I’ve done

  gcc foo.c -o foo.c
far too many times :(


Seems like gcc should be smart enough to reject that mistake nowadays, right?!


I should write a shell frontend to gcc to warn if I do this…


I work in exactly two modes of `gcc` usage. I either accept `./a.out` as the name I deserve, or I write a `CMakeLists.txt`.

There nothing in between.


In ZSH I do:

mv foo-bar <alt>-m

It’ll repeat foo-bar. It’s very useful. I miss it when I’m using Fish or Bash.


In bash, you can do ctrl-w ctrl-y ctrl-y to cut paste paste as long as it doesnt have spaces


I do this too, but sometimes its just too many tabs




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

Search: