LINUX.ORG.RU

tmux ctrl-[ даёт alt! Как заставить tmux не выдавать alt?

 , ,


0

2

Vim + tmux

Я привык перемещать строки по alt-j/k И это работает нормально.

Ещё в vim ctrl-[ - это <ESC>, эту комбинацию жмёшь постоянно, по 100 раз в минуту. И TMUX после неё какое-то время (что-то около полусекунды видимо) передаёт alt. Так что при последующем нажатии j/k сдвигаются строки!

Как заставить TMUX не давать alt сигнал после нажатия ctrl-[

Видимо, надо добавить в .tmux.conf:

# don't wait for the next character after escape key
set-option -g escape-time 0

Alt+X в терминале это на самом деле Esc, за которым следует X. И Alt комбинации можно нажимать без использования Alt. Опция выше должна убирать задержку после Esc и «исправлять» это поведение.

xaizek ★★★★★ ()
Ответ на: комментарий от habamax

так так, интересно. Может весь мой косяк в настройке самого вим А какую клавишу вы используете (alt или shift-ctrl)?

У меня для alt вот такое в .vimrc:

let c='a'
while c <= 'z'
    exec "set <A-".c.">=\e".c
    exec "imap \e".c." <A-".c.">"
    let c = nr2char(1+char2nr(c))
endw
set timeout ttimeoutlen=10

nnoremap <silent><A-j> :m .+1<CR>==
nnoremap <silent><A-k> :m .-2<CR>==
inoremap <silent><A-j> <Esc>:m .+1<CR>==gi
inoremap <silent><A-k> <Esc>:m .-2<CR>==gi
vnoremap <silent><A-j> :m '>+1<CR>gv=gv
vnoremap <silent><A-k> :m '<-2<CR>gv=gv
idopshik ()
Ответ на: комментарий от idopshik

Поможет с ожиданием Esc-последовательности, но вот с ремапами придётся извратиться.

Нет, ни это 0, ни 10, к сожалению, не помогают. Строчки перемещаются. а время ожидания всё равно около полусекунды.

Ты сервер tmux не забыл перезапустить или хотя бы перечитать конфиг?

mord0d ★★★ ()
Ответ на: комментарий от mord0d

Моя ошибка была вот в чём:

  • Я думал, что достаточно перезапустить эмулятор, из которого вызван TMUX. И как только я от mord0d услышал фразу «сервер TMUX», то до меня наконец-то дошло. Всем спасибо. Особенно mord0d.
idopshik ()