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
|
||||
# Commands to run in interactive sessions can go here
|
||||
# Set default Node.js version
|
||||
nvm use lts --silent
|
||||
nvm use 20 --silent
|
||||
# Add uv to PATH
|
||||
fish_add_path $HOME/.local/bin
|
||||
|
||||
# kitty integration 최적화
|
||||
if test "$TERM" = xterm-kitty
|
||||
# kitty shell integration 설정 (kssh 제외)
|
||||
# kitty shell integration 설정
|
||||
alias icat="kitty +kitten icat"
|
||||
alias kdiff="kitty +kitten diff"
|
||||
|
||||
@@ -24,7 +29,7 @@ if status is-interactive
|
||||
alias tml="tmux list-sessions"
|
||||
alias tmk="tmux kill-session -t"
|
||||
|
||||
# kitten 유틸리티 alias들 (kssh 제외)
|
||||
# kitten 유틸리티 alias들
|
||||
alias clipboard="kitty +kitten clipboard"
|
||||
alias img="kitty +kitten icat"
|
||||
alias unicode="kitty +kitten unicode_input"
|
||||
@@ -39,11 +44,26 @@ end
|
||||
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 "")
|
||||
# Gitea Configuration
|
||||
set -gx GITEA_URL "https://gitea.anvil.it.com"
|
||||
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 ssh=tssh
|
||||
alias docker "limactl shell docker -- docker"
|
||||
alias podman "limactl shell podman -- podman"
|
||||
alias ss='netstat -an'
|
||||
@@ -51,3 +71,28 @@ alias ss='netstat -an'
|
||||
# Set default editor for Claude Code /memory command
|
||||
set -Ux VISUAL 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
|
||||
#
|
||||
# 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
|
||||
|
||||
# Dracula Theme for Kitty
|
||||
foreground #f8f8f2
|
||||
background #282a36
|
||||
selection_foreground #ffffff
|
||||
@@ -49,18 +40,14 @@ color15 #ffffff
|
||||
|
||||
# Cursor colors
|
||||
cursor #f8f8f2
|
||||
cursor_text_color background
|
||||
cursor_text_color #282a36
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground #282a36
|
||||
active_tab_background #f8f8f2
|
||||
inactive_tab_foreground #282a36
|
||||
inactive_tab_background #6272a4
|
||||
inactive_tab_foreground #f8f8f2
|
||||
inactive_tab_background #282a36
|
||||
|
||||
# Marks
|
||||
mark1_foreground #282a36
|
||||
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 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
|
||||
```
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
|
||||
@@ -1,27 +1,2 @@
|
||||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
||||
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"
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
|
||||
@@ -1,47 +1,35 @@
|
||||
{
|
||||
"AstroNvim": { "branch": "main", "commit": "8379e70578bb2f4b2227d55ccc1ae4fd2ab8bb51" },
|
||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||
"aerial.nvim": { "branch": "master", "commit": "6ab1a0ce4874d21610fc5a67a6c82c7b943c635b" },
|
||||
"astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" },
|
||||
"astrolsp": { "branch": "main", "commit": "414775e4b49a46bd7105cc5498ea7bb312359bf2" },
|
||||
"astrotheme": { "branch": "main", "commit": "4a2af93815e4e6adfe69c836e46047a9451de858" },
|
||||
"astroui": { "branch": "main", "commit": "4943abbd42674b43249313afe83b91065a40e4be" },
|
||||
"better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" },
|
||||
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
|
||||
"blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" },
|
||||
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
||||
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
||||
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
|
||||
"mason.nvim": { "branch": "main", "commit": "197f6352c276bbc2d25541dfce00ec50d1a4e88f" },
|
||||
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" },
|
||||
"neoconf.nvim": { "branch": "main", "commit": "630a6f1ab2ae5b1add5425ba6e780e3f7f900bd8" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "f0b3dc073153a08fd1e32869ed30b87a3bb4230f" },
|
||||
"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" },
|
||||
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
|
||||
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
|
||||
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
|
||||
"dracula.nvim": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
|
||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "1ce96a464fdbc24208e24c117e2021794259005d" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "275dbedc96e61a6b8d1dfb28ba51586ddd233dcf" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "ae609525ddf01c153c39305730b1791800ffe4fe" },
|
||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||
"mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" },
|
||||
"mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" },
|
||||
"mini.pairs": { "branch": "main", "commit": "4089aa6ea6423e02e1a8326a7a7a00159f6f5e04" },
|
||||
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "66fd02ad1c7ea31616d3ca678fa04e6d0b360824" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "45a07f869b0cffba342276f2c77ba7c116d35db8" },
|
||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "a0e182ae21fda68c59d1f36c9ed45600aef50311" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
||||
"smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "da230e3ca8146da4b73752daaf0a1d07d343c12d" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
|
||||
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
|
||||
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 y send-keys -X copy-selection-and-cancel
|
||||
|
||||
# 패널 경계선 (Dracula)
|
||||
set -g pane-border-style 'fg=#6272a4 bg=#282a36'
|
||||
set -g pane-active-border-style 'fg=#bd93f9 bg=#282a36'
|
||||
# 패널 경계선 (Dracula, bg=default로 kitty 투명도 유지)
|
||||
set -g pane-border-style 'fg=#6272a4 bg=default'
|
||||
set -g pane-active-border-style 'fg=#bd93f9 bg=default'
|
||||
|
||||
# Neovim 통합 설정
|
||||
# Smart pane switching with awareness of Vim splits
|
||||
@@ -100,7 +100,79 @@ bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||
# Neovim 서버와 클립보드 동기화
|
||||
if-shell 'command -v 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이 기본 셸인 경우
|
||||
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