Cambia buffer in MacVim


6

Voglio essere in grado di cambiare buffer (: bn! /: Bp!) In MacVim, usando scorciatoie come

Alt (Opzione) - Tasto freccia sinistra / Tasto freccia destra

Finora non sono stato in grado di farlo.

Ecco la mia mappatura per i tasti, che funziona perfettamente su Linux, ma non su MacOS:

map <M-Right> :bn!<CR>
map <M-Left> :bp!<CR>

Risposte:


8

I file di inizializzazione Vim vengono elaborati in questo ordine (semplificato; vedi :help initialization):

  1. $VIM/vimrc
  2. $HOME/.vimrc
  3. $VIM/gvimrc
  4. $HOME/.gvimrc

Il problema è che MacVim mappa M-Right e M-Left (e diverse altre combinazioni di tasti) nella sua $VIM/gvimrc(es. …/MacVim.app/Contents/Resources/vim/gvimrc); questo sovrascriverà qualsiasi mappatura effettuata su quelle combinazioni di tasti in $HOME/.vimrc.

Se si esamina questo file di avvio (ad es. :view $VIM/gvimrc), Si troverà che queste mappature particolari possono essere inibite impostando la variabile speciale macvim_skip_cmd_opt_movement(su qualsiasi valore) nel proprio $HOME/.vimrc.

let macvim_skip_cmd_opt_movement = 1

Ciò inibirà dieci mappature MacVim predefinite (comando e opzione per ciascuna di sinistra, destra, su, giù e BS).

In alternativa, puoi semplicemente inserire le tue mappature nel tuo $HOME/.gvimrc(dove sovrascriveranno le mappature MacVim predefinite anche se non le hai inibite macvim_skip_cmd_opt_movement).


Chris, sei fantastico !!! Grazie mille!!!
Art

3

Prova a metterlo nel tuo file .vimrc:

" Set left and right option/alt keys to be meta keys
set macmeta

Quindi prova di nuovo quei mapping e vedi se funzionano. Se vuoi invertirlo, fallo e basta :set nomacmeta.

Se usi anche questo file .vimrc su computer senza MacVim su di essi, usa questo:

" Set left and right option/alt keys to be meta keys
if has("gui_macvim")
    set macmeta
endif

Viene visualizzato il messaggio di errore "Argomento non valido macmeta = rl". Se lo faccio ': set macmeta rl' trasforma tutto il testo nella vista da destra a sinistra
Art

Beh, non vuoi fare ': set macmeta rl' perché sono essenzialmente due comandi ': set macmeta' e ': set rl' (che hai capito fa da destra a sinistra). Mi rendo conto di aver commesso un errore nella mia risposta originale ora (non ho potuto provarlo perché non ho MacVim). Lo modificherò e vedrò se la nuova soluzione funziona per te.
Lyallcooper,

"set macmeta" purtroppo non lo risolve, premendo alt -'-> 'fa semplicemente saltare il cursore alla parola successiva
Art

Grazie per l'ha ("gui_macvim") però!
Art
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.