MacVim sur macOS : personnalisation avancée de la Touch Bar et Apple Intelligence

MacVim, le port macOS de Vim, tire parti de plusieurs API système modernes pour adapter l’éditeur au matériel Apple. Cet article montre comment configurer la Touch Bar et comment appeler les outils d’écriture intelligents d’Apple Intelligence depuis l’éditeur.

Installation et premier lancement

La méthode la plus rapide consiste à utiliser Homebrew :

brew install --cask macvim

Pour compiler depuis les sources et disposer des dernières corrections :

git clone https://github.com/macvim-dev/macvim.git
cd macvim/src
make
sudo make install

Au premier démarrage, MacVim détecte la disposition du clavier et propose un profil de raccourcis adapté.

Contrôler la Touch Bar

MacVim expose la Touch Bar via le système de menus Vim. La racine TouchBar permet d’ajouter des boutons, tandis que la variable globale g:macvim_no_touchbar_default désactive les commandes par défaut.

" Désactiver les boutons natifs de la Touch Bar
let g:macvim_no_touchbar_default = 1

" Bouton plein écran avec icône système
an icon=NSFullScreenEnterTemplate 1.010 TouchBar.FullScreenToggle
      \ :set invfullscreen<cr>

" Bouton nouvel onglet
an icon=NSAddTemplate 1.020 TouchBar.NewTab :tabnew<cr>

" Recherche rapide
an icon=NSSearchTemplate 1.030 TouchBar.Find :promptfind<cr></cr></cr></cr>

La première valeur numérique correspond à la position du bouton dans la barre. Les icônes doivent correspondre à des template images fournies par AppKit.

Associer la Touch Bar à des modes d’édition

Pour afficher des boutons différents selon le mode actif, on peut définir un groupe de menus et le rafraîchir via des autocommandes.

function! s:update_touchbar() abort
  aunmenu TouchBar.Mode
  if mode() ==# 'i'
    an icon=NSStopProgressTemplate 1.040 TouchBar.Mode.ExitInsert <esc>
  else
    an icon=NSEnterFullScreenTemplate 1.040 TouchBar.Mode.InsertMode :startinsert<cr>
  endif
endfunction

augroup TouchBarByMode
  autocmd!
  autocmd InsertEnter,InsertLeave * call s:update_touchbar()
augroup END</cr></esc>

Intégrer Apple Intelligence via Raccourcis

MacVim ne fournit pas d’option intégrée set aiw. L’accès aux outils d’écriture d’Apple Intelligence passe plutôt par l’application Raccourcis et les commandes pbcopy/pbpaste. La fonction suivante copie la sélection dans le presse-papiers, invoque un raccourci nommé PolishText, puis replace le résultat.

function! s:run_writing_tool() range
  silent! normal! gv"+y
  call system('pbpaste | shortcuts run "PolishText" | pbcopy')
  redraw!
  sleep 300m
  normal! gv"+p
endfunction

vnoremap <silent> <d-s-i> :call s:run_writing_tool()<cr></cr></d-s-i></silent>

Le raccourci clavier ⇧I lance alors le traitement sur le texte sélectionné.

Optimisations complémentaires

Pour unifier MacVim avec macOS, quelques réglages utiles dans ~/.vimrc ou ~/.config/vim/vimrc :

" Presse-papiers système
set clipboard=unnamed

" Police et ligatures
if has('gui_macvim')
  set guifont=JetBrainsMono-Regular:h13
  set macligatures
endif

" Ajustement automatique du thème
if has('gui_macvim') && &termguicolors
  colorscheme gruvbox
else
  colorscheme habamax
endif

Diagnostics courants

  • La Touch Bar reste vide : vérifiez que runtime/menu.vim est présent, que MacVim a les droits d’accessibilité et exécutez :call macvim#reset_touchbar().
  • Les icônes ne s’affichent pas : utilisez uniquement des noms AppKit valides tels que NSAddTemplate ou NSSearchTemplate.
  • Apple Intelligence ne répond pas : assurez-vous que le raccourci existe, que le mode développeur est actif et que la connexion réseau est stable.

Étiquettes: MacVim vim macOS Touch Bar Apple Intelligence

Publié le 12 août à 14h39