##########################################################
# ___ #
# /\_ \ #
# __ __ __ __ ____\//\ \ __ __ __ #
# /\ \/\ \/\ \ /'__`\ /',__\ \ \ \ /'__`\/\ \/\ \ #
# \ \ \_/ \_/ \/\ __//\__, `\ \_\ \_/\ __/\ \ \_\ \ #
# \ \___x___/'\ \____\/\____/ /\____\ \____\\/`____ \ #
# \/__//__/ \/____/\/___/ \/____/\/____/ `/___/> \ #
# __ __ ___ ___ /\___/ #
# /\ \ /\ \__ /'___\ __ /\_ \ \/__/ #
# \_\ \ ___\ \ ,_\/\ \__//\_\\//\ \ __ ____ #
# /'_` \ / __`\ \ \/\ \ ,__\/\ \ \ \ \ /'__`\ /',__\ #
# /\ \_\ \/\ \_\ \ \ \_\ \ \_/\ \ \ \_\ \_/\ __//\__, `\#
# \ \___,_\ \____/\ \__\\ \_\ \ \_\/\____\ \____\/\____/#
# \/__,_ /\/___/ \/__/ \/_/ \/_/\/____/\/____/\/___/ #
# #
##########################################################
My scripts and dotfiles for Zsh, Tmux, NeoVim, Git.
- Bash: I'm using Kitty + Oh-My-Zsh + Tmux.
- Fonts: Microsoft Cascadia Code with ligatures on Kitty, Neovim, VS Code, so on.
- Windows manager: Aerospace.
Aliases & Key mappings:
First install Xcode: xcode-select --install
The folder macosx_setup
contains the scripts to set the mac OS defaults and install the apps and tools.
sh ./macosx_setup/macos_setup_script.sh
Copy the content of file .gitconfig
to ~/.gitconfig
.
Install Zsh: brew install zsh
Install Oh-My-Zsh following this steps:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Then install the plugin manager:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zplugin/master/doc/install.sh)"
Copy the content of file .zshrc
to ~/.zshrc
.
Install Tmux following this steps:
brew install tmux
Copy the content of file tmux/.tmux.conf
to ~/.tmux.conf
.
Install NeoVim following this steps:
brew install neovim
Install Packer plugin manager:
git clone https://github.com/wbthomason/packer.nvim "$HOME"/.local/share/nvim/site/pack/packer/start/packer.nvim
Copy the content of file init.lua
to ~/.config/nvim/init.lua
.
Then install the plugins by running: vim +PackerUpdate +qall
.
- FZF:
brew install fd fzf the_silver_searcher ripgrep
- Floaterm:
- lazygit
- lazydocker
- lazynpm
- Python deps and Pylint:
pip install --user pynvim
pip3 install --user pynvim
pip3 install neovim-remote
I'm using Neovim 0.10+ configured with Lua. The configuration is structured to be modular and easy to maintain.
Key features of this setup include:
- LSP Integration: Comprehensive language support using
nvim-lspconfig
,mason.nvim
for managing language servers, and enhanced UI throughLspUI
,fidget.nvim
, andtrouble.nvim
. - Fuzzy Finding: Extensive use of
telescope.nvim
for finding files, buffers, commands, and more, with custom extensions for Git and language-specific tools. - Syntax and Editing: Advanced syntax highlighting and text objects with
nvim-treesitter
. Enhanced editing with plugins likenvim-autopairs
,nvim-surround
, andComment.nvim
. - Debugging: Integrated debugging support with
nvim-dap
andnvim-dap-ui
. - Filetype-Specific Configs: Custom settings and keymaps for languages like Java, C#, Python, and TypeScript located in the
nvim/ftplugin
directory. - Custom Snippets: A collection of personal snippets for Java and other languages.
The nvim
directory contains the Neovim configuration.
Here's a breakdown of its structure and contents:
init.lua
: the main entry point for Neovim configuration.plugins.lua
: manages all the plugins using Packer.lua/
: the core of your Lua-based configuration.config/
: contains the base configurations for options, keybindings, and colorscheme.plug-config/
: holds the specific configurations for many of the plugins, such as telescope, treesitter, lsp, and completion.custom/
: contains custom Lua modules with utility functions and buffer hooks.telescope/
: includes custom extensions for Telescope, like k8s.lua for Kubernetes and langtools for language-specific tasks.
ftplugin/
: contains filetype-specific settings. For example, java.lua configures Java-specific options, keymaps, and LSP settings with jdtls. I have similar configurations for C#, JavaScript, Python, and TypeScript.keybindings.vim
&options.vim
: Legacy Vimscript configurations for keybindings and options. Used in others softwares that support Neovim-like configuration.plug-config/omnisharp.vim
: Vimscript-based configuration for the OmniSharp plugin.snippets/
: contains JSON-defined code snippets for the Java.
I'm using VSCode with Vim extension which has my favorites Vim plugins (like vim-surround, vim-airline). Using it I can use all the Vim power for editing and navigation.
I've been exploring some configuration and key mappings to allow me to use the same key mappings that I'm using on NeoVim (like navigate between panes, motion, leader key and so on). Here are my configs:
- VSCode settings: configuration to enable the same behavior (configs with prefix
vim.
). - VSCode key mappings: key mappings to navigate between panes, double
j
on insert mode, go to definition and implementation, so on.