Skip to content
/ nvim Public

neovim configuration with automatic installation all setup and plugins

Notifications You must be signed in to change notification settings

DuckingGo/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim IDE Configuration untuk Mahasiswa Teknik Informatika

Konfigurasi Neovim yang lengkap dan modern untuk mahasiswa teknik informatika dengan fitur-fitur canggih dan interface yang menarik.

🚀 Fitur Utama

🎨 Interface & UI

  • Theme: Catppuccin Mocha - theme modern dan eye-friendly
  • Statusline: Lualine dengan informasi lengkap (mode, file, git, LSP, diagnostics)
  • Startup Screen: Alpha dashboard dengan menu quick access
  • File Explorer: Nvim-tree dengan icons dan git integration
  • Indent Guides: Rainbow indent lines untuk readability
  • Smooth Scrolling: Neoscroll untuk scrolling yang halus

💻 Development Tools

Language Server Protocol (LSP)

  • Mason: Auto-install LSP servers untuk berbagai bahasa
  • Support untuk: TypeScript/JavaScript, Python, Rust, Go, C/C++, Java, Lua, HTML/CSS, dan banyak lagi
  • Auto-completion: nvim-cmp dengan snippet support
  • Error Diagnostics: Real-time error detection dan suggestions

Git Integration 🔥

  • Fugitive: Git commands dalam Neovim
  • Gitsigns: Git signs di gutter dengan hunk preview
  • LazyGit: Terminal-based git UI terintegrasi
  • GitHub Integration: Octo.nvim untuk GitHub issues dan PRs

AI Assistant 🤖

  • GitHub Copilot: Auto-completion dengan AI
  • Shortcuts untuk accept suggestions dan navigate
  • Toggle on/off per filetype

Discord Rich Presence 🎮

  • Presence.nvim: Show coding activity di Discord
  • Custom file type icons dan status
  • Toggle on/off sesuai kebutuhan

🔧 Productivity Features

  • Telescope: Fuzzy finder untuk files, strings, dan git
  • Which-key: Show available keybindings
  • Auto-pairs: Automatic bracket/quote pairing
  • Surround: Easy text surrounding with brackets/quotes
  • Comment: Smart commenting dengan context awareness
  • Terminal: Integrated floating terminal dengan multiple instances
  • Session Management: Auto-save dan restore sessions
  • Trouble: Better diagnostic viewer
  • Todo Comments: Highlight dan navigate TODO/FIXME comments

🛠 Code Quality

  • Formatting: Conform.nvim dengan Prettier, Black, Stylua, dll
  • Linting: nvim-lint dengan ESLint, Pylint, dll
  • Treesitter: Advanced syntax highlighting dan text objects
  • LSP Code Actions: Auto-fix dan refactoring

⌨️ Shortcuts Penting

Leader Key: Space

File Operations

  • <leader>ff - Find files
  • <leader>fr - Recent files
  • <leader>fs - Find string in project
  • <leader>fb - Show buffers
  • <leader>ee - Toggle file explorer
  • <leader>w - Save file
  • <leader>q - Quit

Git Operations

  • <leader>gg - Open LazyGit
  • <leader>gs - Git status
  • <leader>gc - Git commit
  • <leader>gp - Git push
  • <leader>hs - Stage hunk
  • <leader>hr - Reset hunk
  • <leader>hp - Preview hunk

LSP & Code

  • gd - Go to definition
  • gr - Show references
  • K - Show hover info
  • <leader>ca - Code actions
  • <leader>rn - Rename symbol
  • <leader>f - Format code

Terminal

  • <C-\> - Toggle floating terminal
  • <leader>tf - Floating terminal
  • <leader>th - Horizontal terminal
  • <leader>tv - Vertical terminal

Window Navigation

  • <C-h/j/k/l> - Navigate windows
  • <leader>sv - Split vertically
  • <leader>sh - Split horizontally

AI & Tools

  • <C-j> - Accept Copilot suggestion
  • <leader>cp - Toggle Copilot
  • <leader>dp - Toggle Discord Presence

📋 Requirements

Essential Tools

# Package manager (pilih salah satu)
sudo pacman -S neovim git nodejs npm python3 pip ripgrep fd # Arch Linux
sudo apt install neovim git nodejs npm python3 python3-pip ripgrep fd-find # Ubuntu/Debian

# Language servers akan auto-install via Mason

Optional Tools

# LazyGit
sudo pacman -S lazygit  # Arch
# atau
sudo apt install lazygit  # Ubuntu (via PPA)

# GitHub CLI (untuk Octo.nvim)
sudo pacman -S github-cli  # Arch
sudo apt install gh  # Ubuntu

