_ _ __ _ _
__| | ___ | |_ / _(_) | ___ ___
/ _` |/ _ \| __| |_| | |/ _ \/ __|
| (_| | (_) | |_| _| | | __/\__ \
\__,_|\___/ \__|_| |_|_|\___||___/
____ _ ____ _ _ __ _
/ __ \ ___ ___ _ __ _ __ (_)___ \| || | / /_ / |
/ / _` |/ __/ _ \| '_ \| '_ \| | __) | || |_| '_ \| |
| | (_| | (_| (_) | | | | | | | |/ __/|__ _| (_) | |
\ \__,_|\___\___/|_| |_|_| |_|_|_____| |_| \___/|_|
\____/
The current dotfiles refer to a system with dwm and st. The remaining i3 configurations have been removed and are only accessible via the hash a597826
.
# Move to your home folder
cd
# Create a alias to work with the git bare repository. Don't close the bash session or you have to run this command again.
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
# Ignore the .cfg folder. This makes sure that you don't create weird recursion problems
echo ".cfg" >> .gitignore
# Close the repository
git clone --bare https://github.com/conni2461/dotfiles.git $HOME/.cfg
# Get the files
config checkout
Now files like .bashrc
and .gitconfig
are untracked. Either remove or move elsewhere.
config checkout
# Change git setup to only show tracked Files
config config --local status.showUntrackedFiles no
# Show status of dotfile repository
config status
# Add a file
config add .file
# Create a commit
config commit -m "Message"
# Push to the remote repository
config push
Also you should change the email and name in the .gitconfig
as well as the remote adresse.
Dotfiles provide clipmenu which requires dmenu, xsel and clipnotify. Also a spotify commandline handler script sp. All credits goes to the creators of those scripts.
Most of the scripts are written for POSIX compliant shells. All scripts with /bin/sh
are programmed and tested with dash and are not garanteed to run with bash. How to configure and use dash, can be found here.
Some scripts in the bin folder require dmenu, skim, the_silver_searcher, fd and ripgrep. Also twitch-notify and github-notify require python-notify2.
If you wanna use zsh, zsh-syntax-highlighting and zsh-autosuggestions is required to be installed. If you don't want to use this features remove the last two lines of the zshrc. If you ran into problems check the path of both extensions. It is possible that it has to be changed for your system.
When neovim is started for the first time, vim-plug is downloaded and :PlugInstall
is executed.
To update plugins use :PlugUpdate
and to upgrade vim-plug run :PlugUpgrade
.
All further commands can be found on vim-plugs github page.
A full list of used plugins:
Plugin | Description |
---|---|
base16 | Neovim Colorscheme collection |
startuptime | vim-startuptime is a Vim plugin for viewing vim and nvim startup event timing information. |
signature | Plugin to toggle, display and navigate marks |
scrolling | Smoth scrolling with Ctrl-d / Ctrl-u / Ctrl-f / Ctrl-b |
fugitive | Git Wrapper |
vim-signify | A Vim plugin which shows a git diff in the gutter (sign column) |
git-messenger | Show git messages with <leader>gm . Using nvim-floating-window |
committia | Layout for git commit |
gitignore highlight | gitignore highlighting support |
table-mode | Mode for editing tables |
boxdraw | Helps with drawing ascii boxes |
splitjoin | Switch between single-line and multiline forms of code with gJ (join) and gS (split) |
clever-f | Changes behavior of f/F and t/T |
commentary | comment stuff out with gcc to comment out line and gc in visual mode |
surround | quoting/parenthesizing made simple |
scriptease.vim | Vim plugin for making Vim plugins. Loads :messages into quickfix list, :verbose improvments, etc |
CommentFrame | Add comment frames. Use fcS for c/c++ and fch or fcH for bash |
tabular | Helps with aligning text |
Luapad | Adds interactive scratchpad for lua and :Lua command with autocomplete |
startify | The fancy start screen for Vim with session support |
lastplace | Intelligently reopen files at your last edit position |
animate | Vim animation api |
popup | An implementation of the Popup API from vim in Neovim. |
plenary | All the lua functions I don't want to write twice. |
telescope | Find, Filter, Preview, Pick. Fuzzyfinder written in Lua, with providers for treesitter and lsp. |
goyo | Distraction-free writing in Vim |
limelight | Hyperfocus-writing in Vim |
vimwiki | Personal Wiki for Vim |
treesitter | Currently used for Syntax highlighting and incremental selection. |
treesitter-refactor | Adds Refactor module to Treesitter. Highlight definition, smart rename and more. |
treesitter-textobjects | Adds Textobject module to Treesitter. (Context aware textobjects for vim) |
treesitter playground | Treesitter playground integrated into Neovim. Interactive Debugging tool for Treesitter |
treesitter context | A context.vim clone powered by treesitter. |
nvim-lspconfig | Providing config for built-in lsp |
snippets | Adds snippet support. Works with completion-nvim. |
completion | Adds completion for nvim-lsp |
diagnostic | Changes default nvim-lsp diagnostics behavior |
lsp extensions | Adds more lsp stuff. Example: Inlay hints |
buffer completion | Adds word completion for all words in all open buffers. Additional source for completion-nvim |
lightline | A light and configurable statusline/tabline plugin |
devicons | lua fork of vim-web-devicons for neovim |
colorizer | Adds color to hexcodes |
Some plugins require additional packages installed:
- telescope requires ripgrep and fd to work best.
- Already preonfigured LSP Server. Install one or more of the listed Servers and you are good to go for the specific language (setup can be verified with
:checkhealth
):- als for ada
- bash-language-server for bash and posix compliant shells
- clangd for c/c++. ccls is currently disabled because clangd offers option to switch between header and source file
- cmake for cmake
- cssls for css files
- diagnosticls to get linter data. Currently configured with shellcheck.
- dockerls for dockerfiles
- elixirls for Elixir
- flow for JavaScript
- fortls for Fortran
- gopls for golang
- html for html
- jsonls for json
- kotlin_language_server for kotlin
- metals for scala
- Using microsoft-python-language-server if installed and python-language-server as fallback for python
- R-language-server for R
- Using rust-analyzer if installed and rls as fallback for rust
- solargraph for ruby
- sumneko lua for lua
- texlab for latex
- tsserver for TypeScript
- vimls for vimlang
- additional linters can be configured here. Take a look at nvim-lsp.