An interactive web application for practicing Vim navigation commands with keyboard shortcut support for modern browsers.
- Progressive Learning: Beginner, intermediate, and advanced difficulty levels
- Real-time Feedback: Visual indicators for cursor position and target location
- Browser Compatibility: Multiple keyboard shortcuts for Chromium-based browsers on macOS
- Responsive Design: Works on desktop and mobile devices
- Cmd+N, Cmd+G, or F5: Generate new exercise
- Cmd+Enter: Check current position
- Standard Vim Keys: h, j, k, l, w, b, 0, $, gg, G
-
Clone the repository:
git clone https://github.com/julroger2013/vim-trainer-app.git cd vim-trainer-app -
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Open browser: Visit http://localhost:3000
- Edit files locally (most changes will be in
src/VimTrainer.jsx) - Test locally at http://localhost:3000
- Commit and push changes:
git add . git commit -m "Your change description" git push origin main
Option 1: Automatic deployment script
./deploy.shOption 2: Manual deployment
# SSH to server and pull latest changes
ssh root@192.168.50.10
pct exec 110 -- bash -c 'cd /opt/vim-trainer && git pull origin main'
pct exec 110 -- bash -c 'cd /opt/vim-trainer && docker compose up -d --build'The app will be available at: http://192.168.50.254:3000
vim-trainer-app/
├── src/
│ ├── VimTrainer.jsx # Main React component
│ ├── main.jsx # App entry point
│ └── index.css # Global styles
├── docker-compose.yml # Docker configuration
├── Dockerfile # Container definition
├── nginx.conf # Web server configuration
├── deploy.sh # Automated deployment script
└── README.md # This file
- Frontend: React 18 with Vite
- Styling: Tailwind CSS
- Icons: Lucide React
- Containerization: Docker with nginx
- Deployment: Git-based workflow
h- Move leftj- Move downk- Move upl- Move right
0- Beginning of line$- End of linew- Next wordb- Previous word
gg- Go to first lineG- Go to last line
npm install
npm run devnpm run build
npm run preview- Check Docker logs:
docker compose logs vim-trainer - Verify port availability:
netstat -tulpn | grep 3000
- Check firewall settings on Proxmox
- Verify the container is running:
docker ps - Test locally:
curl http://localhost:3000
- Increase container memory allocation
- Check Proxmox host resources