web-dev-qa-db-fra.com

OS X Byobu Vertical Split

Je suis actuellement sur OS X en utilisant iTerm2 et byobu, et je ne peux pas comprendre comment diviser mon écran verticalement sur OS X. Sous Linux, je peux diviser mon écran verticalement avec Ctrl + F2, mais sous OSX, cela ne fonctionne pas '' t fonctionne, grâce au clavier différent d'Apple.

J'ai fait des recherches sur Google pour trouver la solution, et je ne peux pas comprendre cela. Je peux diviser mon écran horizontalement avec Shift + F2, mais je dois pouvoir diviser verticalement. Quelqu'un a-t-il compris comment faire fonctionner correctement les liaisons de clavier byobu avec les ordinateurs Apple?

Merci d'avance.

34
Chris Jeon

On dirait qu'il y a sur open bug sur ce problème .

J'ai pu configurer iTerm2 pour utiliser byobu localement sur OS X ainsi qu'à distance via ssh sur un serveur Ubuntu 14.04.

En utilisant:

  • Version OS X: 10.9.5 Build 13F34
  • version iTerm2: Build 1.0.0.20140629

Tout d'abord, dans vos préférences système OS X, modifiez les paramètres de votre clavier et supprimez ou modifiez les paramètres de raccourci qui pourraient entrer en conflit avec byobu (c.-à-d. Ctrl + F1-F12).

Option 1: solution de contournement à l'aide de séquences d'échappement

Voici une solution de contournement qui fonctionnera sans ajouter de fonctionnalités complètes à la FN clés. Cela vous permettra de diviser les fenêtres verticalement à l'aide de la touche d'échappement byobu:

  1. Démarrez byobu.

  2. Réglez votre désir Ctrl-A comportement en exécutant: byobu-ctrl-a. J'ai choisi d'utiliser le mode Emacs.

  3. Courir byobu-config et choisissez ou modifiez votre séquence d'échappement. Je suis allé avec le nouveau défaut Ctrl + S. le F12 la clé est également une séquence d'échappement

  4. Vous pouvez maintenant lancer une commande avec votre séquence d'échappement. Essayer F12 ensuite % ou Ctrl + s ensuite % pour diviser une fenêtre verticalement. Pour une liste complète des commandes, essayez Ctrl + s ensuite ? ou F12 ensuite ?.

Option 2: définition des mappages de touches iTerm2 pour utiliser pleinement tous FN clés.

Vous pouvez ajouter des mappages de touches à votre profil iTerm2 pour obtenir CTRLALTSHIFT, et FN clés pour travailler avec byobu. C'est fastidieux, mais j'ai suivi l'exercice et cela semble fonctionner. Je ne pense pas qu'il existe un moyen automatisé de sauvegarder ces mappages de clés avec iTerm2.

  1. Ouvrez la préférence iTerm2 et sélectionnez Profils.
  2. Choisissez le profil que vous souhaitez utiliser.
  3. Ouvrez le volet Terminal et sous "Type de terminal de rapport" choisissez "linux".
  4. Ouvrez le volet Clés et ajoutez manuellement les liaisons de touches suivantes. Voici un exemple comment ajouter une liaison de clé:

    • Cliquez sur l'icône "+".
    • Saisissez le raccourci clavier mappé dans le premier champ. Exemple: CTRL + F2
    • Sélectionnez "Send Escape Sequence" dans le champ Action.
    • Saisissez les caractères dans le troisième champ. Exemple: [1;5Q

Vous pouvez déterminer les caractères de contrôle pour toute séquence de touches non répertoriée ici en vous référant au code source tmux .

Répétez cette opération pour tous ces mappages pour faire fonctionner la commande byobu correspondante:

  • CTRL + F2 : [1;5Q
  • CTRL + SHIFT + F2 : [1;6Q
  • ALT + LEFT : [1;3D
  • ALT + RIGHT : [1;3C
  • ALT + UP : [1;3A
  • ALT + DOWN : [1;3B
  • CTRL + F3 : [1;5R
  • CTRL + F4 : [1;5S
  • CTRL + SHIFT + F3: [1;6R
  • CTRL + SHIFT + F4: [1;6S
  • SHIFT + ALT + LEFT : [1;4D
  • SHIFT + ALT + RIGHT : [1;4C
  • SHIFT + ALT + UP : [1;4A
  • SHIFT + ALT + DOWN : [1;4B
  • CTRL + F5 : [15;5~
  • CTRL + SHIFT + F5 : [15;6~
  • ALT + F6 : [17;3~
  • CTRL + F6 : [17;5~
  • ALT + PPAGE : [5;3~
  • ALT + NPAGE : [6;3~
  • CTRL + F8 : [19;5~
  • ALT + SHIFT + F8 : [19;4~
  • CTRL + SHIFT + F8 : [19;6~
  • CTRL + F9 : [20;5~
  • ALT + F11 : [23;3~
  • CTRL + F11 : [23;5~
  • ALT + F12 : [24;3~
  • CTRL + F12 : [24;5~
  • ALT + INS: [2;3~

Sommaire

Pour que les choses fonctionnent, nous devions:

  • Supprimez les conflits avec les raccourcis clavier OS X.
  • Modifiez les mappages de touches de terminal pour envoyer les séquences d'échappement correctes lors de l'utilisation des touches de fonction.
  • Définissez le type de terminal iTerm2 sur "Linux", ce qui définit la variable d'environnement TERM sur "linux". Byobu et/ou Tmux semblaient sensibles à cela.

Quelques autres références sur les séquences d'échappement: lien SO et xterm-keys.c


Répertoire par défaut pour les nouvelles fenêtres et volets

Il semble qu'il y ait une différence dans le répertoire par défaut de la fenêtre tmux entre tmux 1.8 et tmux 1.9 ( Src , Src , Src ). Si vous utilisez byobu avec tmux 1.9, vous pouvez essayer de l'ajouter à votre ~/.byobu/keybindings.tmux fichier afin que lorsque vous créez de nouvelles fenêtres ou des divisions verticales/horizontales qu'elles ouvrent dans le même répertoire que le volet actuel:

unbind-key -n F2
bind-key -n F2 display-panes \; new-window -c "#{pane_current_path}" -n -
unbind-key -n C-F2
bind-key -n C-F2 display-panes \; split-window -hc "#{pane_current_path}"
unbind-key -n  S-F2
bind-key -n S-F2 display-panes \; split-window -vc "#{pane_current_path}"
unbind-key %
bind-key % display-panes \; split-window -hc "#{pane_current_path}"
unbind-key |
bind-key | display-panes \; split-window -vc "#{pane_current_path}"

Presse F5 pour recharger les paramètres.

61
MangoHands