Problema nell'uso di Ctrl + tasti freccia in Vim quando si utilizza Byobu con tmux


12

In Vim, avevo impostato i tasti Ctrl + Freccia per saltare le parole. Funziona bene quando si esegue Vim all'interno del terminale gnome.

Tuttavia, quando si usa byobu (tmux), mostra un comportamento strano: cancella tutto dopo il cursore.

Per riferimento, queste sono le mie impostazioni vim:

:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w

Risposte:


7

Il problema è duplice. Innanzitutto, tmuxper impostazione predefinita converte i tasti freccia di controllo da un tipo di sequenza di escape a un altro. Quindi tasti speciali come quelli controlleftvengono inviati vimsenza il modificatore, ad es left. Se usi cat -vper vedere le diverse sequenze di escape, potresti vedere qualcosa del genere

^[OD

rispetto a questo (fuori da tmux):

^[[1;5D

La linea

set-window-option -g xterm-keys on

risolve quell'aspetto. L'altra parte è che tmuxper impostazione predefinita utilizza la descrizione del terminale per screen. La descrizione del terminale non descrive i tasti freccia di controllo. Queste voci dal database dei terminali sarebbero le più appropriate per VTE (gnome-terminal):

Ce ne sono altri, come ad esempio

che sarebbe selezionato automaticamente durante l'esecuzione in screense corrispondente TERMall'esterno erano vte, vte-256colorecc tmuxnon la fanno automatica di selezione; devi modificare il suo file di configurazione.

A proposito, non esiste una voce "screen.xterm" perché interferirebbe con alcuni usi di screen. Non c'è conflitto con TERM=xterm-new.

Se hai un database terminale predefinito (minimo) come ncurses-basein Debian, potresti non averne uno. Più comune sarebbe xterm-256color, che è abbastanza vicino da usare con vim e tmux.

Ad esempio, se aggiungo questo al mio .tmux.conffile, si comporta come previsto in vim:

set -g default-terminal "xterm-256color"

Ulteriori letture:


Hmmm ... Funziona :) Ma solo parzialmente. Funziona solo Control+ Left; Control+ Rightnon lo è. Proverò e aggiornerò più tardi.
Shivams,

1
Potresti avere altri vincoli che interferiscono con control + right (dati dettagliati, posso offrire un consiglio).
Thomas Dickey,

Grazie per l'offerta :) Ho studiato un po 'e ho scoperto che effettivamente alcune altre combinazioni di tasti stanno causando interferenze. Ad esempio sul mio Mac funziona bene, mentre in Linux (usando Guake) non lo è. Tuttavia, sono fuori dalla stazione e non riesco ad accedere al mio Linux. Aggiornerò quando risolverò il problema.
shivams,

@Thamam Dickey: intanto accetto la tua risposta perché risolve davvero il problema.
shivams,

@ThomasDickey Vorrei solo dire "Go raibh míle maith agat" che in irlandese viene letteralmente tradotto come "Possiate avere mille cose buone". Grazie mille per questa risposta Sei una stella.
Rob,

2

Da qui puoi sbloccare la combinazione di tasti in byobu:

Crea un file ~/.byobu/.tmux.confcon (o aggiungi se il file esiste):

set-window-option -g xterm-keys on

Quindi aggiungere quanto segue a ~/.byobu/keybindings.tmux:

unbind-key -n C-Left
unbind-key -n C-Right

Questo non funziona Tuttavia mi ha dato un solido vantaggio. Cercherò di seguire l'esempio e trovare una soluzione. Grazie :)
Shivams,
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.