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!

Ivan
źródło
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.

Zee
źródło
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 ...

Ivan
źródło
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

txomon
źródło
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.

graywh
źródło
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>
frbl
źródło