5 ms·
Written in Rust: - fd: A simple, fast and user-friendly alternative to 'find' https://github.com/sharkdp/fd - ripgrep: ripgrep recursively searche
by Dowwie 9y ago
Written in Rust:
- fd: A simple, fast and user-friendly alternative to 'find'
https://github.com/sharkdp/fd
- ripgrep: ripgrep recursively searches directories for a regex pattern
https://github.com/BurntSushi/ripgrep
- exa: Replacement for 'ls' written in Rust
https://github.com/ogham/exa
- bat: A 'cat' replacement. I recommend following the customizations.
https://github.com/sharkdp/bat
Written in Python:
- asciinema: Terminal session recorder
https://github.com/asciinema/asciinema
- httpie: Modern command line HTTP client
https://github.com/jakubroztocil/httpie
- visidata: A terminal spreadsheet multitool for discovering and arranging data
https://github.com/saulpw/visidata
- youtube-dl: Command-line program to download videos from YouTube.com and other video sites
https://github.com/rg3/youtube-dl
- pgcli: Postgres cli with autocomplete and syntax highlighting
https://github.com/dbcli/pgcli
Written in C
- jq: Command-line JSON processor
https://github.com/stedolan/jq
- tmux: a terminal multiplexer
https://github.com/tmux/tmux
- pspg: postgres pager (you can combine it with pgcli)
https://github.com/okbob/pspg
- kaushalmodi 9y agoAs you are using tmux, also check out the awesome tmuxp written in Python. The author is very thorough with the package; testing and documentation. Tmuxp allows you to quickly launch pre-configured tmux sessions.
- Dowwie 9y agoThanks for the tip. I briefly read through the docs and it's not clear what this offers above and beyond what tmux does?
- cevn 9y agoI think the idea is to be able to use tmux in different layouts, configured by simple plaintext. I'll try it out.
- kaushalmodi 9y agoThe benefit of tmuxp is pretty clear from its README[1]. It gives this example: session_name: 4-pane-split windows: - window_name: dev window layout: tiled shell_command_before: - cd ~/ # run as a first command in all panes panes: - shell_command: # pane no. 1 - cd /var/log # run multiple commands in this pane - ls -al | grep \.log - echo second pane # pane no. 2 - echo third pane # pane no. 3 - echo forth pane # pane no. 4 The example is very simple (I use tmuxp to heavily configure the session initialization), but it shows how you can have a config file to set a session's name, set the number and names of windows in there, set the layout of panes differently if you want in each window, run commands like "cd", set env vars differently if you want, in each pane. You can find a lot more examples of tmuxp config on its doc site[2]. tmux doesn't allow one to have such quick, easy-to-read config files. You can of course do most of this in your .tmux.conf, but it will be too complicated to allow reuse and quick modifications. [1]: https://github.com/tmux-python/tmuxp#load-a-tmux-session https://github.com/tmux-python/tmuxp#load-a-tmux-session [2]: https://tmuxp.git-pull.com/en/latest/examples.html https://tmuxp.git-pull.com/en/latest/examples.html
- w0m 9y agoThat looks handy, i can see a, 'setup my testing and development environment' with just a quick cp-and-edit of config file.
- accnumnplus1 9y agoI use a shell script for such config. eg tmux split-window -h ; tmux send-keys "ls -la" C-m; ...
- kaushalmodi 9y agoAs I mentioned earlier, it is possible to do such things within the .tmux.conf, but not practical. Here's one of my real tmuxp configs: # How to use this file: # tmuxp load /path/to/this/file/main.yaml # - Specifying the .yaml extension is optional # - Specifying the path is optional if file is in ~/.tmuxp # # tmuxp --help for full help. session_name: main suppress_history: false start_directory: '~' shell_command_before: - unsetenv SHELL_CONFIG_LOADED - source ~/.alias windows: - window_name: '*scratch*' layout: tiled focus: true panes: - cd ~/downloads/git # Top-left - cd ~/downloads/git/emacs # Top-right - focus: true # Bottom-left shell_command: - bob - sleep 2 - tclr # Clear tmux status indicators - shell_command: # Bottom-right - cd ~/.emacs.d/elisp/org-mode - module load gcc/6.1.0 # Needed for ob-fortran tests to pass when doing make test for Org - window_name: foo-1 layout: even-horizontal shell_command_before: - bob - cduh panes: - null - null - null - window_name: foo-2 layout: tiled shell_command_before: - bob - cduh panes: - null - null - null - null - window_name: uvm_lib layout: tiled panes: - cd ~/gitlab/bar_uvm_lib - window_name: sandbox layout: even-horizontal panes: - null - null - null - window_name: hugo layout: tiled panes: - shell_command: - cd '~/downloads/git' - shell_command: - cd '~/e/elisp/ox-hugo/example-site' - ./srv - shell_command: - cd '~/hugo' - focus: true shell_command: - cd '~/e/elisp/ox-hugo' - window_name: nim layout: even-horizontal panes: - cd ~/sandbox/nim - cd ~/sandbox/nim - focus: true shell_command: - cd ~/sandbox/nim/chat - window_name: tok layout: even-horizontal shell_command_before: - tok - cduh panes: - null - null - null - window_name: zoo layout: even-horizontal shell_command_before: - bob - cduh panes: - null - null - null
- notyourwork 9y agoHttpie is really pleasant to use
- silasb 9y agohttps://github.com/BurntSushi/xsv https://github.com/BurntSushi/xsv is a must if you do anything with CSV.
- jameskegel 9y agoI wish HN handled long horizontal scrolling lines on mobile better. It’s aggravating that we are a site full of programmers and we can’t get the basics of usability in 2018.
- JoshCole 9y agoOne thing that I think most people don't consider often is that making things more usable isn't always good. Medium and message are interlinked. If everyone in the world switched to mobile, it would change the content of the articles we read and it would change the discussion of those articles. When you make something more usable on a different platform, you're encouraging the biases that the platform compels. In the case of mobile this means encouraging shallower content and briefer discussions, among other things.
- rabidrat 9y agohttps://en.wikipedia.org/wiki/The_medium_is_the_message https://en.wikipedia.org/wiki/The_medium_is_the_message
- hyperpallium 9y agoYou can have different rendering for mobile/non-mobile. We are in the midst of everyone switching to mobile.
- JoshCole 9y agoI know. I'm pointing out why this is a bad thing, because most people who advocate for better mobile support on Hacker News don't see themselves as advocating for a reduction in the quality of discussion and a reduction in the depth and complexity of the articles being shared.
- hyperpallium 9y agoThanks, I see what you mean now. I didn't get it because I use a mobile platform as desktop, but that's not generally true (so far).
- grzm 9y agoThanks for the links. In the future, please don’t use indentation to set off lists like this. It makes it difficult to read due to side scrolling, particularly on mobile. People often use - (hyphen) or * set of bullet points, and separate lines with new lines. You don’t get <li> elements, but it does work. Plus, your links will work, too :)
- hyperpallium 9y agoThe problem isn't using indentation. The problem is the platform's rendering on mobile. Agree on links tho.
- grzm 9y agoGiven that we're members of HN (as opposed to someone running the site), I try to provide constructive advice that others can actually use to improve the situation. The admins are well aware of the situation; continuing to argue that it's a problem with the platform while refusing to do what you can to work with the given situation seems like a needless waste of a comment.
- hyperpallium 9y agoProtests sometimes succeed.
- deleted 9y ago[deleted]
- zodiac 9y agoFormatting: Written in Rust - fd: A simple, fast and user-friendly alternative to 'find' https://github.com/sharkdp/fd https://github.com/sharkdp/fd - ripgrep: ripgrep recursively searches directories for a regex pattern https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep - exa: Replacement for 'ls' written in Rust https://github.com/ogham/exa https://github.com/ogham/exa - bat: A 'cat' replacement. I recommend following the customizations. https://github.com/sharkdp/bat https://github.com/sharkdp/bat Written in Python - asciinema: Terminal session recorder https://github.com/asciinema/asciinema https://github.com/asciinema/asciinema - httpie: Modern command line HTTP client https://github.com/jakubroztocil/httpie https://github.com/jakubroztocil/httpie - visidata: A terminal spreadsheet multitool for discovering and arranging data https://github.com/saulpw/visidata https://github.com/saulpw/visidata - youtube-dl: Command-line program to download videos from YouTube.com and other video sites https://github.com/rg3/youtube-dl https://github.com/rg3/youtube-dl - pgcli: Postgres cli with autocomplete and syntax highlighting https://github.com/dbcli/pgcli https://github.com/dbcli/pgcli Written in C - jq: Command-line JSON processor https://github.com/stedolan/jq https://github.com/stedolan/jq - tmux: a terminal multiplexer https://github.com/tmux/tmux https://github.com/tmux/tmux - pspg: postgres pager (you can combine it with pgcli) https://github.com/okbob/pspg https://github.com/okbob/pspg reply
- fehfn37 9y agoWritten in Rust: - rq: A tool for doing record analysis and transformation (replacement for jq, supports yaml, json, avro, protocol buffers, etc.) https://github.com/dflemstr/rq https://github.com/dflemstr/rq