Communitygithub.com

G1Joshi/Compétences-Vim

Assistance experte en Vim couvrant l'édition modale, la configuration .vimrc, les registres, les macros, la recherche/remplacement et la gestion de plugins via vim-plug. À utiliser pour éditer efficacement du texte en environnement terminal, écrire du Vimscript, enregistrer des macros ou configurer les paramètres fondamentaux de Vim.

Qu'est-ce que Compétences-Vim ?

Cette compétence fournit une assistance experte pour Vim, l'éditeur de texte universel présent sur tout système UNIX. Elle couvre l'ensemble des fonctionnalités essentielles : édition modale (opérateurs, mouvements et objets textuels), configuration avancée du fichier .vimrc, gestion des registres et macros, recherche et remplacement global, ainsi que la gestion de plugins via vim-plug. La compétence est conçue pour les développeurs et utilisateurs avancés qui travaillent en environnement terminal, que ce soit sur des serveurs distants ou en local. Elle permet d'automatiser des transformations textuelles répétitives, de naviguer rapidement dans le code, et de configurer Vim pour un usage productif et moderne. Le résumé détaille comment exploiter les macros, les objets textuels, et les commandes de base pour éditer du texte avec une efficacité maximale, en respectant les bonnes pratiques de l'année 2026. Elle s'appuie sur la documentation officielle de Vim et les standards de l'éditeur.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/G1Joshi/Agent-Skills/tree/HEAD/skills/tools/vim

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vim

Vim est l'éditeur de texte universel installé sur tous les systèmes UNIX. Alors que Neovim innove, Vim met l'accent sur la rétrocompatibilité et la stabilité.

