Skip to content

Public repository for generic dotfiles, which allows a quick setup of a comfy and familiar shell on various virtual / bare metal systems :)

Notifications You must be signed in to change notification settings

LuzianHahn/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hal's Dotfiles

Source

How to configure a fresh system

# Ensure that at least `curl` and `git` are installed
# `vim` is recommended
curl https://raw.githubusercontent.com/LuzianHahn/dotfiles/debian/.local/installer/dotfile_installer.sh | bash 
# on work machines for alternative git authorship use
curl https://raw.githubusercontent.com/LuzianHahn/dotfiles/debian/.local/installer/dotfile_installer.sh | AUTHOR=work bash
# e.g. on alpine systems, `bash` is not included. Use `sh` in this case.
# curl https://raw.githubusercontent.com/LuzianHahn/dotfiles/debian/.local/installer/dotfile_installer.sh | sh
# Quick-Setup for LSP-Servers and programming language setups
# -i is necessary, as this scripts sources the ~/.bashrc file, which only works in interactive shells.
bash -i $HOME/.local/installer/extra_installer.sh

Setup of LSP-Servers

For a comprehensive script, see also installer/extra_installer.sh

Right now the vim setup here works with different Servers, which implement the LSP (Language Server Protocol). In order to receive features in vim like OpenDocumentation or GoToDefinition, one needs to install the respective servers. I listed how to do this for the languages I typically use:

Rust

This is ordinary achieved via rust-analyzer. One can find a detailed documentation here. In theory it should be enough to call rustup component add rust-src

Python

I am currently using jedi-language-server for this, which is a python package, which comes with an own entrypoint. As I don't want to install this package for every python project I have, I am using my global uv-virtualenv for this. It is intended for user specific python packages. Therefore it is necessary to have uv set up before installing jedi-language-server. See here for this. Afterwards one needs to create the global uv-virtualenv. The easiest way is to call . $HOME/.bashrc. Now one needs to install jedi-language-server via uv pip install jedi-language-server. Finally to circumvent the problem of the global uv-virtualenv's binaries colliding, one needs to create a link to the respective jedi-language-server-binary via: ln -sf $HOME/.local/lib/uv_base/bin/jedi-language-server $HOME/.local/bin/.

Known issues

  • If you encounter the following error after opening a *.py-buffer: Error: jedi-vim failed to initialize Python: jedi-vim requires Vim with support for Python 3.

    Your current version of vim does not come with python support. (You can check this with :version and looking for +python3. If only python3- is present, your vim version lacks support)

    • On debian you can install instead vim-nox via apt, which should provided +python3support.
    • On MacOS you need to install vim via brew install vim. It might be necessary to override $PATH here since vim is already present per default, but brew locates its installed version different from the base version of vim
  • I want to read :help-entries in vim, but the system claims E149: Sorry, no help for <entryX>. Apparently one needs to generate the helptags once on the respective system. See also https://stackoverflow.com/a/22355979. So just call vim -c "helptags <Path-to-doc-folder-in-extension>.

    easiest solution would be

  • After syncronizing a device with this repository, I receive errors, when opening vim like:
    Fehler beim Ausführen von "/home/XXX/.vimrc":
    Zeile   63:
    E31: Kein Mapping gefunden
    Zeile   64:
    E31: Kein Mapping gefunden
    Betätigen Sie die EINGABETASTE oder geben Sie einen Befehl ein
    This means that the respective plugins in vim have not been installed properly yet. One can do so by calling: cfg submodule update --init --recursive

About

Public repository for generic dotfiles, which allows a quick setup of a comfy and familiar shell on various virtual / bare metal systems :)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published