Zawieszone klucze w vimie podczas uruchamiania w tmux


8

Gram w Tmux i uwielbiam to. Jest jednak irytujący problem podczas uruchamiania vima w nim.

W jakiś sposób klawisze strzałek zostają ponownie przypisane, ale tylko w określonych momentach, na przykład podczas uruchamiania Command-T, jeśli spróbuję przewinąć listę plików w dół, polecenie zostanie anulowane i przejdę do trybu wstawiania, w zależności od klawisza strzałki Nacisnąłem, wstawiono A, B, C lub D.

Jeśli na przykład używam strzałek do przechodzenia przez bufor, działają one poprawnie.

Jakieś pomysły?

Dzięki!


1
Co jest na $TERMzewnątrz tmux? A co z wnętrzem? Wygląda na to, że coś się dzieje z aplikacjami i normalnymi trybami klawiatury.
— Dennis Williamson

Poza tmux: xterm, inside: screen ... więc jeśli uruchomię TERM=screen vim, widzę to samo zachowanie, więc muszę naprawić screen?
— Ivan

Odpowiedzi:


12

Po prostu dodałem set -g default-terminal "xterm"do mojego .tmux.conf

To spowodowało, że Tmux używał Xtermu zamiast ekranu, więc życie jest piękne i nie muszę się martwić o tupanie klawiszami.


5
Tak lepiej set -g default-terminal "xterm-256color". W przeciwnym razie nie mogłem zauważyć w trybie wizualnym z powodu ograniczonych kolorów.
— Macario

1
Musiałem to połączyć set -g xterm-keys on.
— Dan Stahlke,

4
Warto zauważyć, że strona podręcznika dla tmux mówi, aby nigdy nie ustawiać default-terminal. Nie jestem pewien, jakie są konsekwencje.
— Dan Stahlke,

1
Biorąc pod uwagę ostrzeżenie, którego default-terminalnie należy ustawiać, być może jest lepsza poprawka od strony vima: link .
— Dan Stahlke,

W moim przypadku nie działa ...
— Blaszard,

6

W końcu znalazłem tutaj odpowiedź: podczas uruchamiania ekranu w OSX, Command + R przesuwa klawisze strzałek w vimie na wszystkich ekranach

Dziwne jest to, że dodałem JEDEN mapowanie do mojego pliku .vimrc:

map <Esc>[B <Down>

Ale to pojedyncze mapowanie sprawia, że ​​WSZYSTKIE klawisze strzałek działają poprawnie ...


Jakoś ... to było jedyne rozwiązanie, które działało dla mnie na Centos 6.3
— Patryk,

To dla mnie absolutnie nie ma sensu, ale dodanie pojedynczego mapowania wydaje się naprawić wszystkie klucze również dla mnie. Nawet nieznajomy (przynajmniej dla mnie) bezpośrednie mapowanie dla naciśnięcia klawisza w trybie wstawiania go nie naprawia ( map ^[A <Up>działa od naciśnięcia Ctrl + V <Up> i usunięcia O, map ^[OA <Up>od naciśnięcia Ctrl + V <Up> i pozostawienia O nie „t). Nie rozumiem ... ale cokolwiek. Moje klucze działają teraz. Dziękuję Ci.
— ND Geek


1

Na wypadek, gdyby ktoś zdenerwował się tym rozwiązaniem, które nie działa.

Sprawdź, czy tak naprawdę nie używasz wtyczki tmux + vim + AutoClose vim. Automatyczne zamykanie mapuje coś, co powoduje, że znaki ABCD są wstawione w poprzedniej linii!

Właśnie usunąłem wtyczkę i teraz działa dobrze


Dziękuję Ci! To było dla mnie. I skończył przy użyciu tej AutoClose-plugin zamiast. Zapewnia podobną funkcjonalność.
— ollpu

0

Command-T robi coś głupiego poprzez mapowanie podczas uruchamiania w terminalu. Pomija mapowanie, jeśli $ TERM to vt100 * lub xterm *, ale to nie jest dobre rozwiązanie.


0

Dla osób, które chcą przesunąć kursor w trybie wiersza poleceń, spójrz na ten post na blogu. W końcu dodałem osiem wierszy w moim vimrc;

" Needed for tmux and vim to play nice
" Needed for tmux and vim to play nice
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

" Console movement
cmap <Esc>[A <Up>
cmap <Esc>[B <Down>
cmap <Esc>[C <Right>
cmap <Esc>[D <Left>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.