Quand l'utiliser

  • Édition universelle sur serveur et système : Modifier les configurations système, scripts et code sur n'importe quel serveur Unix/Linux sans installer de logiciel externe.
  • Manipulation de texte modale : Composer des transformations textuelles avec la grammaire opérateur-mouvement (dap, ci", gUiw).
  • Automatisation de macros sans tête : Enregistrer et rejouer des opérations d'édition répétitives sur des centaines de lignes (qa, @a).
  • Édition de commits Git et de fusions : Édition interactive rapide pour les messages de commit, les rebases interactifs et la résolution de conflits de diff.

Démarrage rapide

1. ~/.vimrc minimal

syntax on
set number
set relativenumber
set tabstop=2
set shiftwidth=2
set expandtab
set hlsearch
set incsearch
set clipboard=unnamed

let mapleader = " "
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>

2. Commandes d'édition de base

  • i / a : Mode insertion (avant / après le curseur)
  • ci" : Modifier entre guillemets
  • da{ : Supprimer autour des accolades
  • :%s/foo/bar/g : Remplacer toutes les occurrences de foo par bar dans le fichier
  • . : Répéter la dernière modification

Concepts fondamentaux

Vimrc de production moderne (~/.vimrc)

Configuration des paramètres sensibles, du gestionnaire de plugins et de la navigation dans le code :

" ~/.vimrc
set nocompatible
filetype plugin indent on
syntax on

" Paramètres généraux
set number
set relativenumber
set expandtab
set shiftwidth = 2
set tabstop = 2
set autoindent
set smartindent
set hlsearch
set incsearch
set ignorecase
set smartcase
set hidden
set backspace=indent,eol,start
set updatetime=300
set clipboard=unnamed

" Mappage de la touche leader
let mapleader = " "

" Navigation rapide entre les fenêtres
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

" Effacer la surbrillance de recherche
nnoremap <leader>h :nohlsearch<CR>

Objets textuels et grammaire essentiels

Combinaison d'opérateurs (d, c, y, v) avec des objets textuels et des mouvements :

ci"      - Modifier entre guillemets doubles ("foo" -> "")
di(      - Supprimer entre parenthèses
yap      - Copier (yank) autour du paragraphe
gUiw     - Convertir le mot intérieur en MAJUSCULES
dt,      - Supprimer du curseur jusqu'à la virgule
.        - Répéter immédiatement la dernière modification

Enregistrement et exécution de macros

Automatisation de transformations répétitives de données tabulaires :

1. Appuyez sur `qa` pour commencer à enregistrer la macro dans le registre 'a'
2. Effectuez les étapes d'édition (p. ex. `0iconst <Esc>A = true;<Esc>j`)
3. Appuyez sur `q` pour terminer l'enregistrement
4. Rejouez la macro sur la ligne courante : `@a`
5. Rejouez la macro 50 fois sur plusieurs lignes : `50@a`
6. Exécutez la macro sur une sélection visuelle : `:'<,'>normal @a`

Modèles courants

Enregistrement et exécution de macros en bloc

Problème : Effectuer des modifications multi-étapes répétitives sur plusieurs lignes. Solution : Enregistrer les frappes dans le registre q.

  1. Placez le curseur à la position de départ cible.
  2. Appuyez sur qq pour commencer l'enregistrement dans le registre q.
  3. Effectuez la séquence d'édition (p. ex. I" <Esc> A",<Esc> j ^).
  4. Appuyez sur q pour arrêter l'enregistrement.
  5. Rejouez avec @q, ou exécutez sur 50 lignes : 50@q.

Gestion de plugins avec vim-plug

Problème : Installer et organiser des plugins Vim sans manipulation manuelle des chemins. Solution : Utiliser vim-plug.

call plug#begin('~/.vim/plugged')
Plug 'tpope/vim-sensible'
Plug 'tpope/vim-fugitive'
Plug 'preservim/nerdtree'
call plug#end()

Exécutez :PlugInstall dans Vim pour installer.

Bonnes pratiques (2026)

  • À faire : Maîtriser la navigation modale (h, j, k, l, w, b, e) et éviter d'utiliser les touches fléchées.
  • À faire : Exploiter les Objets Textuels (ciw, da(, yi{) pour éditer des blocs de code structurés avec un minimum de frappes.
  • À faire : Utiliser la commande point (.) pour répéter des transformations textuelles récentes sur des lignes similaires.
  • À faire : Activer set hidden pour que les tampons restent ouverts en arrière-plan sans forcer des sauvegardes immédiates.
  • À ne pas faire : Installer des centaines de plugins VimScript lourds et hérités ; passer à Neovim Lua si une expérience IDE riche est requise.
  • À ne pas faire : Laisser des fichiers d'échange (.swp) traîner ; configurer set noswapfile ou définir un répertoire d'échange dédié.
  • À ne pas faire : Utiliser des appels externes synchrones dans ~/.vimrc qui provoquent un délai de démarrage notable sur les machines distantes.

Dépannage

Erreur / SymptômeCauseSolution
La copie du presse-papiers système échoue ("+y ne fait rien)Vim compilé sans support +clipboardInstaller vim-gtk3 (Ubuntu) ou macvim / neovim avec le support du presse-papiers activé.
Les touches fléchées insèrent les caractères A, B, C, DFonctionnement en mode strict compatible ViAjouter set nocompatible en haut du ~/.vimrc.
La surbrillance des espaces en fin de ligne persiste après rechercheLa surbrillance de recherche est restée activeAppuyer sur :nohlsearch ou lier <leader>h :nohlsearch<CR>.

Références

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

G1Joshi/Agent-Skills

Expert Dask distributed computing assistance covering Dask DataFrames, Arrays, Futures, and cluster scaling. Use when analyzing datasets too large for pandas on a single machine or multi-node cluster.

G1Joshi/Agent-Skills

Expert dbt (data build tool) assistance covering SQL modeling, Jinja macros, tests, documentation, and semantic layer. Use when building analytics engineering pipelines on BigQuery, Snowflake, or PostgreSQL.

G1Joshi/Agent-Skills

Expert JAX assistance covering Autograd, XLA compilation (`jit`), vectorization (`vmap`), and parallelization (`pmap`). Use when building high-performance numerical computing and cutting-edge deep learning research.

G1Joshi/Agent-Skills

Expert Ray distributed computing assistance covering Ray Core (actors, tasks), Ray Train, Ray Tune, and Ray Serve. Use when scaling Python compute and ML training across multi-node clusters.

G1Joshi/Agent-Skills

Expert Git version control assistance covering branching, interactive rebase, cherry-pick, submodules, worktrees, and conflict resolution. Use when managing source code history and collaboration workflows.

G1Joshi/Agent-Skills

Expert K9s CLI assistance covering terminal Kubernetes cluster navigation, real-time log streaming, port forwarding, and pod debugging. Use when managing and troubleshooting Kubernetes clusters with speed.

G1Joshi/Agent-Skills

Expert SWC assistance covering high-performance Rust-based JavaScript/TypeScript compilation, .swcrc configuration, Jest testing via @swc/jest, and minification. Use when replacing Babel with SWC for faster builds, accelerating test execution, or compiling modern ECMAScript features.

G1Joshi/Agent-Skills

Expert Tig assistance covering text-mode interface for Git, interactive staging, commit graph visualization, diff exploration, and blame navigation. Use when navigating Git commit history in the terminal, staging hunks interactively, browsing file changes, or reviewing revisions.

G1Joshi/Agent-Skills

Expert Zed editor assistance covering high-performance Rust-based text editing, multi-buffer editing, language server protocols (LSP), and AI assistant integrations. Use when configuring Zed settings.json, setting up language extensions, collaborating in real-time channels, or optimizing editor startup speed.

G1Joshi/Agent-Skills

Expert Zsh assistance covering shell customization, Oh My Zsh plugins, Zinit plugin manager, prompt engineering (Starship/Powerlevel10k), and shell scripting. Use when configuring .zshrc, writing Zsh automation scripts, optimizing shell startup time, or configuring tab-completion.

G1Joshi/Agent-Skills

Expert [skill-name] assistance covering [feature 1], [feature 2], and [feature 3]. Use when [working with X], [debugging Y], or [implementing Z].

Skills associés