chopsticks/QUICKSTART.md
m1ngsama 323bf4a6b3
LSP 分层后端、UI 增强、UX 修复与完整文档
合并 PR #5:tiered LSP backend (CoC/vim-lsp), vim-which-key, vim-startify, indentLine, 修复按键冲突,UX 改进。
2026-02-21 12:30:06 +08:00

207 lines
4.4 KiB
Markdown

# Quick Start
Five minutes from zero to a working Vim engineering environment.
## Step 1: Install
```bash
git clone https://github.com/m1ngsama/chopsticks.git ~/.vim
cd ~/.vim && ./install.sh
```
The script handles everything: symlinks, vim-plug, plugin download.
No root access required.
## Step 2: Open Vim
```bash
vim
```
The startup screen shows recent files and sessions. Press `q` to dismiss
or just start typing a filename to open.
## Step 3: Install LSP (pick one path)
### Path A: With Node.js (full CoC)
```bash
node --version # confirm >= 14.14
```
Inside Vim, install language servers for your stack:
```vim
:CocInstall coc-pyright coc-tsserver coc-go coc-rust-analyzer
```
### Path B: Without Node.js (vim-lsp)
Open a file of your language, then run:
```vim
:LspInstallServer
```
This auto-detects and installs the correct language server binary.
---
## Daily Use
### The 10 keys that matter most
```
,w Save
,q Quit
Ctrl+n File tree
Ctrl+p Fuzzy find file
gd Go to definition
K Show docs
[g ]g Prev/next diagnostic
,rn Rename symbol
,gs Git status
, (pause 500ms) Show all shortcuts
```
### Open a project
```bash
cd ~/my-project && vim
```
NERDTree auto-opens when you launch Vim on a directory. Use `Ctrl+p` to
fuzzy-search files by name. Use `,rg` to search file contents.
### Navigate code
| Key | Action |
|-------|---------------------------------|
| `gd` | Go to definition |
| `gy` | Go to type definition |
| `gi` | Go to implementation |
| `gr` | List all references |
| `K` | Show docs for symbol under cursor |
| `Ctrl+o` | Jump back |
| `Ctrl+i` | Jump forward |
### Edit code
| Key | Action |
|---------|-------------------------------------|
| `Tab` | Select next completion item |
| `Enter` | Confirm completion |
| `gc` | Toggle comment (works in visual mode too) |
| `cs"'` | Change surrounding `"` to `'` |
| `ds(` | Delete surrounding `(` |
| `s`+2ch | EasyMotion: jump anywhere |
### Manage errors
| Key | Action |
|--------|-------------------------------|
| `]g` | Jump to next diagnostic |
| `[g` | Jump to previous diagnostic |
| `K` | Read the error message |
| `,ca` | Apply code action / auto-fix |
### Git workflow
```
,gs git status (stage files with 's', commit with 'cc')
,gd diff current file
,gb blame current file
,gc commit
,gp push
,gl pull
```
---
## Common Workflows
### Python project
```bash
pip install black flake8 pylint isort
vim my_script.py
```
Auto-formats with black on save. Lint errors show in the sign column as
`X` (error) and `!` (warning). Jump between them with `[g` / `]g`.
### JavaScript / TypeScript project
```bash
npm install -g prettier eslint typescript
vim src/index.ts
```
Auto-formats with prettier on save. Use `:CocInstall coc-tsserver` for
full IntelliSense (requires Node.js).
### Go project
```bash
go install golang.org/x/tools/gopls@latest
vim main.go
```
gofmt runs on save automatically. `gd` jumps to definitions even across
package boundaries when gopls is running.
---
## Customize
Edit config live:
```vim
,ev " opens ~/.vimrc in Vim
,sv " reloads config without restarting
```
Per-project overrides: create `.vimrc` in your project root.
---
## Quick Reference
```
FILES
Ctrl+n File tree toggle
Ctrl+p Fuzzy find file
,b Search open buffers
,rg Search file contents (ripgrep)
,w Save | ,q Quit | ,x Save+quit
,wa Save all buffers
CODE
gd Go to definition
K Show documentation
[g / ]g Prev/next diagnostic
,rn Rename symbol
,ca Code action
,f Format selection
,F Format whole file
GIT
,gs Status | ,gd Diff | ,gb Blame
,gc Commit | ,gp Push | ,gl Pull
WINDOWS
Ctrl+h/j/k/l Move between panes
,tv Open terminal (vertical)
,th Open terminal (horizontal)
Esc Exit terminal mode
F5 Undo tree | F8 Tag browser
SEARCH
/text Search forward
?text Search backward
,<CR> Clear search highlight
,* Replace word under cursor (project)
```
---
See [README.md](README.md) for the complete reference.