Ok so I've been wanting to try nim for a while and finally did.
Right away I hit something I really dislike, and that is that nim has apparently decided to do it's own thing about installation, rather than working like ./configure --prefix=whatever. The ./install.sh script puts things under standard subdirs for /usr/bin and /usr/local/bin, but then does something different for other dirs. So no real support for anything like --prefix.
The instructions under 'Installation based on generated C code' are also problematic. Assuming you don't want to dump the vim tarball into your prefix, you apparently need to copy things into place after the build, but the directions don't cover this. The install.sh script is mentioned but not described, and re-running it after doing nim c koch && ./koch tools' doesn't appear to give you an installed nimble (for example).
I'm really excited to try nim and have some projects in mind for it. In case the noob perspective is valued here, I would strongly suggest that it would be worth it to clean up the install process and wherever possible make it work like other software.
A better installation and version management system similar to rustup is in development by @dom96 called choosenim.
It seems like your on Linux? If so, perhaps your distro has a version of Nim in the repo? Perhaps some work could be done by creating a Flatpack or AppImage for easier cross-distro installation.
If your on Mac you can use homebrew to install Nim.
There is also nim-vm https://github.com/ekarlso/nim-vm but it is unmaintained and doesn't support Nimble very well.
The ./install.sh script puts things under standard subdirs for /usr/bin and /usr/local/bin, but then does something different for other dirs.
"Does something different" -- Like what? But you shouldn't use install.sh anyway, manual messing with /usr/bin is bad, Linux got package managers for that.
Nim's take on this is:
make install should not be done
That's what checkinstall is for.
I have ~/bin in my path and put the symlinks there.
This is exactly what I'm doing when adding things in Linux.