by r0muald on 8/3/17, 8:13 PM with 403 comments
by krat0sprakhar on 8/3/17, 10:41 PM
I've long been stuck on finding a suitable (perfect?) project idea to play with Rust but exa is making me think through again!
Thanks for sharing this and also for your screencasts. I'd definitely spend a lazy evening watching you program exa.
by Perceptes on 8/3/17, 10:23 PM
by _jal on 8/3/17, 10:15 PM
That said, this is very much not for me. Default-colorized is something I emphatically do not want; defaulting to relative units, ditto. It it were me, the first thing I would do is get rid of 'grid' display entirely - reading across just doesn't work for me. Etc.
More prosaically, `ls` is sort of like breathing for me - I do it so much during the average day that I don't even think about it. Can't say I immediately know every one of the switches, but probably 10 or so variants I use daily are pure muscle memory, and less frequently used things (extended attributes, symlink-deref options, etc.) I can remember without the man page.
So in that sense, `ls` is well into the same category as vi for me - I'm so accustomed to whatever warts there may be that switching would be much more painful than any efficiency gain.
by SwellJoe on 8/4/17, 1:14 AM
by general_pizza on 8/3/17, 8:59 PM
by donatj on 8/3/17, 9:15 PM
by khedoros1 on 8/3/17, 9:30 PM
When I've got two similar but non-identical files, and I think that the difference between their sizes might be important.
That's a silly nitpick, though. It's not like I lose ls by installing exa. Plus, it's a nice excuse to see if I can get cargo working around the corporate firewall.
by otterpro on 8/3/17, 9:11 PM
I installed in Ubuntu (and WSL) by downloading the zip file and also 1 dependency by `sudo apt-get install libgit2-24'
Edit: It's also fast, and I'm beginning to think Rust is really good for making speedy commandline tool, as I'm a big fan of 'ripgrep', another popular tool written in Rust.
by untog on 8/4/17, 1:11 AM
exa -bghHliS
Argh! I want to be able to say `ls --size` to get the file sizes. I don't want to remember a million arguments.by SwellJoe on 8/4/17, 12:03 AM
Colors are good...too many colors is overwhelming. It might be that I'd come to recognize what the colors mean if I work with it every day, in the same way that I begin to recognize the flow of a program and when a color is "wrong" after using the same syntax highlighting in an editor for a long time. But, I couldn't tell you what any of the colors mean in my favorite editors.
It's more about recognizing when something has the wrong color compared to everything else with that "shape". e.g. a good example is that in shell scripts, I often put space between the var name, '=', and the value. That's not an assignment and can lead to subtle bugs (shellcheck will catch it, too, but I see it clearly in the editor because it doesn't highlight as a variable declaration).
So, what I'm getting at is that I'm pretty sure I'll always have to read the actual text to make any sense out of this output; the huge number of colors may just hinder readability. I don't know this for sure, but it's pretty jarring to look at even with a nice muted color scheme. I love colors in terminals, though, so I'll give it a go.
by mavhc on 8/3/17, 9:04 PM
by andrewflnr on 8/4/17, 6:43 AM
by renox on 8/3/17, 11:38 PM
Also I've seen two times that the color bytes broke something: an expect script was broken by grep's colors and colleagues of mine were very confused when two similar commands gave different output, the reason? Colors!
So colors by default? Thanks but no thanks.
by assafmo on 8/3/17, 9:06 PM
EDIT:
"exa prints human-readable file sizes by default (when would you not want that?)"
I actually use bytes a lot for certain progress calculations.
Also I get an error "exa: error while loading shared libraries: libhttp_parser.so.2.1: cannot open shared object file: No such file or directory" (Ubuntu 17.04)
by swift on 8/3/17, 10:27 PM
by pierrec on 8/3/17, 10:08 PM
Well, Windows VMs aren't hard to come by and they work quite well on any host platform (contrarily to some other OSes coughMacOScough)
A native windows version would be interesting, though I believe people generally shun any prolonged interactive use the windows command line, this kind of tool might be one of the possible remedies against the pain of using it.
by pbiggar on 8/3/17, 8:57 PM
The unix philosophy is a great idea, but it doesn't really lead to a good experience. Glad people are making more integrated tools!
Oh, and It's in homebrew already: `brew install exa`
by amelius on 8/3/17, 8:51 PM
by tadzik_ on 8/3/17, 9:16 PM
I suspected this would be total bullshit, and it is. Its small binary is a mere 3.4 megabytes. I wonder if I misinterpreted the "small" part.
by rc_kas on 8/3/17, 9:20 PM
by pmarreck on 8/4/17, 4:46 AM
I've learned some commandline tricks just from reading the comments!
by swah on 8/4/17, 11:05 AM
/exa/src $ cloc .
41 text files.
41 unique files.
0 files ignored.
http://cloc.sourceforge.net v 1.60 T=0.10 s (423.5 files/s, 64346.3 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Rust 41 1152 929 4149
-------------------------------------------------------------------------------
SUM: 41 1152 929 4149
-------------------------------------------------------------------------------
by 0x006A on 8/3/17, 9:17 PM
by dsego on 8/4/17, 3:17 AM
by 0xTJ on 8/3/17, 11:02 PM
by TomK32 on 8/4/17, 5:31 AM
I'll give it a try for a few weeks.
by tym0 on 8/4/17, 9:06 AM
[1] https://github.com/supercrabtree/k
[2] https://raw.githubusercontent.com/supercrabtree/k/gh-pages/f...
by hepek on 8/3/17, 9:31 PM
Couldnt all the dependencies be statically linked for max portability?
by Dowwie on 8/4/17, 9:04 AM
I had high hopes with this command but found the git features missing: exa -l --git --time-style=long-iso -T
Nonetheless, this displays
Hopefully, the author finds this worth the time to support..
by sethammons on 8/3/17, 8:37 PM
which ls alias ls='ls --color=auto' /bin/ls
tree -L 2
git diff --stat
git status
by steventhedev on 8/3/17, 8:45 PM
by nardi on 8/4/17, 12:21 AM
by Cockbrand on 8/4/17, 8:20 AM
by yosoyalejandro on 8/3/17, 11:40 PM
by h1d on 8/4/17, 2:53 AM
Some old HN thread. https://news.ycombinator.com/item?id=3858954
by callaars on 8/4/17, 8:07 PM
by roadbeats on 8/4/17, 6:29 AM
by kbutler on 8/3/17, 9:49 PM
The name is the key field and so it should generally be the left-most column.
by nightcracker on 8/4/17, 5:07 AM
by d--b on 8/4/17, 7:33 AM
by xaduha on 8/4/17, 12:20 AM
by baby on 8/4/17, 11:12 AM
* can you use unicode icons to replace `d` and others with icons of folders and such?
* where are the color signification explained?
by TedHerman on 8/4/17, 1:16 PM
by bsmit on 8/3/17, 9:29 PM
by amelius on 8/3/17, 8:52 PM
by lwindy on 8/4/17, 8:35 AM
by gesman on 8/4/17, 2:36 AM
How about: $ exa . -- with the same outcome? :)
by rv77ax on 8/4/17, 5:00 AM
by polote on 8/3/17, 9:50 PM
by torus on 8/4/17, 9:44 AM
by frahs on 8/3/17, 10:45 PM
by dan-compton on 8/4/17, 4:17 AM
by peacetreefrog on 8/3/17, 9:19 PM
by rhianna86 on 8/4/17, 12:22 AM
by Froyoh on 8/3/17, 9:34 PM
by of on 8/3/17, 11:49 PM
by git-pull on 8/3/17, 9:39 PM
Even just with PATHs or aliases, or a new binary entirely.
And I'm a person who is no stranger to dot-configs. I've never taken it as far as Z(1), https://github.com/rupa/z.
A system builtin is stuff you'd see stowed away in /bin. They are essential low level binaries you have to trust. If somehow a malicious ls got out there, nothing's stopping people from writing memory-safe malware that uploads your $HOME configs to some server in a far away land.
The more I say this, I guess defaulting to a substitute for a builtin command doesn't matter. The average developer relies on so much third party stuff in their shell, vim, package manifests, and so on that all these years could have done bad stuff, nothing has happened.
Maybe it's my defense mechanism firing that my own dot-config has grown so big I don't remember what the hell's in it anymore.
In fact, it's a common thing for terminal applications to accept environmental variables to use third party applications. For instance, $EDITOR, and less often (but no less useful): $PAGER. You can give it a shot with most(1) [1], I mention it in my book, The Tao of tmux [2] (available free to read online).
So also, regarding $EDITOR, if you prefer that being in GNU nano, Pico, Vim, or emacs, set it in your .bashrc/.zshrc:
export EDITOR=vim
Also, for git's editor, I don't remember if it falls back to $EDITOR, but you can do:
export GIT_EDITOR=vim
Another tool at your disposal for ls(1), which even FreeBSD supports, it $LS_COLORS:
http://man7.org/linux/man-pages/man5/dir_colors.5.html
edit: actually, BSD's ls(1) seems to be $LSCOLORS (https://www.freebsd.org/cgi/man.cgi?query=ls&sektion=1):
[1] http://www.jedsoft.org/most/
[2] https://leanpub.com/the-tao-of-tmux/read#leanpub-auto-read-t...
by axaxs on 8/4/17, 3:47 AM
by jwilk on 8/3/17, 9:29 PM
This is nearly impossible to implement securely.
Better don't run exa against untrusted directories.
by tariandbari on 8/4/17, 5:06 AM
inode Permissions Links Size Blocks User Group Date Modified Name
21214836 .rw-r--r-- 1 9.4Ki 24 ben staff 29 Jun 16:16 Cargo.lockAs a human I first care for the name, Currently I'm forced to scan the right most column (which position varies) and then travel back to the beginning of the line and read the rest of the metadata
by kabdib on 8/4/17, 12:09 AM
I'm colorblind, too, so your red/orange/green distinctions are utterly wasted on me. Raw color is a very flaky and low fidelity way to communicate to a user.
Animation, on the other hand: Give that super important file that's somehow busted or very active some kind of blink or a meaningful animation and you'll have my attention. I may hate the tool for it, but you'll have my attention...