2

У меня странная проблема:

При входе в конкретный хост (от OSX до RHEL5) vim, похоже, забывает, как выполнять возврат, но только в сеансе tmux, то есть:

  ssh foo@bar.com
  vim test

Backspace отлично работает выше.

Это не однако:

  ssh foo@bar.com
  tmux
  vim test

Нажатие на клавишу Backspace в режиме вставки производит ^? В чем может быть проблема?

4 ответа4

5

Возможно, вам придется изменить свой терминал для отправки ^h при вводе Backspace .

В настройках терминала настройка является частью профиля, поэтому вы можете настроить выделенный профиль для подключения SSH к этой системе RHEL5.

1

Вы можете привязать клавишу возврата к тому, что вам нужно, как сказал Кевин. Похоже, вам нужно сопоставить его с ^? (а не ^ H)

Для этого используйте следующую команду:

stty erase "^?"

Это может быть добавлено в ваши сценарии запуска (.login или .tcshrc или .bashrc , или другие файлы, в зависимости от того, какую оболочку вы используете).

0

Я сделал обходной путь

  1. сделать псевдоним в .alias

псевдоним emacs(или vi)= 'стереть стереть "^ H"

Emacs'

2 сделать скрипт оболочки,

имя файла tmuxsh

stty ek
cmd=$(which tmux)      # tmux path
session=$1
if [ $# = 0 ]; then
   $cmd ls
   exit 0
fi
$cmd has -t $session 2> /dev/null
if [ $? != 0 ]; then
     $cmd new -s $session
     exit 0
fi
$cmd att -t $session
exit 0

Конечно, вы также можете создать псевдоним, псевдоним tm = tmuxsh. тогда вы можете использовать emacs/vi как в tmux, так и вне tmux. зачем создавать псевдоним emacs на шаге 1? потому что, если просто использовать шаг 2, после выхода из tmux в обычную оболочку, emacs/vi также столкнется с проблемой.

У меня хорошо работает

0

Я считаю, что дает эту команду

стереть стереть Ctrl - V ЗАДНЯЯ ЧАСТЬ

работает для меня. Тем не менее, мне нужно сделать это на каждой панели.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .