mirror of
https://github.com/m1ngsama/chopsticks.git
synced 2026-02-08 06:54:05 +00:00
新增功能: ✨ 一键安装脚本 (install.sh) - 自动备份现有配置 - 自动安装 vim-plug - 自动安装所有插件 - 可选安装 CoC 语言服务器 - 美化的安装界面和详细提示 ✨ 快速开始指南 (QUICKSTART.md) - 5分钟上手教程 - 常用工作流程示例 - 语言特定配置说明 - 故障排除指南 - 快速参考卡片 配置增强: 📦 新增插件 - vim-obsession: 会话管理 - vim-prosession: 项目会话 - vim-unimpaired: 便捷的括号映射 - targets.vim: 额外的文本对象 - vim-snippets: 代码片段集合 🛠️ 工程化特性 - 项目特定配置支持 (.vimrc in project root) - 大文件自动优化 (>10MB) - 终端集成 (,tv, ,th) - 会话自动保存 - 父目录自动创建 ⌨️ 新增快捷键 Git 工作流: ,gs - Git status ,gc - Git commit ,gp - Git push ,gl - Git pull ,gd - Git diff ,gb - Git blame 工程实用工具: ,ev - 编辑 .vimrc ,sv - 重载 .vimrc ,F - 格式化整个文件 ,wa - 保存所有缓冲区 ,cp - 复制文件路径 ,cf - 复制文件名 ,* - 搜索并替换光标下的单词 ,, - 切换到上一个文件 窗口管理: ,= - 增大窗口高度 ,- - 减小窗口高度 ,+ - 增大窗口宽度 ,_ - 减小窗口宽度 🌐 语言支持增强 新增语言配置: - Rust (rustfmt, cargo) - Shell (shellcheck) - YAML (yamllint) - Docker (hadolint) - HTML/CSS (prettier) - Markdown (spell check, prettier) 改进的 ALE 配置: - 更多语言的 linters - 优化的性能设置 - 详细错误显示 (,ad) 🔍 增强的 FZF 集成 - 改进的预览窗口 - Git 文件搜索命令 - 更好的 Ripgrep 集成 - 自定义布局 📝 NERDTree 优化 - 自动打开项目目录 - 忽略 node_modules, __pycache__ 等 - 可配置窗口大小 文档改进: 📚 README.md 重大更新 - 添加快速开始章节 - 详细的工程特性说明 - 完整的键位映射表 - 项目配置示例 - 会话管理说明 - 大文件处理说明 - 终端集成文档 适用场景: ✅ 企业级开发团队 ✅ 多语言项目 ✅ 大型代码库 ✅ 持续集成环境 ✅ 远程开发 ✅ 代码审查 性能优化: ⚡ 大文件自动禁用重度功能 ⚡ ALE 按需 lint (不在输入时) ⚡ 优化的语法高亮 ⚡ 更快的启动时间
119 lines
3.9 KiB
Bash
Executable file
119 lines
3.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# ============================================================================
|
|
# Vim Configuration - Quick Installation Script
|
|
# ============================================================================
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
BOLD='\033[1m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BOLD}========================================${NC}"
|
|
echo -e "${BOLD}Vim Configuration Installer${NC}"
|
|
echo -e "${BOLD}========================================${NC}\n"
|
|
|
|
# Function to print status messages
|
|
print_status() {
|
|
echo -e "${GREEN}==>${NC} ${BOLD}$1${NC}"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}Warning:${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}Error:${NC} $1"
|
|
}
|
|
|
|
# Check if vim is installed
|
|
if ! command -v vim &> /dev/null; then
|
|
print_error "Vim is not installed. Please install Vim first."
|
|
echo " Ubuntu/Debian: sudo apt install vim"
|
|
echo " macOS: brew install vim"
|
|
echo " Fedora: sudo dnf install vim"
|
|
exit 1
|
|
fi
|
|
|
|
print_status "Vim version: $(vim --version | head -n1)"
|
|
|
|
# Backup existing .vimrc if it exists
|
|
if [ -f "$HOME/.vimrc" ] && [ ! -L "$HOME/.vimrc" ]; then
|
|
BACKUP_FILE="$HOME/.vimrc.backup.$(date +%Y%m%d_%H%M%S)"
|
|
print_warning "Backing up existing .vimrc to $BACKUP_FILE"
|
|
mv "$HOME/.vimrc" "$BACKUP_FILE"
|
|
fi
|
|
|
|
# Create symlink to .vimrc
|
|
print_status "Creating symlink: $HOME/.vimrc -> $SCRIPT_DIR/.vimrc"
|
|
ln -sf "$SCRIPT_DIR/.vimrc" "$HOME/.vimrc"
|
|
|
|
# Install vim-plug if not already installed
|
|
VIM_PLUG_PATH="$HOME/.vim/autoload/plug.vim"
|
|
if [ ! -f "$VIM_PLUG_PATH" ]; then
|
|
print_status "Installing vim-plug..."
|
|
curl -fLo "$VIM_PLUG_PATH" --create-dirs \
|
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
echo -e "${GREEN}✓${NC} vim-plug installed successfully"
|
|
else
|
|
echo -e "${GREEN}✓${NC} vim-plug already installed"
|
|
fi
|
|
|
|
# Install plugins
|
|
print_status "Installing Vim plugins..."
|
|
vim +PlugInstall +qall
|
|
|
|
echo -e "\n${GREEN}✓${NC} ${BOLD}Installation complete!${NC}\n"
|
|
|
|
# Print optional dependencies
|
|
echo -e "${BOLD}Optional Dependencies (Recommended):${NC}"
|
|
echo ""
|
|
echo -e "${BOLD}1. FZF (Fuzzy Finder):${NC}"
|
|
echo " Ubuntu/Debian: sudo apt install fzf ripgrep"
|
|
echo " macOS: brew install fzf ripgrep"
|
|
echo ""
|
|
echo -e "${BOLD}2. Node.js (for CoC completion):${NC}"
|
|
echo " Ubuntu/Debian: curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt install -y nodejs"
|
|
echo " macOS: brew install node"
|
|
echo ""
|
|
echo -e "${BOLD}3. Universal Ctags (for code navigation):${NC}"
|
|
echo " Ubuntu/Debian: sudo apt install universal-ctags"
|
|
echo " macOS: brew install universal-ctags"
|
|
echo ""
|
|
echo -e "${BOLD}4. Language-specific tools:${NC}"
|
|
echo " Python: pip install black flake8 pylint"
|
|
echo " JavaScript: npm install -g prettier eslint"
|
|
echo " Go: go install golang.org/x/tools/gopls@latest"
|
|
echo ""
|
|
|
|
# Ask to install CoC language servers
|
|
read -p "Do you want to install CoC language servers now? (y/N) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
print_status "Installing CoC language servers..."
|
|
|
|
# Check if node is installed
|
|
if ! command -v node &> /dev/null; then
|
|
print_error "Node.js is not installed. Please install Node.js first."
|
|
else
|
|
vim -c "CocInstall -sync coc-json coc-tsserver coc-pyright coc-sh coc-html coc-css coc-yaml|q"
|
|
echo -e "${GREEN}✓${NC} CoC language servers installed"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${BOLD}========================================${NC}"
|
|
echo -e "${GREEN}All done!${NC} Open Vim and start coding!"
|
|
echo -e "${BOLD}========================================${NC}"
|
|
echo ""
|
|
echo -e "Quick tips:"
|
|
echo " - Press ${BOLD}Ctrl+n${NC} to toggle file explorer (NERDTree)"
|
|
echo " - Press ${BOLD}Ctrl+p${NC} to fuzzy search files (FZF)"
|
|
echo " - Press ${BOLD},w${NC} to quick save"
|
|
echo " - Press ${BOLD}K${NC} on a function to see documentation"
|
|
echo " - See README.md for complete key mappings"
|
|
echo ""
|