2017-07-09 1 views
2

J'ai configuré vim d'utiliser la commande + flèche pour passer d'un onglet en ajoutant des lignes suivantes dans Vimrc:Comment utiliser Control + flèche pour basculer les onglets vim dans l'écran?

map <F7> :tabp<cr> 
map <F8> :tabn<cr> 
map <C-up> :tabr<cr> 
map <C-down> :tabl<cr> 
map <C-left> :tabp<cr> 
map <C-right> :tabn<cr> 

Dans écran, les œuvres <F7> et <F8>, mais le contrôle + flèches ne font pas ..

Une idée pourquoi? Et comment réparer? Merci.

+1

Sur quelle plateforme êtes-vous? Certaines clés sont consommées par le système d'exploitation avant d'atteindre les applications. Par exemple, dans macOS, les touches Ctrl- {gauche, droite} sont utilisées par le système d'exploitation pour le contrôle de mission. –

+0

@DanLowe Merci pour le commentaire. C'est Centos 7. – dlz

Répondre

2

Je ne suis pas sûr que ça va fonctionner, mais vous pouvez essayer d'inclure ce code dans votre vimrc:

if &term =~ '^screen' 
    sil! exe "set <xUp>=\e[1;*A" 
    sil! exe "set <xDown>=\e[1;*B" 
    sil! exe "set <xRight>=\e[1;*C" 
    sil! exe "set <xLeft>=\e[1;*D" 
endif 

Je l'ai copié à partir here.

Si vous utilisez tmux, vous pouvez également activer l'option xterm-keys dans votre fichier de configuration tmux (~/.tmux.conf):

set-option -gw xterm-keys on 

Il est décrit dans man tmux:

xterm-keys [on | off] 
     If this option is set, tmux will generate xterm(1) -style function key sequences; these have a 
     number included to indicate modifiers such as Shift, Alt or Ctrl. The default is off. 

Je ne savoir ce que l'équivalent pour screen est.


Il est également possible que quelque chose (gestionnaire de fenêtres, multiplexeur terminal, émulateur de terminal) est interceptaient <C-left> avant Vim.

Pour exclure cette possibilité, vous pouvez essayer d'insérer <C-left> littéralement dans un tampon Vim en tapant C-v C-left, en mode insertion, et voir ce qu'il affiche. Sur ma machine, il affiche ^[[1;5D, donc je sais que rien n'intercepte <C-left>.

Si rien n'est affiché, alors vous devrez trouver quel logiciel intercepte <C-left> et supprimer la liaison de clé dans sa configuration.

+0

Merci. La partie 'if' dans .vimrc fonctionne. Pourriez-vous s'il vous plaît expliquer un peu comment? – dlz

+0

@dlz J'ai modifié la réponse pour fournir plus d'informations. Faites-moi savoir si quelque chose ne va pas ou pas, et je vais essayer d'éditer davantage. – user852573

+0

merci. Je comprends beaucoup mieux maintenant. Juste une question de plus: en utilisant le caractère x, vim devrait traiter S- et C- la même chose? – dlz