# Better tools
sudo pacman -S bat exa htop  # Arch
sudo apt install bat exa htop  # Ubuntu

🚀 Installation

Automated Installation (Recommended)

Gunakan installer script untuk setup otomatis:

# Dari direktori konfigurasi Neovim
cd ~/.config/nvim
chmod +x installer.sh
./installer.sh

Installer akan:

  • Backup konfigurasi lama jika ada
  • Install dependencies yang dibutuhkan (git, nodejs, ripgrep, fd)
  • Install Neovim versi terbaru
  • Launch Neovim dan sync semua plugins
  • Memberikan instruksi untuk setup GitHub Copilot dan CLI

Manual Installation

  1. Backup konfigurasi lama (jika ada):
mv ~/.config/nvim ~/.config/nvim.bak
  1. Install dependencies:
# Arch Linux
sudo pacman -S neovim git nodejs npm python3 pip ripgrep fd

# Ubuntu/Debian
sudo apt update
sudo apt install neovim git nodejs npm python3 python3-pip ripgrep fd-find
  1. Clone/copy konfigurasi ini:
# Konfigurasi sudah ada di ~/.config/nvim
  1. Launch Neovim:
nvim
  1. Wait for plugin installation - Lazy.nvim akan auto-install semua plugin

  2. Setup GitHub Copilot (optional):

:Copilot setup
  1. Setup GitHub CLI untuk Octo.nvim (optional):
gh auth login

🎯 Tips untuk Mahasiswa TI

Workflow Coding

  1. Project Setup: <leader>fp untuk switch project
  2. File Explorer: <leader>ee untuk browse files
  3. Quick Search: <leader>ff untuk find files, <leader>fs untuk search code
  4. Git Workflow: <leader>gg untuk LazyGit interface
  5. Terminal: <C-\> untuk terminal commands

Debug & Problem Solving

  1. Error Navigation: ]d dan [d untuk next/prev diagnostic
  2. Trouble Window: <leader>xx untuk overview semua errors
  3. LSP Info: K untuk documentation, gd untuk definition
  4. Todo Management: ]t dan [t untuk navigate TODOs

Productivity Hacks

  1. Session Restore: <leader>qs untuk restore last session
  2. Zen Mode: <leader>zz untuk focused coding
  3. Which Key: Press <leader> dan tunggu untuk lihat available commands
  4. Comment Code: gcc untuk line, gc di visual mode

Multi-Language Support

  • JavaScript/TypeScript: Full LSP, formatting (Prettier), linting (ESLint)
  • Python: LSP (Pyright), formatting (Black), linting (Pylint)
  • Rust: LSP (rust-analyzer), formatting (rustfmt)
  • C/C++: LSP (clangd), formatting (clang-format)
  • Java: LSP (jdtls), debugging support
  • Go: LSP (gopls), formatting (gofmt)

🛠 Customization

Menambah Language Server

Edit lua/plugins/lsp.lua dan tambahkan di ensure_installed:

ensure_installed = {
  "your_language_server",
  -- ...
}

Custom Keymaps

Edit lua/config/keymaps.lua untuk menambah shortcuts personal.

Theme Changes

Edit lua/plugins/colorscheme.lua untuk ganti tema atau tweak colors.

Plugin Tambahan

Tambah file baru di lua/plugins/ untuk plugin tambahan.

🤝 Troubleshooting

Installation Issues

Jika ada masalah dengan installer:

# Jalankan installer dengan verbose output
bash -x ./installer.sh

# Atau install manual dependencies
sudo apt update && sudo apt install neovim git nodejs npm python3 python3-pip ripgrep fd-find

Plugin Issues

:Lazy clean
:Lazy update

LSP Issues

:Mason
:LspInfo
:LspRestart

Performance Issues

  • Disable unused plugins di file plugin masing-masing
  • Adjust vim.opt.updatetime di lua/config/options.lua

Git Issues

  • Pastikan git configured: git config --global user.name "Your Name"
  • GitHub token untuk Octo.nvim: gh auth login

📚 Learning Resources

  • Neovim: :help atau :Tutor untuk basic vim
  • Lua: Learn Lua in Y minutes untuk scripting
  • LSP: :help lsp untuk understanding Language Server Protocol
  • Git: Interactive git tutorials online

🎉 Happy Coding!

Konfigurasi ini dibuat khusus untuk mahasiswa Teknik Informatika dengan workflow modern dan tools yang relevant untuk development. Semua shortcut dan fitur dirancang untuk maximize productivity dalam coding, git management, dan project collaboration.

Selamat coding! 🚀

About

neovim configuration with automatic installation all setup and plugins

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published