As far as I know there are these;
- Camel case = coolFileName
- Snake case = cool_file_name
- Kebab case = cool-file-name
- Pascal case = CoolFileName
- Dot notation = cool.file.name
- Flat case = coolfilename
- Screaming case = COOLFILENAME
Personally I prefer the kebab/dot conventions simply because they allow for easy “navigation” with (ctrl+arrow keys) between each part. What are your preferences when it comes to this? Did I miss any schemes?
It depends a bit on the use case. I try to follow naming conventions within specific environments like Python. When just sorting some documents together, I usually do a mix of Kebab and snake case, where I split semantic parts with underscores and connect words with dashes like
2024-08-30_author_document-name_other-important-info.ext
This is exactly what I do. It lends itself to something like ‘prefix_specific-info_version’ which is both sortable and easy to read.
Yeahh that’s the best IMO ! But I get most of the time stuck with some
testOFtest001
files/directory… cause I’m lazy…But I always ALWAYS regret it afterward… :/
Snake case.
- Starts with a lowercase, good for shell autocompletion
- No spaces, so no worrying about spaces in shell commands
- ‘_’ is better than ‘-’ because it shows the spaces between words more clearly
Counterpoint: you have to use Shift a lot
He probably uses vi. A few hundred more shift-key presses won’t stand out.
kdd
For this reason, I use kebab case for directories. But because I agree underscores show spaces better, I use snake case for files.
COOLFI~1.AME
10 PRINT “FARTS” 20 GOTO 10
Man I miss basic.
It’s more like QBasic dialect, but it’s still actively maintained. It can generate binaries and everything for modern machines.
Im dead! MS-DOS vibes
IT’S
COOLFILE.NAM
THERE IS ONLY 8.3 AND THERE IS ONLY UPPERCASE
FILEID.DIZ
I like to use my enterprise number and a UUID (all in lower case, for legibility). Here’s an example:
.1.3.6.1.4.1.33230.0d456e46-67e6-11ef-9c92-7b175b3ab1f1
Now you might say that the UUID is already globally unique or at least pretty unlikely to turn up anywhere else, so why bother prefixing it with more stuff? To that I say: “I need to be absolutely or at least reasonably sure … OK nearly sure”.
Anyway, you maintain a database of these things and then attach documentation and meaning to them. An editor could abstract and hide that away.
I started this post as a joke. Not sure anymore. Why get your knickers in a twist with naming conventions for variables and constants. Programming is already a whopping layer of abstraction from what the logic gates are up to, another one wont hurt!
I put an unnecessary amount of spaces in all my file names to break anyone who wants to use CLI tools on them
i use windows btw
Using Windows is a true flex on Lemmy
I put newlines in my filenames to break both CLI tools and Windows filesystems
touch "\" \""
What does this do?
Make a file named just a bunch of spaces with double quotes around them. It’s made confusing because of the 4 double quotes, two are escaped by the backslashes immediately before them.
Mental damage
I like Camel Case for code, but mostly because it’s ingrained in my brain, coming from Java as my first language.
For folders and files, I like Kebab Case.
Luckily, I was not ingrained by my first programming language like that, or my coworkers would strangle me.
I started with BASIC, which allowed only two letters for variable names…
Snake case, but I’m the World’s second worst programmer and just name files like this because I was alive when spaces were not allowed.
Rfc3339 plus kebab case for many things
2024-09-01_lname-fname-resume.pdf
I am a fan of Python’s or Rust’s official conventions.
For package names, tho, I don’t get why this-is-used over this_clearly_better_system, as I would expect a double click to select_the_whole_thing, whereas it does-not-happen-here.
While i do agree, snake looks a lot better too. I just wish it was possible to navigate through each parts of the word more easily with ctrl+arrow. That would make it the superiour choice imo.
Does alt+arrow work in your terminal?
yeah
25% Camel case, 25% Pascal and 50% of the time flatcase. It drives me insane when I try and autocomplete a folder only to realise it was Downloads instead of downloads. I keep telling myself i will go through and make it all flatcase but I put it off because i tell myself i will rebuild my computer next week every week.
I do the flatcase in my machines too, but it stopped being such big a nuisance to me when I moved to ZSH - it can autocomplete case-insensitively.
Is zsh a terminal or a language like bash? I don’t get what it is from reading descriptions
Zsh is a shell like bash that supports shell scripting like bash (though with some syntactical differences). It’s a bit more like ksh than bash, but anyone familiar with bash will have no problems with zsh.
You can check out oh-my-zsh for an accessible preconfigured version of it (though I’d suggest installing via your package manager rather than the script on their website). I like the jreese theme.
Never thought about making the home folders flatcase, thanks, takes all of 2 minutes btw.
If anybody else wants to do it, remember to edit~/.config/user-dirs.dirs
with your new flatcase folders.
For files, kebab case. For variables, snake case. For servers, megaman villains.
Snake case, usually. Some perhaps unfounded fear that something will blow up on a dash in a file name kicking around. Or I’ll do a weird typo/premature enter and part of the file name will be treated like a -flag of some sort.
How about “cool file name”?
All my systems use modern file systems that are case sensitive and can contain any character except
/
and\0
.deleted by creator
not really
You can easily escape spaces with
\
and my modern shell (fish) suggests and completes filenames for me anyway, so i don’t have to type more than the first word in more than 90% of cases.Typing
\
in those cases instead of_
is super annoying.In my keyboard layout backspace is behind altgr.
the standard keyboard layouts (qwerty, qwertz, etc.) are mostly trash
are there any good alternative keyboard layouts for your native language (finnish if im not mistaken)?
In Germany there is the Neo Family: Neo{,2}, NeoQwert{y,z}, Bone, Mine, … as well as offsprings of that, but I guess you need your diacritics: å ä and ö. While Neo layouts have these diacritics available, they are made for german, so only ä ö and ü are easily accessible.
Finnish indeed. I’m not aware of any alternative layouts. å is completely unnecessary for finnish, so maybe the layouts you mentioned could work.
Now do it with a for loop on every file in a dir with thousands of files
for i in path/to/dir/* dosomething_with_my_file $i end
where is the problem? fish shell doesn’t split arguments at spaces
$IFS splits files at spaces
IFS is a special shell variable in bash, ksh and POSIX shells that lets you configure how the shell splits words
by default it splits at spaces tabs and newlines
I use
fish
a shell that is intentionally not POSIX compatible. While it borrows some principles from Bash and POSIX, it simplifies a lot of things and removes most footguns. Words are split at new lines in fish, which admittedly can also cause troubles, but not nearly as often as in bash and other POSIXy shells.Wtf why would you intentionally not be POSIX compatible?
Unless I can’t, Kebab.
No need to hold Shift.