Всякий раз, когда я копирую что-то (обычно с помощью мыши) из буфера tmux и позже вставляю это в ViM, содержимое усекается. Последняя попытка дала мне только около 750 байт полного блока, который я скопировал.
Это в iTerm на Mac.
Всякий раз, когда я копирую что-то (обычно с помощью мыши) из буфера tmux и позже вставляю это в ViM, содержимое усекается. Последняя попытка дала мне только около 750 байт полного блока, который я скопировал.
Это в iTerm на Mac.
У меня была такая же проблема, и я неправильно понял шаг вставки. Я наткнулся на этот пост.
То, что я пытался сделать, это вставить из системного буфера обмена, просто используя ctrl-v (что сработало, но только частично, как вы объяснили в своем вопросе).
Вместо этого вставка из буфера tmux с использованием ctrl-b ]
делает работу правильно.
У меня была такая же проблема с использованием tmux 1.8, iTerm2 и reattach-to-user-namespace
. Я наткнулся на привязку конфигурации tmux, которая решает проблему: она явно копирует последний выбор буфера в буфер обмена:
bind-key q run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
Поместите его в свой ~/.tmux.conf
, а затем C-b q
загрузит все в буфер обмена после выбора.
Проблема решена. Несколько указателей.
reattach-to-user-namespace
не требуется. Просто pbcopy
.tmux 2.3
MouseDragEnd1Pane
запускало pbcopy
.iTerm2
, что означает, что поддержка мыши просто работает. Из tmux v2.1
требуется только set-option -g mouse on
.MouseDragEnd1Pane
связан, как показано ниже.Вот мой урезанный ~/.tmux.conf
# --------------------------------
# Turn on the Mouse Support - defaults seem good
# --------------------------------
set-option -g mouse on
# when we finish "selecting" send it to pbcopy (and into the OS X buffer)
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
# --------------------------------
# Use vim keybindings in copy mode
# --------------------------------
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
# You enter with C-b [ and then "v" - then normal keypresses to "highlight"
# .. [Enter] or "y" will select (because of below bindings)
bind-key -t vi-copy v begin-selection
#
# 'y'ank will send the selection to the OS X buffer
bind-key -t vi-copy y copy-pipe "pbcopy"
# --------------------------------
# Update default binding of `Enter` to also use Send the selection to OS X buffer
# --------------------------------
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"
# selecting can now be done with
# hilighting with a mouse
# selecting with C-b [ v .. now vi mode for selecting text
#
# pasting can now be done with
# ⌘ - V
# C-b ]
Чтобы скопировать в Vim без мыши, вы можете вставить вывод команды tmux paste-buffer
прямо в редактируемый файл.
noremap <leader>p :r !tmux paste-buffer<cr>
Сохраните его в своем vimrc
.
Он отображает \+p для вставки из tmux буфер.
<leader>
по умолчанию является обратной косой чертой (\).
Но вы можете изменить его на любой другой ключ (*), который вам нравится, установив:
let mapleader="\<Space>"
например.
(*) То есть в пределах Vim.
Я ответил на аналогичный вопрос здесь. Здесь есть несколько моментов, которые могут повлиять на вас:
Если вы пытаетесь вставить из системного буфера и получаете такое поведение, возможно, в вашем терминале есть ограничение, которое усекает размер данных, который может быть установлен tmux. Решение (в tmux 2.6+) состоит в том, чтобы использовать что-то вроде:
# disable built-in setting of system clipboard
set-option -g set-clipboard off
# use external utility for setting system clipboard
# on Linux - xclip (+ssh display forwarding for remote machines)
# on osx - pbcopy
# on cygwin - cat > /dev/clipboard
# on Windows Subsystem for Linux (WSL) - clip.exe
# copy-pipe-* commands also copy to the tmux clipboard
# y yanks to clipboards but stays in copy mode
bind -T copy-mode-vi y send-keys -X copy-pipe "xclip -in -selection clipboard"
# Remove default handling
unbind -T copy-mode-vi Enter
# Enter yanks to clipboards then exits copy mode
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
paste
с:set paste
в vim перед вставкой? - person Aliou   schedule 28.03.2014