Update all configs: migrate nvim to LazyVim, refresh fish/kitty/tmux
- nvim: AstroNvim → LazyVim with Dracula theme, add python/yaml/docker/json/markdown extras - kitty: restructure to .config/kitty/, add catppuccin-mocha theme - fish: add lazy-loading for credentials, gitea config, chrome-debug function - tmux: update config - Move dotfiles repo from ~/Projects/config/dotfiles to ~/dotfiles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
150
fish/.config/fish/completions/wrangler.fish
Normal file
150
fish/.config/fish/completions/wrangler.fish
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
# fish completion for wrangler -*- shell-script -*-
|
||||||
|
|
||||||
|
# Define shell completion directives
|
||||||
|
set -l ShellCompDirectiveError 1
|
||||||
|
set -l ShellCompDirectiveNoSpace 2
|
||||||
|
set -l ShellCompDirectiveNoFileComp 4
|
||||||
|
set -l ShellCompDirectiveFilterFileExt 8
|
||||||
|
set -l ShellCompDirectiveFilterDirs 16
|
||||||
|
set -l ShellCompDirectiveKeepOrder 32
|
||||||
|
|
||||||
|
function __wrangler_debug
|
||||||
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||||
|
if test -n "$file"
|
||||||
|
echo "$argv" >> $file
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __wrangler_perform_completion
|
||||||
|
__wrangler_debug "Starting __wrangler_perform_completion"
|
||||||
|
|
||||||
|
# Extract all args except the completion flag
|
||||||
|
set -l args (string match -v -- "--completion=" (commandline -opc))
|
||||||
|
|
||||||
|
# Extract the current token being completed
|
||||||
|
set -l current_token (commandline -ct)
|
||||||
|
|
||||||
|
# Check if current token starts with a dash
|
||||||
|
set -l flag_prefix ""
|
||||||
|
if string match -q -- "-*" $current_token
|
||||||
|
set flag_prefix "--flag="
|
||||||
|
end
|
||||||
|
|
||||||
|
__wrangler_debug "Current token: $current_token"
|
||||||
|
__wrangler_debug "All args: $args"
|
||||||
|
|
||||||
|
# Call the completion program and get the results
|
||||||
|
set -l requestComp "wrangler complete -- $args"
|
||||||
|
__wrangler_debug "Calling $requestComp"
|
||||||
|
set -l results (eval $requestComp 2> /dev/null)
|
||||||
|
|
||||||
|
# Some programs may output extra empty lines after the directive.
|
||||||
|
# Let's ignore them or else it will break completion.
|
||||||
|
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||||
|
for line in $results[-1..1]
|
||||||
|
if test (string sub -s 1 -l 1 -- $line) = ":"
|
||||||
|
# The directive
|
||||||
|
set -l directive (string sub -s 2 -- $line)
|
||||||
|
set -l directive_num (math $directive)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# No directive specified, use default
|
||||||
|
if not set -q directive_num
|
||||||
|
set directive_num 0
|
||||||
|
end
|
||||||
|
|
||||||
|
__wrangler_debug "Directive: $directive_num"
|
||||||
|
|
||||||
|
# Process completions based on directive
|
||||||
|
if test $directive_num -eq $ShellCompDirectiveError
|
||||||
|
# Error code. No completion.
|
||||||
|
__wrangler_debug "Received error directive: aborting."
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Filter out the directive (last line)
|
||||||
|
if test (count $results) -gt 0 -a (string sub -s 1 -l 1 -- $results[-1]) = ":"
|
||||||
|
set results $results[1..-2]
|
||||||
|
end
|
||||||
|
|
||||||
|
# No completions, let fish handle file completions unless forbidden
|
||||||
|
if test (count $results) -eq 0
|
||||||
|
if test $directive_num -ne $ShellCompDirectiveNoFileComp
|
||||||
|
__wrangler_debug "No completions, performing file completion"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
__wrangler_debug "No completions, but file completion forbidden"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Filter file extensions
|
||||||
|
if test $directive_num -eq $ShellCompDirectiveFilterFileExt
|
||||||
|
__wrangler_debug "File extension filtering"
|
||||||
|
set -l file_extensions
|
||||||
|
for item in $results
|
||||||
|
if test -n "$item" -a (string sub -s 1 -l 1 -- $item) != "-"
|
||||||
|
set -a file_extensions "*$item"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
__wrangler_debug "File extensions: $file_extensions"
|
||||||
|
|
||||||
|
# Use the file extensions as completions
|
||||||
|
set -l completions
|
||||||
|
for ext in $file_extensions
|
||||||
|
# Get all files matching the extension
|
||||||
|
set -a completions (string replace -r '^.*/' '' -- $ext)
|
||||||
|
end
|
||||||
|
|
||||||
|
for item in $completions
|
||||||
|
echo -e "$item "
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Filter directories
|
||||||
|
if test $directive_num -eq $ShellCompDirectiveFilterDirs
|
||||||
|
__wrangler_debug "Directory filtering"
|
||||||
|
set -l dirs
|
||||||
|
for item in $results
|
||||||
|
if test -d "$item"
|
||||||
|
set -a dirs "$item/"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for item in $dirs
|
||||||
|
echo -e "$item "
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process remaining completions
|
||||||
|
for item in $results
|
||||||
|
if test -n "$item"
|
||||||
|
# Check if the item has a description
|
||||||
|
if string match -q "* *" -- "$item"
|
||||||
|
set -l completion_parts (string split -- "$item")
|
||||||
|
set -l comp $completion_parts[1]
|
||||||
|
set -l desc $completion_parts[2]
|
||||||
|
|
||||||
|
# Add the completion and description
|
||||||
|
echo -e "$comp $desc"
|
||||||
|
else
|
||||||
|
# Add just the completion
|
||||||
|
echo -e "$item "
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# If directive contains NoSpace, tell fish not to add a space after completion
|
||||||
|
if test (math "$directive_num & $ShellCompDirectiveNoSpace") -ne 0
|
||||||
|
return 2
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set up the completion for the wrangler command
|
||||||
|
complete -c wrangler -f -a "(eval __wrangler_perform_completion)"
|
||||||
|
|
||||||
14
fish/.config/fish/conf.d/fish_frozen_key_bindings.fish
Normal file
14
fish/.config/fish/conf.d/fish_frozen_key_bindings.fish
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# This file was created by fish when upgrading to version 4.3, to migrate
|
||||||
|
# the 'fish_key_bindings' variable from its old default scope (universal)
|
||||||
|
# to its new default scope (global). We recommend you delete this file
|
||||||
|
# and configure key bindings in ~/.config/fish/config.fish if needed.
|
||||||
|
|
||||||
|
# set --global fish_key_bindings fish_default_key_bindings
|
||||||
|
|
||||||
|
# Prior to version 4.3, fish shipped an event handler that runs
|
||||||
|
# `set --universal fish_key_bindings fish_default_key_bindings`
|
||||||
|
# whenever the fish_key_bindings variable is erased.
|
||||||
|
# This means that as long as any fish < 4.3 is still running on this system,
|
||||||
|
# we cannot complete the migration.
|
||||||
|
# As a workaround, erase the universal variable at every shell startup.
|
||||||
|
set --erase --universal fish_key_bindings
|
||||||
37
fish/.config/fish/conf.d/fish_frozen_theme.fish
Normal file
37
fish/.config/fish/conf.d/fish_frozen_theme.fish
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# This file was created by fish when upgrading to version 4.3, to migrate
|
||||||
|
# theme variables from universal to global scope.
|
||||||
|
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
|
||||||
|
# To customize your theme, delete this file and see
|
||||||
|
# help interactive#syntax-highlighting
|
||||||
|
# or
|
||||||
|
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
|
||||||
|
# for appropriate commands to add to ~/.config/fish/config.fish instead.
|
||||||
|
# See also the release notes for fish 4.3.0 (run `help relnotes`).
|
||||||
|
|
||||||
|
set --global fish_color_autosuggestion brblack
|
||||||
|
set --global fish_color_cancel -r
|
||||||
|
set --global fish_color_command normal
|
||||||
|
set --global fish_color_comment red
|
||||||
|
set --global fish_color_cwd green
|
||||||
|
set --global fish_color_cwd_root red
|
||||||
|
set --global fish_color_end green
|
||||||
|
set --global fish_color_error brred
|
||||||
|
set --global fish_color_escape brcyan
|
||||||
|
set --global fish_color_history_current --bold
|
||||||
|
set --global fish_color_host normal
|
||||||
|
set --global fish_color_host_remote yellow
|
||||||
|
set --global fish_color_normal normal
|
||||||
|
set --global fish_color_operator brcyan
|
||||||
|
set --global fish_color_param cyan
|
||||||
|
set --global fish_color_quote yellow
|
||||||
|
set --global fish_color_redirection cyan --bold
|
||||||
|
set --global fish_color_search_match white --background=brblack
|
||||||
|
set --global fish_color_selection white --bold --background=brblack
|
||||||
|
set --global fish_color_status red
|
||||||
|
set --global fish_color_user brgreen
|
||||||
|
set --global fish_color_valid_path --underline
|
||||||
|
set --global fish_pager_color_completion normal
|
||||||
|
set --global fish_pager_color_description yellow -i
|
||||||
|
set --global fish_pager_color_prefix normal --bold --underline
|
||||||
|
set --global fish_pager_color_progress brwhite --background=cyan
|
||||||
|
set --global fish_pager_color_selected_background -r
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
|
# Fix fish_complete_path (중복 방지)
|
||||||
|
if not contains ~/.config/fish/completions $fish_complete_path
|
||||||
|
set -g fish_complete_path ~/.config/fish/completions $fish_complete_path
|
||||||
|
end
|
||||||
|
|
||||||
if status is-interactive
|
if status is-interactive
|
||||||
# Commands to run in interactive sessions can go here
|
# Commands to run in interactive sessions can go here
|
||||||
# Set default Node.js version
|
# Set default Node.js version
|
||||||
nvm use lts --silent
|
nvm use 20 --silent
|
||||||
# Add uv to PATH
|
# Add uv to PATH
|
||||||
fish_add_path $HOME/.local/bin
|
fish_add_path $HOME/.local/bin
|
||||||
|
|
||||||
# kitty integration 최적화
|
# kitty integration 최적화
|
||||||
if test "$TERM" = xterm-kitty
|
if test "$TERM" = xterm-kitty
|
||||||
# kitty shell integration 설정 (kssh 제외)
|
# kitty shell integration 설정
|
||||||
alias icat="kitty +kitten icat"
|
alias icat="kitty +kitten icat"
|
||||||
alias kdiff="kitty +kitten diff"
|
alias kdiff="kitty +kitten diff"
|
||||||
|
|
||||||
@@ -24,7 +29,7 @@ if status is-interactive
|
|||||||
alias tml="tmux list-sessions"
|
alias tml="tmux list-sessions"
|
||||||
alias tmk="tmux kill-session -t"
|
alias tmk="tmux kill-session -t"
|
||||||
|
|
||||||
# kitten 유틸리티 alias들 (kssh 제외)
|
# kitten 유틸리티 alias들
|
||||||
alias clipboard="kitty +kitten clipboard"
|
alias clipboard="kitty +kitten clipboard"
|
||||||
alias img="kitty +kitten icat"
|
alias img="kitty +kitten icat"
|
||||||
alias unicode="kitty +kitten unicode_input"
|
alias unicode="kitty +kitten unicode_input"
|
||||||
@@ -39,11 +44,26 @@ end
|
|||||||
set -x VAULT_ADDR "https://vault.anvil.it.com"
|
set -x VAULT_ADDR "https://vault.anvil.it.com"
|
||||||
set -x VAULT_TOKEN "hvs.o7JrzES15uuXRmvlKAJKEaTv"
|
set -x VAULT_TOKEN "hvs.o7JrzES15uuXRmvlKAJKEaTv"
|
||||||
|
|
||||||
# Cloudflare Configuration
|
# Gitea Configuration
|
||||||
set -x CF_API_KEY (vault kv get -field=api_key secret/cloudflare 2>/dev/null || echo "")
|
set -gx GITEA_URL "https://gitea.anvil.it.com"
|
||||||
set -x CF_EMAIL (vault kv get -field=email secret/cloudflare 2>/dev/null || echo "")
|
set -gx GITEA_TOKEN (security find-internet-password -s gitea.anvil.it.com -a kaffa -w 2>/dev/null)
|
||||||
|
|
||||||
|
# Cloudflare Configuration - Lazy Loading
|
||||||
|
function load_cloudflare_credentials
|
||||||
|
if not set -q CF_API_KEY
|
||||||
|
set -gx CF_API_KEY (vault kv get -field=api_key secret/cloudflare 2>/dev/null || echo "")
|
||||||
|
set -gx CF_EMAIL (vault kv get -field=email secret/cloudflare 2>/dev/null || echo "")
|
||||||
|
echo "✓ Cloudflare credentials loaded"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Auto-load when using cf command
|
||||||
|
if command -v cf >/dev/null
|
||||||
|
alias cf='load_cloudflare_credentials && command cf'
|
||||||
|
end
|
||||||
|
|
||||||
alias vi=nvim
|
alias vi=nvim
|
||||||
|
alias ssh=tssh
|
||||||
alias docker "limactl shell docker -- docker"
|
alias docker "limactl shell docker -- docker"
|
||||||
alias podman "limactl shell podman -- podman"
|
alias podman "limactl shell podman -- podman"
|
||||||
alias ss='netstat -an'
|
alias ss='netstat -an'
|
||||||
@@ -51,3 +71,28 @@ alias ss='netstat -an'
|
|||||||
# Set default editor for Claude Code /memory command
|
# Set default editor for Claude Code /memory command
|
||||||
set -Ux VISUAL nvim
|
set -Ux VISUAL nvim
|
||||||
set -Ux EDITOR nvim
|
set -Ux EDITOR nvim
|
||||||
|
|
||||||
|
# Added by Antigravity
|
||||||
|
fish_add_path /Users/kaffa/.antigravity/antigravity/bin
|
||||||
|
|
||||||
|
# ══════════════════════════════════════════════════════════════════
|
||||||
|
# Claude Code tmux 단축키
|
||||||
|
# ══════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
# Claude 세션 빠른 시작
|
||||||
|
alias tc='tmux-claude'
|
||||||
|
|
||||||
|
# 현재 디렉토리에서 Claude 세션
|
||||||
|
alias tcc='tmux-claude (pwd)'
|
||||||
|
|
||||||
|
# tmux 패널 내용 복사 (최근 1000줄)
|
||||||
|
function tcopy
|
||||||
|
tmux capture-pane -pS -1000 | pbcopy
|
||||||
|
echo "패널 내용 복사됨 (최근 1000줄)"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Claude 응답 검색 (tmux 히스토리에서)
|
||||||
|
function csearch
|
||||||
|
tmux copy-mode
|
||||||
|
tmux send-keys "?" "$argv" Enter
|
||||||
|
end
|
||||||
|
|||||||
53
fish/.config/fish/config.fish.backup
Normal file
53
fish/.config/fish/config.fish.backup
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
if status is-interactive
|
||||||
|
# Commands to run in interactive sessions can go here
|
||||||
|
# Set default Node.js version
|
||||||
|
nvm use lts --silent
|
||||||
|
# Add uv to PATH
|
||||||
|
fish_add_path $HOME/.local/bin
|
||||||
|
|
||||||
|
# kitty integration 최적화
|
||||||
|
if test "$TERM" = xterm-kitty
|
||||||
|
# kitty shell integration 설정 (kssh 제외)
|
||||||
|
alias icat="kitty +kitten icat"
|
||||||
|
alias kdiff="kitty +kitten diff"
|
||||||
|
|
||||||
|
# 빠른 디렉토리 이동 (kitty의 프롬프트 마킹 활용)
|
||||||
|
bind \cg 'history | fzf | read -l result; and commandline $result'
|
||||||
|
|
||||||
|
# 파일 미리보기
|
||||||
|
alias preview="fzf --preview 'if test -d {}; eza -la {}; else; bat --color=always {}; end'"
|
||||||
|
|
||||||
|
# tmux 유틸리티 함수들
|
||||||
|
alias tm="tmux"
|
||||||
|
alias tma="tmux attach-session -t"
|
||||||
|
alias tmn="tmux new-session -s"
|
||||||
|
alias tml="tmux list-sessions"
|
||||||
|
alias tmk="tmux kill-session -t"
|
||||||
|
|
||||||
|
# kitten 유틸리티 alias들 (kssh 제외)
|
||||||
|
alias clipboard="kitty +kitten clipboard"
|
||||||
|
alias img="kitty +kitten icat"
|
||||||
|
alias unicode="kitty +kitten unicode_input"
|
||||||
|
alias hgrep="kitty +kitten hyperlinked_grep"
|
||||||
|
|
||||||
|
# 이미지 갤러리 함수 (간단한 alias로 변경)
|
||||||
|
alias imgls="find . -maxdepth 1 -type f \( -name '*.png' -o -name '*.jpg' -o -name '*.jpeg' -o -name '*.gif' -o -name '*.webp' \) | head -5 | xargs -I {} kitty +kitten icat --align center {}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Vault Configuration
|
||||||
|
set -x VAULT_ADDR "https://vault.anvil.it.com"
|
||||||
|
set -x VAULT_TOKEN "hvs.o7JrzES15uuXRmvlKAJKEaTv"
|
||||||
|
|
||||||
|
# Cloudflare Configuration
|
||||||
|
set -x CF_API_KEY (vault kv get -field=api_key secret/cloudflare 2>/dev/null || echo "")
|
||||||
|
set -x CF_EMAIL (vault kv get -field=email secret/cloudflare 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
alias vi=nvim
|
||||||
|
alias docker "limactl shell docker -- docker"
|
||||||
|
alias podman "limactl shell podman -- podman"
|
||||||
|
alias ss='netstat -an'
|
||||||
|
|
||||||
|
# Set default editor for Claude Code /memory command
|
||||||
|
set -Ux VISUAL nvim
|
||||||
|
set -Ux EDITOR nvim
|
||||||
30
fish/.config/fish/functions/chrome-debug.fish
Normal file
30
fish/.config/fish/functions/chrome-debug.fish
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
function chrome-debug --description "Launch Chrome with remote debugging port"
|
||||||
|
set -l port 9222
|
||||||
|
set -l profile_dir "$HOME/.chrome-debug-profile"
|
||||||
|
|
||||||
|
# Parse port argument
|
||||||
|
for arg in $argv
|
||||||
|
if string match -qr '^\d+$' $arg
|
||||||
|
set port $arg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Create persistent debug profile directory
|
||||||
|
mkdir -p $profile_dir
|
||||||
|
|
||||||
|
# Kill existing Chrome
|
||||||
|
pkill -f "Google Chrome" 2>/dev/null
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Launch Chrome with persistent debug profile
|
||||||
|
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
|
||||||
|
--remote-debugging-port=$port \
|
||||||
|
--user-data-dir=$profile_dir &
|
||||||
|
|
||||||
|
disown 2>/dev/null
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "✓ Chrome (디버그 프로필) - port $port"
|
||||||
|
echo " 프로필: $profile_dir"
|
||||||
|
echo "→ agent-browser connect $port"
|
||||||
|
end
|
||||||
@@ -1,315 +0,0 @@
|
|||||||
# kitty 터미널 설정 파일
|
|
||||||
# 작성 일시: 2025-08-17
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 폰트 설정
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# 기본 폰트 크기 (17pt로 설정 - 적당한 크기)
|
|
||||||
font_size 17.0
|
|
||||||
|
|
||||||
# 폰트 패밀리 (Fira Code Nerd Font)
|
|
||||||
font_family FiraCode Nerd Font Light
|
|
||||||
bold_font FiraCode Nerd Font Regular
|
|
||||||
italic_font FiraCode Nerd Font Light Italic
|
|
||||||
bold_italic_font FiraCode Nerd Font Italic
|
|
||||||
|
|
||||||
# Nerd Font 아이콘 최적화
|
|
||||||
narrow_symbols U+E0A0-U+E0A2,U+E0B0-U+E0B3
|
|
||||||
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E62F,U+E700-U+E7C5,U+F000-U+F2E0,U+F300-U+F31C,U+F400-U+F4A9,U+F500-U+F8FF,U+F0001-U+F1AF0 FiraCode Nerd Font
|
|
||||||
|
|
||||||
# 한글 폰트 최적화 설정
|
|
||||||
# 한글도 Fira Code로 통일 (영문과 일관성)
|
|
||||||
# symbol_map U+AC00-U+D7A3,U+1100-U+11FF,U+3130-U+318F,U+A960-U+A97F,U+D7B0-U+D7FF,U+302E-U+302F D2Coding
|
|
||||||
|
|
||||||
# 폰트 렌더링 최적화
|
|
||||||
text_composition_strategy platform
|
|
||||||
font_features FiraCode-Nerd-Font +liga +calt
|
|
||||||
|
|
||||||
# 글자 간격 및 라인 높이 최적화
|
|
||||||
adjust_line_height 110%
|
|
||||||
adjust_column_width 0
|
|
||||||
modify_font underline_position 2
|
|
||||||
modify_font underline_thickness 150%
|
|
||||||
|
|
||||||
# 안티앨리어싱 및 힌팅 최적화 (macOS)
|
|
||||||
macos_thicken_font 0
|
|
||||||
text_fg_override_threshold 0
|
|
||||||
disable_ligatures cursor
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 색상 및 테마 설정 - Dracula Theme
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# Dracula 테마 적용
|
|
||||||
include dracula.conf
|
|
||||||
|
|
||||||
# # 이전 색상 테마 (어두운 배경에 밝은 글씨) - 백업용 주석
|
|
||||||
# background #1e1e1e
|
|
||||||
# foreground #d4d4d4
|
|
||||||
# cursor #ffffff
|
|
||||||
#
|
|
||||||
# # 선택 영역 색상
|
|
||||||
# selection_background #264f78
|
|
||||||
# selection_foreground #ffffff
|
|
||||||
#
|
|
||||||
# # URL 링크 색상
|
|
||||||
# url_color #569cd6
|
|
||||||
#
|
|
||||||
# # 터미널 색상 팔레트
|
|
||||||
# color0 #1e1e1e
|
|
||||||
# color1 #f44747
|
|
||||||
# color2 #608b4e
|
|
||||||
# color3 #dcdcaa
|
|
||||||
# color4 #569cd6
|
|
||||||
# color5 #c678dd
|
|
||||||
# color6 #56b6c2
|
|
||||||
# color7 #d4d4d4
|
|
||||||
# color8 #808080
|
|
||||||
# color9 #f44747
|
|
||||||
# color10 #608b4e
|
|
||||||
# color11 #dcdcaa
|
|
||||||
# color12 #569cd6
|
|
||||||
# color13 #c678dd
|
|
||||||
# color14 #56b6c2
|
|
||||||
# color15 #ffffff
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 창 및 레이아웃 설정
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# 창 여백 설정
|
|
||||||
window_padding_width 8
|
|
||||||
|
|
||||||
# 창 테두리 제거
|
|
||||||
draw_minimal_borders yes
|
|
||||||
window_border_width 0.5pt
|
|
||||||
active_border_color #569cd6
|
|
||||||
inactive_border_color #808080
|
|
||||||
|
|
||||||
# 창 크기 기억
|
|
||||||
remember_window_size yes
|
|
||||||
initial_window_width 100c
|
|
||||||
initial_window_height 30c
|
|
||||||
|
|
||||||
# 탭바 설정
|
|
||||||
tab_bar_edge top
|
|
||||||
tab_bar_style powerline
|
|
||||||
tab_powerline_style slanted
|
|
||||||
tab_bar_margin_width 0.0
|
|
||||||
tab_bar_margin_height 5.0 0.0
|
|
||||||
tab_bar_min_tabs 2
|
|
||||||
tab_switch_strategy previous
|
|
||||||
|
|
||||||
# 활성/비활성 탭 색상 (Dracula에서 자동 적용)
|
|
||||||
# active_tab_foreground #000
|
|
||||||
# active_tab_background #eee
|
|
||||||
# inactive_tab_foreground #444
|
|
||||||
# inactive_tab_background #999
|
|
||||||
|
|
||||||
# 새 창/탭에서 현재 디렉토리 유지
|
|
||||||
map cmd+t new_tab_with_cwd
|
|
||||||
map cmd+enter new_window_with_cwd
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 키보드 단축키 설정
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# 폰트 크기 조절
|
|
||||||
map cmd+equal change_font_size all +1.0
|
|
||||||
map cmd+plus change_font_size all +1.0
|
|
||||||
map cmd+minus change_font_size all -1.0
|
|
||||||
map cmd+0 change_font_size all 0
|
|
||||||
|
|
||||||
# 투명도 조절
|
|
||||||
map cmd+shift+equal set_background_opacity +0.1
|
|
||||||
map cmd+shift+minus set_background_opacity -0.1
|
|
||||||
map cmd+shift+0 set_background_opacity 0.85
|
|
||||||
|
|
||||||
# 창 분할
|
|
||||||
map cmd+d new_window_with_cwd
|
|
||||||
map cmd+shift+d split_window_right
|
|
||||||
map cmd+shift+v split_window_down
|
|
||||||
|
|
||||||
# 창 간 이동
|
|
||||||
map cmd+left previous_window
|
|
||||||
map cmd+right next_window
|
|
||||||
|
|
||||||
# 탭 관리
|
|
||||||
map cmd+1 goto_tab 1
|
|
||||||
map cmd+2 goto_tab 2
|
|
||||||
map cmd+3 goto_tab 3
|
|
||||||
map cmd+4 goto_tab 4
|
|
||||||
map cmd+5 goto_tab 5
|
|
||||||
|
|
||||||
# 복사/붙여넣기
|
|
||||||
map cmd+c copy_to_clipboard
|
|
||||||
map cmd+v paste_from_clipboard
|
|
||||||
map cmd+shift+s paste_from_selection
|
|
||||||
|
|
||||||
# 빠른 검색
|
|
||||||
map cmd+f show_scrollback
|
|
||||||
map cmd+g scroll_to_prompt 1
|
|
||||||
map cmd+shift+g scroll_to_prompt -1
|
|
||||||
|
|
||||||
# 창 관리 개선
|
|
||||||
map cmd+w close_window
|
|
||||||
map cmd+shift+w close_tab
|
|
||||||
map cmd+shift+t new_tab
|
|
||||||
map cmd+option+left previous_tab
|
|
||||||
map cmd+option+right next_tab
|
|
||||||
|
|
||||||
# 전체화면
|
|
||||||
map cmd+shift+f toggle_fullscreen
|
|
||||||
|
|
||||||
# 줌 인/아웃
|
|
||||||
map cmd+shift+equal increase_font_size
|
|
||||||
map cmd+shift+minus decrease_font_size
|
|
||||||
map cmd+shift+backspace restore_font_size
|
|
||||||
|
|
||||||
# 빠른 설정 다시로드
|
|
||||||
map cmd+shift+r load_config_file
|
|
||||||
|
|
||||||
# Fish shell 단축키 추가
|
|
||||||
map cmd+shift+z scroll_to_prompt -1
|
|
||||||
map cmd+shift+x scroll_to_prompt 1
|
|
||||||
map cmd+shift+o show_last_command_output
|
|
||||||
|
|
||||||
# Fish shell 명령어 실행 결과 보기
|
|
||||||
map cmd+ctrl+g show_scrollback
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# tmux 통합 키 매핑
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# tmux 세션 관리
|
|
||||||
map cmd+shift+n launch --type=tab --title="New Session" fish -c "tmux new-session"
|
|
||||||
map cmd+shift+a launch --type=tab --title="Attach Session" fish -c "tmux attach || tmux new-session"
|
|
||||||
|
|
||||||
# tmux 창/패널 이동 (kitty + tmux 협력)
|
|
||||||
map cmd+shift+left send_text all \x01h
|
|
||||||
map cmd+shift+right send_text all \x01l
|
|
||||||
map cmd+shift+up send_text all \x01k
|
|
||||||
map cmd+shift+down send_text all \x01j
|
|
||||||
|
|
||||||
# tmux 세션 선택
|
|
||||||
map cmd+shift+s launch --type=overlay fish -c "tmux choose-session"
|
|
||||||
|
|
||||||
# 클립보드 히스토리 관리 (kitten 사용)
|
|
||||||
map cmd+shift+h launch --type=overlay --title="Clipboard History" kitty +kitten clipboard
|
|
||||||
|
|
||||||
# 이미지 뷰어 (icat kitten)
|
|
||||||
map cmd+shift+i launch --type=overlay --title="Image Viewer" fish -c "ls *.{png,jpg,jpeg,gif,webp} 2>/dev/null | head -10 | xargs -I {} kitty +kitten icat --align center {}"
|
|
||||||
|
|
||||||
# 파일 diff 뷰어 (kitten diff)
|
|
||||||
map cmd+shift+d launch --type=overlay --title="File Diff" fish -c "read -P 'File 1: ' file1; read -P 'File 2: ' file2; kitty +kitten diff $file1 $file2"
|
|
||||||
|
|
||||||
# 유니코드 입력기
|
|
||||||
map cmd+shift+u launch --type=overlay --title="Unicode Input" kitty +kitten unicode_input
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# Shell Integration 설정
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# Shell integration 활성화 (fish, zsh, bash 지원)
|
|
||||||
shell_integration enabled
|
|
||||||
|
|
||||||
# 기본 셸을 fish로 설정
|
|
||||||
shell /opt/homebrew/bin/fish
|
|
||||||
|
|
||||||
# 프롬프트 마킹 활성화 (명령어 구분)
|
|
||||||
shell_integration_path /opt/homebrew/bin/fish
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 성능 및 기타 설정
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# 스크롤백 라인 수
|
|
||||||
scrollback_lines 10000
|
|
||||||
|
|
||||||
# 마우스 지원 강화
|
|
||||||
mouse_hide_wait 3.0
|
|
||||||
copy_on_select yes
|
|
||||||
strip_trailing_spaces smart
|
|
||||||
select_by_word_characters @-./_~?&=%+#
|
|
||||||
|
|
||||||
# 터미널 벨 비활성화
|
|
||||||
enable_audio_bell no
|
|
||||||
visual_bell_duration 0.0
|
|
||||||
|
|
||||||
# URL 및 파일 경로 인식
|
|
||||||
detect_urls yes
|
|
||||||
url_style curly
|
|
||||||
open_url_with default
|
|
||||||
|
|
||||||
# 스크롤 최적화
|
|
||||||
wheel_scroll_multiplier 5.0
|
|
||||||
touch_scroll_multiplier 1.0
|
|
||||||
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
|
|
||||||
|
|
||||||
# 자동 업데이트 확인
|
|
||||||
update_check_interval 24
|
|
||||||
|
|
||||||
# 시작시 최적화
|
|
||||||
startup_session none
|
|
||||||
allow_hyperlinks yes
|
|
||||||
|
|
||||||
# 이모지 및 리가처 지원
|
|
||||||
disable_ligatures never
|
|
||||||
|
|
||||||
# 유니코드 입력 지원 강화
|
|
||||||
# 원격 제어는 보안상 비활성화 (필요시에만 활성화)
|
|
||||||
# allow_remote_control yes
|
|
||||||
# listen_on unix:/tmp/kitty
|
|
||||||
|
|
||||||
# 폰트 렌더링 품질 향상
|
|
||||||
repaint_delay 10
|
|
||||||
input_delay 3
|
|
||||||
|
|
||||||
# 배경 투명도 설정 (0.0 = 완전 투명, 1.0 = 완전 불투명)
|
|
||||||
background_opacity 0.8
|
|
||||||
|
|
||||||
# 동적 투명도 조절 활성화
|
|
||||||
dynamic_background_opacity yes
|
|
||||||
|
|
||||||
# GPU 가속 사용
|
|
||||||
sync_to_monitor yes
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 한국어 입력 최적화
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# IME 지원 향상
|
|
||||||
macos_option_as_alt yes
|
|
||||||
macos_quit_when_last_window_closed yes
|
|
||||||
macos_colorspace srgb
|
|
||||||
macos_hide_from_tasks no
|
|
||||||
|
|
||||||
# 한글 입력시 커서 깜빡임 최적화
|
|
||||||
cursor_blink_interval 0.5
|
|
||||||
cursor_stop_blinking_after 15.0
|
|
||||||
|
|
||||||
# 한글 입력 지연 최소화
|
|
||||||
macos_traditional_fullscreen no
|
|
||||||
hide_window_decorations titlebar-only
|
|
||||||
|
|
||||||
# 한글 조합 문자 처리 개선
|
|
||||||
combine_glyphs yes
|
|
||||||
force_ltr no
|
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# 추가 macOS 최적화
|
|
||||||
# ========================================
|
|
||||||
|
|
||||||
# 창 제목 표시 최적화
|
|
||||||
macos_show_window_title_in menubar
|
|
||||||
macos_menubar_title_max_length 0
|
|
||||||
|
|
||||||
# 커서 최적화
|
|
||||||
macos_custom_beam_cursor yes
|
|
||||||
|
|
||||||
# 창 닫기 확인 비활성화
|
|
||||||
confirm_os_window_close 0
|
|
||||||
|
|
||||||
# 성능 최적화
|
|
||||||
single_window_margin_width -1
|
|
||||||
80
kitty/.config/kitty/catppuccin-mocha.conf
Normal file
80
kitty/.config/kitty/catppuccin-mocha.conf
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# vim:ft=kitty
|
||||||
|
|
||||||
|
## name: Catppuccin Kitty Mocha
|
||||||
|
## author: Catppuccin Org
|
||||||
|
## license: MIT
|
||||||
|
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
|
||||||
|
## blurb: Soothing pastel theme for the high-spirited!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# The basic colors
|
||||||
|
foreground #cdd6f4
|
||||||
|
background #1e1e2e
|
||||||
|
selection_foreground #1e1e2e
|
||||||
|
selection_background #f5e0dc
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor #f5e0dc
|
||||||
|
cursor_text_color #1e1e2e
|
||||||
|
|
||||||
|
# URL underline color when hovering with mouse
|
||||||
|
url_color #f5e0dc
|
||||||
|
|
||||||
|
# Kitty window border colors
|
||||||
|
active_border_color #b4befe
|
||||||
|
inactive_border_color #6c7086
|
||||||
|
bell_border_color #f9e2af
|
||||||
|
|
||||||
|
# OS Window titlebar colors
|
||||||
|
wayland_titlebar_color system
|
||||||
|
macos_titlebar_color system
|
||||||
|
|
||||||
|
# Tab bar colors
|
||||||
|
active_tab_foreground #11111b
|
||||||
|
active_tab_background #cba6f7
|
||||||
|
inactive_tab_foreground #cdd6f4
|
||||||
|
inactive_tab_background #181825
|
||||||
|
tab_bar_background #11111b
|
||||||
|
|
||||||
|
# Colors for marks (marked text in the terminal)
|
||||||
|
mark1_foreground #1e1e2e
|
||||||
|
mark1_background #b4befe
|
||||||
|
mark2_foreground #1e1e2e
|
||||||
|
mark2_background #cba6f7
|
||||||
|
mark3_foreground #1e1e2e
|
||||||
|
mark3_background #74c7ec
|
||||||
|
|
||||||
|
# The 16 terminal colors
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #45475a
|
||||||
|
color8 #585b70
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #f38ba8
|
||||||
|
color9 #f38ba8
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #a6e3a1
|
||||||
|
color10 #a6e3a1
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f9e2af
|
||||||
|
color11 #f9e2af
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #89b4fa
|
||||||
|
color12 #89b4fa
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #f5c2e7
|
||||||
|
color13 #f5c2e7
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #94e2d5
|
||||||
|
color14 #94e2d5
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #bac2de
|
||||||
|
color15 #a6adc8
|
||||||
@@ -1,13 +1,4 @@
|
|||||||
# https://draculatheme.com/kitty
|
# Dracula Theme for Kitty
|
||||||
#
|
|
||||||
# Installation instructions:
|
|
||||||
#
|
|
||||||
# cp dracula.conf ~/.config/kitty/
|
|
||||||
# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
|
|
||||||
#
|
|
||||||
# Then reload kitty for the config to take affect.
|
|
||||||
# Alternatively copy paste below directly into kitty.conf
|
|
||||||
|
|
||||||
foreground #f8f8f2
|
foreground #f8f8f2
|
||||||
background #282a36
|
background #282a36
|
||||||
selection_foreground #ffffff
|
selection_foreground #ffffff
|
||||||
@@ -49,18 +40,14 @@ color15 #ffffff
|
|||||||
|
|
||||||
# Cursor colors
|
# Cursor colors
|
||||||
cursor #f8f8f2
|
cursor #f8f8f2
|
||||||
cursor_text_color background
|
cursor_text_color #282a36
|
||||||
|
|
||||||
# Tab bar colors
|
# Tab bar colors
|
||||||
active_tab_foreground #282a36
|
active_tab_foreground #282a36
|
||||||
active_tab_background #f8f8f2
|
active_tab_background #f8f8f2
|
||||||
inactive_tab_foreground #282a36
|
inactive_tab_foreground #f8f8f2
|
||||||
inactive_tab_background #6272a4
|
inactive_tab_background #282a36
|
||||||
|
|
||||||
# Marks
|
# Marks
|
||||||
mark1_foreground #282a36
|
mark1_foreground #282a36
|
||||||
mark1_background #ff5555
|
mark1_background #ff5555
|
||||||
|
|
||||||
# Splits/Windows
|
|
||||||
active_border_color #f8f8f2
|
|
||||||
inactive_border_color #6272a4
|
|
||||||
24
kitty/.config/kitty/kitty.conf
Normal file
24
kitty/.config/kitty/kitty.conf
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Catppuccin Mocha Theme
|
||||||
|
include dracula.conf
|
||||||
|
|
||||||
|
# Font Configuration
|
||||||
|
font_family Fira Code Nerd Font
|
||||||
|
font_size 16.0
|
||||||
|
|
||||||
|
# Window
|
||||||
|
background_opacity 0.90
|
||||||
|
window_padding_width 8
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor_shape beam
|
||||||
|
cursor_blink_interval 0.5
|
||||||
|
|
||||||
|
# URL
|
||||||
|
url_style curly
|
||||||
|
|
||||||
|
# Bell
|
||||||
|
enable_audio_bell no
|
||||||
|
|
||||||
|
# Tab bar
|
||||||
|
tab_bar_style powerline
|
||||||
|
tab_powerline_style slanted
|
||||||
8
nvim/.config/nvim/.gitignore
vendored
Normal file
8
nvim/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
tt.*
|
||||||
|
.tests
|
||||||
|
doc/tags
|
||||||
|
debug
|
||||||
|
.repro
|
||||||
|
foo.*
|
||||||
|
*.log
|
||||||
|
data
|
||||||
15
nvim/.config/nvim/.neoconf.json
Normal file
15
nvim/.config/nvim/.neoconf.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
201
nvim/.config/nvim/LICENSE
Normal file
201
nvim/.config/nvim/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
@@ -1,34 +1,4 @@
|
|||||||
# AstroNvim Template
|
# 💤 LazyVim
|
||||||
|
|
||||||
**NOTE:** This is for AstroNvim v5+
|
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||||
|
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||||
A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim)
|
|
||||||
|
|
||||||
## 🛠️ Installation
|
|
||||||
|
|
||||||
#### Make a backup of your current nvim and shared folder
|
|
||||||
|
|
||||||
```shell
|
|
||||||
mv ~/.config/nvim ~/.config/nvim.bak
|
|
||||||
mv ~/.local/share/nvim ~/.local/share/nvim.bak
|
|
||||||
mv ~/.local/state/nvim ~/.local/state/nvim.bak
|
|
||||||
mv ~/.cache/nvim ~/.cache/nvim.bak
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Create a new user repository from this template
|
|
||||||
|
|
||||||
Press the "Use this template" button above to create a new repository to store your user configuration.
|
|
||||||
|
|
||||||
You can also just clone this repository directly if you do not want to track your user configuration in GitHub.
|
|
||||||
|
|
||||||
#### Clone the repository
|
|
||||||
|
|
||||||
```shell
|
|
||||||
git clone https://github.com/<your_user>/<your_repository> ~/.config/nvim
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Start Neovim
|
|
||||||
|
|
||||||
```shell
|
|
||||||
nvim
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -1,27 +1,2 @@
|
|||||||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
require("config.lazy")
|
||||||
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
|
||||||
|
|
||||||
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
|
||||||
-- stylua: ignore
|
|
||||||
local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
|
||||||
if vim.v.shell_error ~= 0 then
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
|
||||||
vim.fn.getchar()
|
|
||||||
vim.cmd.quit()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- validate that lazy is available
|
|
||||||
if not pcall(require, "lazy") then
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
|
||||||
vim.fn.getchar()
|
|
||||||
vim.cmd.quit()
|
|
||||||
end
|
|
||||||
|
|
||||||
require "lazy_setup"
|
|
||||||
require "polish"
|
|
||||||
|
|||||||
@@ -1,47 +1,35 @@
|
|||||||
{
|
{
|
||||||
"AstroNvim": { "branch": "main", "commit": "8379e70578bb2f4b2227d55ccc1ae4fd2ab8bb51" },
|
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
|
||||||
"aerial.nvim": { "branch": "master", "commit": "6ab1a0ce4874d21610fc5a67a6c82c7b943c635b" },
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
"astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
|
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
|
||||||
"astrolsp": { "branch": "main", "commit": "414775e4b49a46bd7105cc5498ea7bb312359bf2" },
|
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
|
||||||
"astrotheme": { "branch": "main", "commit": "4a2af93815e4e6adfe69c836e46047a9451de858" },
|
"dracula.nvim": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
|
||||||
"astroui": { "branch": "main", "commit": "4943abbd42674b43249313afe83b91065a40e4be" },
|
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||||
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||||
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
|
"gitsigns.nvim": { "branch": "main", "commit": "1ce96a464fdbc24208e24c117e2021794259005d" },
|
||||||
"blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
|
"grug-far.nvim": { "branch": "main", "commit": "275dbedc96e61a6b8d1dfb28ba51586ddd233dcf" },
|
||||||
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||||
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "ae609525ddf01c153c39305730b1791800ffe4fe" },
|
||||||
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
"mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" },
|
||||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
"mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
"mini.pairs": { "branch": "main", "commit": "4089aa6ea6423e02e1a8326a7a7a00159f6f5e04" },
|
||||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
|
"nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "197f6352c276bbc2d25541dfce00ec50d1a4e88f" },
|
"nvim-lspconfig": { "branch": "master", "commit": "66fd02ad1c7ea31616d3ca678fa04e6d0b360824" },
|
||||||
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
"nvim-treesitter": { "branch": "main", "commit": "45a07f869b0cffba342276f2c77ba7c116d35db8" },
|
||||||
"neo-tree.nvim": { "branch": "main", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" },
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "a0e182ae21fda68c59d1f36c9ed45600aef50311" },
|
||||||
"neoconf.nvim": { "branch": "main", "commit": "630a6f1ab2ae5b1add5425ba6e780e3f7f900bd8" },
|
"nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
|
||||||
"none-ls.nvim": { "branch": "main", "commit": "f0b3dc073153a08fd1e32869ed30b87a3bb4230f" },
|
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
|
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
|
|
||||||
"nvim-dap": { "branch": "master", "commit": "7523676a4be17644587aa47e4d42f6f7646d4727" },
|
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
|
||||||
"nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "fa2662510d30b06168b6e2e6915518decde6bbac" },
|
|
||||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
|
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
|
||||||
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
|
||||||
"smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
|
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||||
"snacks.nvim": { "branch": "main", "commit": "da230e3ca8146da4b73752daaf0a1d07d343c12d" },
|
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||||
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
||||||
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
|
|
||||||
}
|
}
|
||||||
|
|||||||
14
nvim/.config/nvim/lazyvim.json
Normal file
14
nvim/.config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"extras": [
|
||||||
|
"lazyvim.plugins.extras.lang.python",
|
||||||
|
"lazyvim.plugins.extras.lang.yaml",
|
||||||
|
"lazyvim.plugins.extras.lang.docker",
|
||||||
|
"lazyvim.plugins.extras.lang.json",
|
||||||
|
"lazyvim.plugins.extras.lang.markdown"
|
||||||
|
],
|
||||||
|
"install_version": 8,
|
||||||
|
"news": {
|
||||||
|
"NEWS.md": "11866"
|
||||||
|
},
|
||||||
|
"version": 8
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- AstroCommunity: import any community modules here
|
|
||||||
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
|
|
||||||
-- This guarantees that the specs are processed before any user plugins.
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrocommunity",
|
|
||||||
{ import = "astrocommunity.pack.lua" },
|
|
||||||
-- import/override with your plugins folder
|
|
||||||
}
|
|
||||||
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- Autocmds are automatically loaded on the VeryLazy event
|
||||||
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||||
|
--
|
||||||
|
-- Add any additional autocmds here
|
||||||
|
-- with `vim.api.nvim_create_autocmd`
|
||||||
|
--
|
||||||
|
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||||
|
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||||
3
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
3
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- add LazyVim and import its plugins
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
|
lazy = false,
|
||||||
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
|
-- have outdated releases, which may break your Neovim install.
|
||||||
|
version = false, -- always use the latest git commit
|
||||||
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "dracula", "habamax" } },
|
||||||
|
checker = {
|
||||||
|
enabled = true, -- check for plugin updates periodically
|
||||||
|
notify = false, -- notify on update
|
||||||
|
}, -- automatically check for plugin updates
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
-- "matchparen",
|
||||||
|
-- "netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
3
nvim/.config/nvim/lua/config/options.lua
Normal file
3
nvim/.config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
require("lazy").setup({
|
|
||||||
{
|
|
||||||
"AstroNvim/AstroNvim",
|
|
||||||
version = "^5", -- Remove version tracking to elect for nightly AstroNvim
|
|
||||||
import = "astronvim.plugins",
|
|
||||||
opts = { -- AstroNvim options must be set here with the `import` key
|
|
||||||
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
|
|
||||||
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
|
|
||||||
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
|
|
||||||
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
|
|
||||||
update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ import = "community" },
|
|
||||||
{ import = "plugins" },
|
|
||||||
} --[[@as LazySpec]], {
|
|
||||||
-- Configure any other `lazy.nvim` configuration options here
|
|
||||||
install = { colorscheme = { "astrotheme", "habamax" } },
|
|
||||||
ui = { backdrop = 100 },
|
|
||||||
performance = {
|
|
||||||
rtp = {
|
|
||||||
-- disable some rtp plugins, add more to your liking
|
|
||||||
disabled_plugins = {
|
|
||||||
"gzip",
|
|
||||||
"netrwPlugin",
|
|
||||||
"tarPlugin",
|
|
||||||
"tohtml",
|
|
||||||
"zipPlugin",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
} --[[@as LazyConfig]])
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
|
|
||||||
-- Configuration documentation can be found with `:h astrocore`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrocore",
|
|
||||||
---@type AstroCoreOpts
|
|
||||||
opts = {
|
|
||||||
-- Configure core features of AstroNvim
|
|
||||||
features = {
|
|
||||||
large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
|
|
||||||
autopairs = true, -- enable autopairs at start
|
|
||||||
cmp = true, -- enable completion at start
|
|
||||||
diagnostics = { virtual_text = true, virtual_lines = false }, -- diagnostic settings on startup
|
|
||||||
highlighturl = true, -- highlight URLs at start
|
|
||||||
notifications = true, -- enable notifications at start
|
|
||||||
},
|
|
||||||
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
|
||||||
diagnostics = {
|
|
||||||
virtual_text = true,
|
|
||||||
underline = true,
|
|
||||||
},
|
|
||||||
-- passed to `vim.filetype.add`
|
|
||||||
filetypes = {
|
|
||||||
-- see `:h vim.filetype.add` for usage
|
|
||||||
extension = {
|
|
||||||
foo = "fooscript",
|
|
||||||
},
|
|
||||||
filename = {
|
|
||||||
[".foorc"] = "fooscript",
|
|
||||||
},
|
|
||||||
pattern = {
|
|
||||||
[".*/etc/foo/.*"] = "fooscript",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- vim options can be configured here
|
|
||||||
options = {
|
|
||||||
opt = { -- vim.opt.<key>
|
|
||||||
relativenumber = true, -- sets vim.opt.relativenumber
|
|
||||||
number = true, -- sets vim.opt.number
|
|
||||||
spell = false, -- sets vim.opt.spell
|
|
||||||
signcolumn = "yes", -- sets vim.opt.signcolumn to yes
|
|
||||||
wrap = false, -- sets vim.opt.wrap
|
|
||||||
},
|
|
||||||
g = { -- vim.g.<key>
|
|
||||||
-- configure global vim variables (vim.g)
|
|
||||||
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
|
|
||||||
-- This can be found in the `lua/lazy_setup.lua` file
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- Mappings can be configured through AstroCore as well.
|
|
||||||
-- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
|
|
||||||
mappings = {
|
|
||||||
-- first key is the mode
|
|
||||||
n = {
|
|
||||||
-- second key is the lefthand side of the map
|
|
||||||
|
|
||||||
-- navigate buffer tabs
|
|
||||||
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" },
|
|
||||||
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" },
|
|
||||||
|
|
||||||
-- mappings seen under group name "Buffer"
|
|
||||||
["<Leader>bd"] = {
|
|
||||||
function()
|
|
||||||
require("astroui.status.heirline").buffer_picker(
|
|
||||||
function(bufnr) require("astrocore.buffer").close(bufnr) end
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
desc = "Close buffer from tabline",
|
|
||||||
},
|
|
||||||
|
|
||||||
-- tables with just a `desc` key will be registered with which-key if it's installed
|
|
||||||
-- this is useful for naming menus
|
|
||||||
-- ["<Leader>b"] = { desc = "Buffers" },
|
|
||||||
|
|
||||||
-- setting a mapping to false will disable it
|
|
||||||
-- ["<C-S>"] = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
|
|
||||||
-- Configuration documentation can be found with `:h astrolsp`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrolsp",
|
|
||||||
---@type AstroLSPOpts
|
|
||||||
opts = {
|
|
||||||
-- Configuration table of features provided by AstroLSP
|
|
||||||
features = {
|
|
||||||
codelens = true, -- enable/disable codelens refresh on start
|
|
||||||
inlay_hints = false, -- enable/disable inlay hints on start
|
|
||||||
semantic_tokens = true, -- enable/disable semantic token highlighting
|
|
||||||
},
|
|
||||||
-- customize lsp formatting options
|
|
||||||
formatting = {
|
|
||||||
-- control auto formatting on save
|
|
||||||
format_on_save = {
|
|
||||||
enabled = true, -- enable or disable format on save globally
|
|
||||||
allow_filetypes = { -- enable format on save for specified filetypes only
|
|
||||||
-- "go",
|
|
||||||
},
|
|
||||||
ignore_filetypes = { -- disable format on save for specified filetypes
|
|
||||||
-- "python",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
disabled = { -- disable formatting capabilities for the listed language servers
|
|
||||||
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
|
|
||||||
-- "lua_ls",
|
|
||||||
},
|
|
||||||
timeout_ms = 1000, -- default format timeout
|
|
||||||
-- filter = function(client) -- fully override the default formatting function
|
|
||||||
-- return true
|
|
||||||
-- end
|
|
||||||
},
|
|
||||||
-- enable servers that you already have installed without mason
|
|
||||||
servers = {
|
|
||||||
-- "pyright"
|
|
||||||
},
|
|
||||||
-- customize language server configuration options passed to `lspconfig`
|
|
||||||
---@diagnostic disable: missing-fields
|
|
||||||
config = {
|
|
||||||
-- clangd = { capabilities = { offsetEncoding = "utf-8" } },
|
|
||||||
},
|
|
||||||
-- customize how language servers are attached
|
|
||||||
handlers = {
|
|
||||||
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
|
|
||||||
-- function(server, opts) require("lspconfig")[server].setup(opts) end
|
|
||||||
|
|
||||||
-- the key is the server that is being setup with `lspconfig`
|
|
||||||
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
|
|
||||||
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
|
|
||||||
},
|
|
||||||
-- Configure buffer local auto commands to add when attaching a language server
|
|
||||||
autocmds = {
|
|
||||||
-- first key is the `augroup` to add the auto commands to (:h augroup)
|
|
||||||
lsp_codelens_refresh = {
|
|
||||||
-- Optional condition to create/delete auto command group
|
|
||||||
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
|
|
||||||
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
|
|
||||||
-- the auto commands will be deleted for that buffer
|
|
||||||
cond = "textDocument/codeLens",
|
|
||||||
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
|
|
||||||
-- list of auto commands to set
|
|
||||||
{
|
|
||||||
-- events to trigger
|
|
||||||
event = { "InsertLeave", "BufEnter" },
|
|
||||||
-- the rest of the autocmd options (:h nvim_create_autocmd)
|
|
||||||
desc = "Refresh codelens (buffer)",
|
|
||||||
callback = function(args)
|
|
||||||
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- mappings to be set up on attaching of a language server
|
|
||||||
mappings = {
|
|
||||||
n = {
|
|
||||||
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
|
|
||||||
gD = {
|
|
||||||
function() vim.lsp.buf.declaration() end,
|
|
||||||
desc = "Declaration of current symbol",
|
|
||||||
cond = "textDocument/declaration",
|
|
||||||
},
|
|
||||||
["<Leader>uY"] = {
|
|
||||||
function() require("astrolsp.toggles").buffer_semantic_tokens() end,
|
|
||||||
desc = "Toggle LSP semantic highlight (buffer)",
|
|
||||||
cond = function(client)
|
|
||||||
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- A custom `on_attach` function to be run after the default `on_attach` function
|
|
||||||
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
|
|
||||||
on_attach = function(client, bufnr)
|
|
||||||
-- this would disable semanticTokensProvider for all clients
|
|
||||||
-- client.server_capabilities.semanticTokensProvider = nil
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- AstroUI provides the basis for configuring the AstroNvim User Interface
|
|
||||||
-- Configuration documentation can be found with `:h astroui`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astroui",
|
|
||||||
---@type AstroUIOpts
|
|
||||||
opts = {
|
|
||||||
-- change colorscheme
|
|
||||||
colorscheme = "astrodark",
|
|
||||||
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
|
|
||||||
highlights = {
|
|
||||||
init = { -- this table overrides highlights in all themes
|
|
||||||
-- Normal = { bg = "#000000" },
|
|
||||||
},
|
|
||||||
astrodark = { -- a table of overrides/changes when applying the astrotheme theme
|
|
||||||
-- Normal = { bg = "#000000" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- Icons can be configured throughout the interface
|
|
||||||
icons = {
|
|
||||||
-- configure the loading of the lsp in the status line
|
|
||||||
LSPLoading1 = "⠋",
|
|
||||||
LSPLoading2 = "⠙",
|
|
||||||
LSPLoading3 = "⠹",
|
|
||||||
LSPLoading4 = "⠸",
|
|
||||||
LSPLoading5 = "⠼",
|
|
||||||
LSPLoading6 = "⠴",
|
|
||||||
LSPLoading7 = "⠦",
|
|
||||||
LSPLoading8 = "⠧",
|
|
||||||
LSPLoading9 = "⠇",
|
|
||||||
LSPLoading10 = "⠏",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
9
nvim/.config/nvim/lua/plugins/colorscheme.lua
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
{ "Mofiqul/dracula.nvim" },
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "dracula",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- Customize Mason
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
-- use mason-tool-installer for automatically installing Mason packages
|
|
||||||
{
|
|
||||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
|
||||||
-- overrides `require("mason-tool-installer").setup(...)`
|
|
||||||
opts = {
|
|
||||||
-- Make sure to use the names found in `:Mason`
|
|
||||||
ensure_installed = {
|
|
||||||
-- install language servers
|
|
||||||
"lua-language-server",
|
|
||||||
|
|
||||||
-- install formatters
|
|
||||||
"stylua",
|
|
||||||
|
|
||||||
-- install debuggers
|
|
||||||
"debugpy",
|
|
||||||
|
|
||||||
-- install any other package
|
|
||||||
"tree-sitter-cli",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- Customize None-ls sources
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"nvimtools/none-ls.nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- opts variable is the default configuration table for the setup function call
|
|
||||||
-- local null_ls = require "null-ls"
|
|
||||||
|
|
||||||
-- Check supported formatters and linters
|
|
||||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
|
||||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
|
||||||
|
|
||||||
-- Only insert new sources, do not replace the existing ones
|
|
||||||
-- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function)
|
|
||||||
opts.sources = require("astrocore").list_insert_unique(opts.sources, {
|
|
||||||
-- Set a formatter
|
|
||||||
-- null_ls.builtins.formatting.stylua,
|
|
||||||
-- null_ls.builtins.formatting.prettier,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
18
nvim/.config/nvim/lua/plugins/terminal.lua
Normal file
18
nvim/.config/nvim/lua/plugins/terminal.lua
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"snacks.nvim",
|
||||||
|
opts = {
|
||||||
|
terminal = {
|
||||||
|
win = {
|
||||||
|
style = "float",
|
||||||
|
width = 0.85,
|
||||||
|
height = 0.8,
|
||||||
|
border = "rounded",
|
||||||
|
wo = {
|
||||||
|
winblend = 15,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- Customize Treesitter
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = {
|
|
||||||
ensure_installed = {
|
|
||||||
"lua",
|
|
||||||
"vim",
|
|
||||||
-- add more arguments for adding more treesitter parsers
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- You can also add or configure plugins by creating files in this `plugins/` folder
|
|
||||||
-- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE
|
|
||||||
-- Here are some examples:
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
|
|
||||||
-- == Examples of Adding Plugins ==
|
|
||||||
|
|
||||||
"andweeb/presence.nvim",
|
|
||||||
{
|
|
||||||
"ray-x/lsp_signature.nvim",
|
|
||||||
event = "BufRead",
|
|
||||||
config = function() require("lsp_signature").setup() end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- == Examples of Overriding Plugins ==
|
|
||||||
|
|
||||||
-- customize dashboard options
|
|
||||||
{
|
|
||||||
"folke/snacks.nvim",
|
|
||||||
opts = {
|
|
||||||
dashboard = {
|
|
||||||
preset = {
|
|
||||||
header = table.concat({
|
|
||||||
" █████ ███████ ████████ ██████ ██████ ",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
"███████ ███████ ██ ██████ ██ ██",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
"██ ██ ███████ ██ ██ ██ ██████ ",
|
|
||||||
"",
|
|
||||||
"███ ██ ██ ██ ██ ███ ███",
|
|
||||||
"████ ██ ██ ██ ██ ████ ████",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ████ ██",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
"██ ████ ████ ██ ██ ██",
|
|
||||||
}, "\n"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- You can disable default plugins as follows:
|
|
||||||
{ "max397574/better-escape.nvim", enabled = false },
|
|
||||||
|
|
||||||
-- You can also easily customize additional setup of plugins that is outside of the plugin's setup call
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
config = function(plugin, opts)
|
|
||||||
require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call
|
|
||||||
-- add more custom luasnip configuration such as filetype extend or custom snippets
|
|
||||||
local luasnip = require "luasnip"
|
|
||||||
luasnip.filetype_extend("javascript", { "javascriptreact" })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"windwp/nvim-autopairs",
|
|
||||||
config = function(plugin, opts)
|
|
||||||
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call
|
|
||||||
-- add more custom autopairs configuration such as custom rules
|
|
||||||
local npairs = require "nvim-autopairs"
|
|
||||||
local Rule = require "nvim-autopairs.rule"
|
|
||||||
local cond = require "nvim-autopairs.conds"
|
|
||||||
npairs.add_rules(
|
|
||||||
{
|
|
||||||
Rule("$", "$", { "tex", "latex" })
|
|
||||||
-- don't add a pair if the next character is %
|
|
||||||
:with_pair(cond.not_after_regex "%%")
|
|
||||||
-- don't add a pair if the previous character is xxx
|
|
||||||
:with_pair(
|
|
||||||
cond.not_before_regex("xxx", 3)
|
|
||||||
)
|
|
||||||
-- don't move right when repeat character
|
|
||||||
:with_move(cond.none())
|
|
||||||
-- don't delete if the next character is xx
|
|
||||||
:with_del(cond.not_after_regex "xx")
|
|
||||||
-- disable adding a newline when you press <cr>
|
|
||||||
:with_cr(cond.none()),
|
|
||||||
},
|
|
||||||
-- disable for .vim files, but it work for another filetypes
|
|
||||||
Rule("a", "a", "-vim")
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- This will run last in the setup process.
|
|
||||||
-- This is just pure lua so anything that doesn't
|
|
||||||
-- fit in the normal config locations above can go here
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
base: lua51
|
|
||||||
|
|
||||||
globals:
|
|
||||||
vim:
|
|
||||||
any: true
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
std = "neovim"
|
|
||||||
|
|
||||||
[rules]
|
|
||||||
global_usage = "allow"
|
|
||||||
if_same_then_else = "allow"
|
|
||||||
incorrect_standard_library_use = "allow"
|
|
||||||
mixed_table = "allow"
|
|
||||||
multiple_statements = "allow"
|
|
||||||
3
nvim/.config/nvim/stylua.toml
Normal file
3
nvim/.config/nvim/stylua.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
column_width = 120
|
||||||
@@ -77,9 +77,9 @@ setw -g mode-keys vi
|
|||||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||||
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||||
|
|
||||||
# 패널 경계선 (Dracula)
|
# 패널 경계선 (Dracula, bg=default로 kitty 투명도 유지)
|
||||||
set -g pane-border-style 'fg=#6272a4 bg=#282a36'
|
set -g pane-border-style 'fg=#6272a4 bg=default'
|
||||||
set -g pane-active-border-style 'fg=#bd93f9 bg=#282a36'
|
set -g pane-active-border-style 'fg=#bd93f9 bg=default'
|
||||||
|
|
||||||
# Neovim 통합 설정
|
# Neovim 통합 설정
|
||||||
# Smart pane switching with awareness of Vim splits
|
# Smart pane switching with awareness of Vim splits
|
||||||
@@ -100,7 +100,79 @@ bind-key -T copy-mode-vi 'C-\' select-pane -l
|
|||||||
# Neovim 서버와 클립보드 동기화
|
# Neovim 서버와 클립보드 동기화
|
||||||
if-shell 'command -v pbcopy' {
|
if-shell 'command -v pbcopy' {
|
||||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'
|
||||||
|
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'pbcopy'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fish shell이 기본 셸인 경우
|
# Fish shell이 기본 셸인 경우
|
||||||
set -g default-shell /opt/homebrew/bin/fish
|
set -g default-shell /opt/homebrew/bin/fish
|
||||||
|
# ══════════════════════════════════════════════════════════════════
|
||||||
|
# Claude Code 최적화 설정
|
||||||
|
# ══════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
# 히스토리 대폭 증가 (Claude 출력량 많음)
|
||||||
|
set -g history-limit 50000
|
||||||
|
|
||||||
|
# 빠른 ESC 응답 (Claude Code 입력 반응성)
|
||||||
|
set -sg escape-time 10
|
||||||
|
|
||||||
|
# 포커스 이벤트 전달 (에디터 통합)
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
# 256색 + True Color 강제
|
||||||
|
set -sa terminal-overrides ",*:Tc"
|
||||||
|
|
||||||
|
# 스크롤 속도 개선 (Claude 긴 응답 탐색)
|
||||||
|
bind -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 3 scroll-up
|
||||||
|
bind -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 3 scroll-down
|
||||||
|
|
||||||
|
# 빠른 복사 모드 진입 (Prefix + v)
|
||||||
|
bind v copy-mode
|
||||||
|
|
||||||
|
# 클립보드 자동 동기화 (macOS)
|
||||||
|
set -g set-clipboard on
|
||||||
|
|
||||||
|
# 패널 동기화 토글 (여러 서버 동시 작업)
|
||||||
|
bind S setw synchronize-panes \; display-message "Pane sync: #{?pane_synchronized,ON,OFF}"
|
||||||
|
|
||||||
|
# Claude Code 전용 레이아웃
|
||||||
|
# Prefix + C: Claude 작업 레이아웃 (메인 70% + 사이드 30%)
|
||||||
|
bind C split-window -h -p 30 -c "#{pane_current_path}" \; select-pane -L
|
||||||
|
|
||||||
|
# Prefix + M: 모니터링 레이아웃 (상단 80% Claude + 하단 20% 로그)
|
||||||
|
bind M split-window -v -p 20 -c "#{pane_current_path}" \; select-pane -U
|
||||||
|
|
||||||
|
# 빠른 패널 최대화 토글 (Prefix + z 기본 + Prefix + f 추가)
|
||||||
|
bind f resize-pane -Z
|
||||||
|
|
||||||
|
# 현재 패널을 새 창으로 분리
|
||||||
|
bind b break-pane -d
|
||||||
|
|
||||||
|
# 패널 회전 (작업 공간 빠른 전환)
|
||||||
|
bind -r o rotate-window
|
||||||
|
|
||||||
|
# 마지막 창으로 빠른 이동 (Prefix + Tab)
|
||||||
|
bind Tab last-window
|
||||||
|
|
||||||
|
# 마지막 패널로 빠른 이동 (Prefix + `)
|
||||||
|
bind ` last-pane
|
||||||
|
|
||||||
|
# 빠른 세션 전환
|
||||||
|
bind ( switch-client -p
|
||||||
|
bind ) switch-client -n
|
||||||
|
|
||||||
|
# 세션 저장/복원 (tmux-resurrect 플러그인 없이)
|
||||||
|
# 현재 레이아웃 저장
|
||||||
|
bind W command-prompt -p "Save layout as:" "run-shell 'tmux list-windows -F \"##{window_layout}\" > ~/.tmux-layout-%%'"
|
||||||
|
|
||||||
|
# Claude 출력 빠른 검색 (Prefix + /)
|
||||||
|
bind / copy-mode \; send-keys ?
|
||||||
|
|
||||||
|
# 현재 패널 내용을 파일로 저장
|
||||||
|
bind P command-prompt -p "Save pane to:" "capture-pane -S -50000 ; save-buffer '%%'"
|
||||||
|
|
||||||
|
# 활성 패널 강조 (default로 설정해야 kitty 투명도 유지)
|
||||||
|
set -g window-style 'bg=default'
|
||||||
|
set -g window-active-style 'bg=default'
|
||||||
|
|
||||||
|
# 클립보드 히스토리 증가
|
||||||
|
set -g buffer-limit 20
|
||||||
|
|||||||
Reference in New Issue
Block a user