This repository holds development environments, build descriptions and scripts that I use while programming.
I use vim and tmux together to create a lightweight IDE-like environment to accomplish various
programming tasks. Some plugins have been added, as well as some settings via the .vimrc
file.
These changes are performed by the nix build to distribute a modified vim. The current workflows
it attempts to serve are
-
Python Program Development. Built for Python 3 and equipped with the jedi-vim plugin, the editor has many development features for tasks like refactoring, documentation and navigation.
-
LaTeX Document Creation. I followed the philosophy laid out by Gilles Castel to create a LaTeX development environment. Any environment created using the modded vim must also have the PDF editor zathura. After writing a file, zathura will automatically launch with a PDF build.
-
Nix Package Development. The vim editor supports the nix language syntax. Further, this configuration manager is based on nix itself. It provides tools like a repl and shell for common development tasks.
-
Kind2 SMT Solver Verification (Incomplete). The editor supports syntax highlighting of the lustre synchronous data flow language. Further, there exists a SMT solver (Kind2) package that can verify properties/contracts written in the lustre comments.
Further plugins/setting:
-
fugitive
- git functionality. -
airline
- superior status bar. -
youcompleteme
- code completion. -
ultisnips
- macros for common code snippets. This is useful for LaTeX. For example typing "eq" and then hitting<tab>
will create an equation block with the cursor positioned to write math. -
Spell Checking. Hit
<C-l>
to correct the last recognized mistake.
Install the nix package manager. Then, run
nix-shell
to install everything. Also, smaller, and less resource demanding, shells are available in the
./shell
folder. For example,
nix-shell shell/latex.nix
will launch a shell for LaTeX development.