Я могу получить свои iTerm ключевые комбинации, работающие в tmux?

Вы можете попробовать использовать SED :

sed -rn ':a;/^([^~]*~){13}[^~]*$/!{N;s/\n//;ba};p' yourfile.tsv

Что он делает

, скрипт имеет три части, разделенные ; :

  • : A определяет ярлык, которую мы можем отрасить до
  • / ^ ([^ ~] * ~) {13} [~ ~] * $ /! {n; s / \ n //; ba} поиск полной колонны
    • / ^ ([^ ~] * ~) {13} [~ ~] * $ / ищет строку с ровно 14 полей (0 или более вхождений чего-либо, что не является ~ ), разделенный 13 вхождений ~ .
    • ! инвертирует результат поиска (если не найден, то ...)
    • {n; s / \ n //; ba} блок, который выполняется, если столбец не завершен
      • N Читает в другой строке
      • S / \ N // Удаляет новую строку между двумя линиями
      • BA ветвями (B) к нашей ранее определенной метке (A)
  • P печатает полный столбец
0
09.09.2014, 06:00
1 ответ

Я добился этого, настроив escape-коды, чтобы следить за ними в моем .vimrc . Я все еще хотел бы лучше понять, как все это работает, и почему последовательность, отправляемая tmux, отличается от той, что отправляется за пределами tmux, но это заставило все работать:

if &term =~ "screen"
  set  <F13>=[1;2P
  set  <F14>=[1;2Q
  set  <F15>=[1;2R
  set  <F16>=[1;2S
  set  <F17>=[1;5P
  set  <F18>=[1;5Q
  set  <F19>=[1;5R
  set  <F20>=[1;5A
  set  <F21>=[1;5B
elseif &term =~ "xterm"
  set  <F13>=O2P
  set  <F14>=O2Q
  set  <F15>=O2R
  set  <F16>=O2S
  set  <F17>=O5P
  set  <F18>=O5Q
  set  <F19>=O5R
  set  <F20>=[1;5A
  set  <F21>=[1;5B
endif

" use some unused function key codes to
" make special key combos work in terminal
map  <F13> <C-CR>
map! <F13> <C-CR>
map  <F14> <S-CR>
map! <F14> <S-CR>

map  <F15> <C-Space>
map! <F15> <C-Space>
map  <F16> <S-Space>
map! <F16> <S-Space>

map  <F17> <C-BS>
map! <F17> <C-BS>

map  <F18> <M-Tab>
map! <F18> <M-Tab>
map  <F19> <M-S-Tab>
map! <F19> <M-S-Tab>

map  <F20> <C-Up>
map! <F20> <C-Up>
map  <F21> <C-Down>
map! <F21> <C-Down>
1
28.01.2020, 02:52

Теги

Похожие вопросы