Skip to content

v420v/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles
========

Personal configuration files for macOS development environment.


Directory Structure
-------------------
  .zshrc                  Zsh shell configuration (prompt, plugins)
  zsh/
    .zsh_aliases          Shell aliases (eza, etc.)
  nvim/
    init.lua              Neovim entry point
    lua/
      options.lua         Editor options (indentation, UI, etc.)
      keymaps.lua         Global key mappings
      plugins.lua         Plugin declarations (packer.nvim)
      plugins/
        treesitter.lua    Syntax highlighting + language indent settings
        lualine.lua       Status line
        nvim-tree.lua     File explorer
        bufferline.lua    Buffer tabs
        telescope.lua     Fuzzy finder
        spectre.lua       Project-wide search and replace
        gitsigns.lua      Git diff signs in gutter
        lsp.lua           LSP, Mason, diagnostics
        cmp.lua           Autocompletion (nvim-cmp + LuaSnip)
        autopairs.lua     Auto bracket/tag pairing
  git/
    .gitconfig            Git user, aliases, editor settings
    ignore                Global gitignore
  alacritty/
    alacritty.toml        Alacritty terminal configuration
  wezterm/
    wezterm.lua           WezTerm terminal configuration
  symlink.sh              Script to create all symbolic links


Setup
-----
1. Clone this repo to ~/dotfiles

2. Run the symlink script:
       chmod +x symlink.sh
       ./symlink.sh

   This creates the following symlinks:
       ~/.config/alacritty/alacritty.toml
       ~/.config/wezterm/wezterm.lua
       ~/.config/nvim               -> nvim/
       ~/.gitconfig
       ~/.config/git/ignore
       ~/.zsh_aliases
       ~/.zshrc

3. Open Neovim. On first launch, packer.nvim bootstraps itself
   and installs all plugins. Run :PackerSync to ensure everything
   is up to date.

4. Mason (LSP installer) will install language servers automatically.
   To manage them manually: :Mason


Neovim Key Mappings (Leader = Space)
--------------------------------------
  File Explorer
    <leader>e         Toggle file explorer (nvim-tree)

  Buffers
    <Tab> / <S-Tab>   Next / previous buffer
    <leader>l / h     Next / previous buffer
    <leader>d / D     Delete buffer (normal / force)

  Telescope
    <leader>ff        Find files
    <leader>fg        Live grep
    <leader>fb        Find open buffers
    <leader>fh        Find help tags

  Search & Replace (Spectre)
    <leader>sr        Open project-wide search/replace
    <leader>sw        Search current word

  Git (Gitsigns)
    <leader>gh        Preview hunk
    <leader>gd        Diff current file
    <leader>gb        Toggle line blame
    <leader>gs / gu   Stage / undo stage hunk
    ]h / [h           Next / previous hunk

  LSP
    jd / jD           Go to definition / declaration
    ji / jr           Go to implementation / references
    K                 Hover documentation
    <leader>rn        Rename symbol
    <leader>ca        Code action
    <leader>f         Format file
    ]d / [d           Next / previous diagnostic

  Windows
    <C-h/j/k/l>       Move between splits


macOS Recommendations
---------------------
  # Disable .DS_Store on network drives
  defaults write com.apple.desktopservices DSDontWriteNetworkStores true

  # Fast key repeat
  defaults write NSGlobalDomain KeyRepeat -int 1
  defaults write NSGlobalDomain InitialKeyRepeat -int 15

  # Show hidden files in Finder
  defaults write com.apple.finder AppleShowAllFiles ON

  # Disable press-and-hold for key repeat (needed for nvim, etc.)
  defaults write -g ApplePressAndHoldEnabled -bool false

About

dotfiles

Resources

Stars

Watchers

Forks

Contributors