#+TITLE: Dotfiles #+AUTHOR: Oreodave #+DESCRIPTION: README for Dotfiles * Preclude Hello and welcome to my Dotfiles repo! Though I'm not sure why you're here (this is literally just for me). * Tools - Git: how...what are you doing without this? - Emacs: My editor for everything (using it right now), incredibly powerful. Is used with [[https://github.com/hlissner/doom-emacs][Doom Emacs]]. - Vim: my configuration makes it a nice editor, with plugins for C# and Python already prebuilt and ready to use with external dependencies installed. Developed to be used with Tmux - Tmux: Used in conjunction with Vim to produce a powerful workspace. Has bindings for quick switching between Vim and tmux panes, as well as full on vi bindings - ZSH: Great shell, with amazing theming options, that I use for everything - Pass: Password manager/generator which I strongly recommend - Zeal/Dash: Documentation manager/reader. Absolute necessity when doing offline work * Dependencies |--------------------------+-----------------------------------------------------------------------------------+----------------+------------| | Dependency | Why? | Version | Link | |--------------------------+-----------------------------------------------------------------------------------+----------------+------------| | Vim | Obvious. Plugins need async, thus version 8 or above. Has to be compiled w/python | 8 | [[https://www.vim.org/download.php][Vim]] | | Emacs | Obvious. Doom Emacs on Straight needs 26.2 | 26.2+ | [[https://www.gnu.org/software/emacs/download.html][Emacs]] | | Tmux | Obvious. Used for most terminal related things | 1.5+ | [[https://github.com/tmux/tmux][Tmux]] | | Omnisharp Roslyn Server | Used by vim and Emacs. For C# tooling | Latest | [[https://github.com/omnisharp/omnisharp-roslyn][Omnisharp]] | | Python | Used by some plugins in Vim | 3.6.8 and 2.7+ | [[https://www.python.org/downloads/][Python]] | | Zeal | Used for downloading/reading documentation | 0.6.0+ | [[https://zealdocs.org][Zeal]] | | .NET Core | Needed for Omnisharp to work. For C# | 2.2.3+ | [[https://dotnet.microsoft.com/download][.NET]] | | Ag | Used by quickly searching code bases in Emacs and vim | 2.1+ | [[https://github.com/ggreer/the_silver_searcher][Ag]] | | Fzf | Used by vim. For insanely fast searches in the interface | 0.18.0 | [[https://github.com/junegunn/fzf][Fzf]] | | cargo/rust | Used for fd/ripgrep. Also a nice lang | 1.3.6+ | [[https://github.com/rust-lang/cargo/][Rust]] | | fd | Used by doom for super quick file searches. | 7.3.0+ | [[https://github.com/sharkdp/fd][Fd]] | | ripgrep | Used for insanely fast searches (sometimes faster than ag) | 11.0.1+ | [[https://github.com/BurntSushi/ripgrep][RipGrep]] | | tmuxinator (optional) | Used to help with tmux scripting and window handling | 1.0+ | [[https://github.com/tmuxinator/tmuxinator][tmuxinator]] | | LSP servers of some kind | Used for language support with C, C++, C#, Python, etc | N/A | N/A | |--------------------------+-----------------------------------------------------------------------------------+----------------+------------| * How to use - Use ZSH as your default shell environment. - Set tmux as your default shell in your console emulator. Use tmux for everything console based, and try to move more stuff towards a console based environment (such as music). Setup zsh to be your default tmux env - Use vim for quick edits and light development. Stuff like scripts. Use when resources are limited - Use emacs for project work (large scale development) and writing. Always keep an instance open. See how much of your life you could stick into emacs - Use fd/ripgrep/ag as much as possible outside, in the terminal. They're insanely useful. Integrating them with your editors is cool, but using them raw has benefits as well ** Project by project Setup a README.org in the root, with a notes.org and todo.org in .git (to not be tracked by git unless you want it to of course). Write up some documentation in README.org. Use notes for quick note taking about the project, todo.org for todos recording. For scripting languages or learning a language, use .org files and source code blocks to generate code, writing descriptions and other things around them to explain them better (with an added benefit to compile to a PDF for a nice document)