Можно ли редактировать буфер терминала в обычном режиме в NeoVim?

Режим терминала NeoVim — это круто, но мне бы очень хотелось иметь возможность переключаться в обычный режим, чтобы редактировать терминал с помощью команд обычного режима, возможно ли это?

Я понимаю, что в этом терминальном режиме весь ввод является ответственностью терминала, поэтому я вижу, что режим, в котором взаимодействие ввода проходит между vim и терминалом, не должен быть простым, если это вообще выполнимо, я просто хотел бы подтверждать.


person pepper_chico    schedule 19.01.2016    source источник


Ответы (1)


Это возможно.

Однако пользователю необходимо сначала использовать комбинацию клавиш <C-\><C-n>, которая вернет его в обычный режим. Находясь в «нормальном» режиме, пользователь может перемещаться, устанавливать метки, визуально выбирать текст, использовать регистры для извлечения и вставки вывода в другое место и т. д.

Если пользователь вернется в режим вставки (например, i или a), курсор вернется в командную строку терминала.

Общая информация об эмуляторе терминала: :h terminal-emulator

Для получения конкретной информации о вводе терминала: :h terminal-emulator-input. Этот раздел содержит множество советов, которые могут оказаться полезными, например, как сопоставить <C-\><C-n> с <esc>.

person lsrdg    schedule 27.03.2017
comment
Ваши взаимодействия в НОРМАЛЬНОМ режиме ничего не редактируют, что меня и интересовало. - person pepper_chico; 20.05.2017
comment
Не уверен, что понял твой комментарий, @pepper_chico. Однако вы можете перенести текст в обычный буфер и отредактировать его. - person lsrdg; 20.05.2017
comment
Это не редактирование в буфере терминала.... Речь идет об операциях редактирования, а не только об операциях только для чтения. - person pepper_chico; 20.05.2017
comment
Спасибо. Но вы думаете о самом терминале, вы его не редактируете, он выдает результаты, и с этими результатами вы ничего не можете сделать. Поэтому нет смысла редактировать буфер terminal. Если вы хотите отредактировать вывод, вы вставляете его в буфер и редактируете. Но буфер терминала может помочь, так как он будет обрабатывать вывод как буфер, вы можете искать, отмечать и т. д. (вещи, которые вы не можете делать на обычном терминале). Как только вы найдете то, что хотите, переместите это в другой буфер и отредактируйте. Кстати, этот «отредактированный» вывод вы не сможете просто вставить обратно в терминал. - person lsrdg; 21.05.2017
comment
В любом случае, извините, я не смог ответить на ваш вопрос. (: - person lsrdg; 21.05.2017
comment
Вы можете отредактировать командную строку до того, как закончите ввод одной команды. Хорошо, спасибо. - person pepper_chico; 21.05.2017
comment
Меня больше не волнует эта функция, в то время мне было любопытно, но сегодня я намного лучше использую tmux и vim/nvim, чем этот встроенный терминал. Я не сталкиваюсь с такими ограничениями. - person pepper_chico; 21.05.2017
comment
Привет, @pepper_chico, мне любопытно, как ты используешь эту функцию в tmux? Можете ли вы привести пример? Спасибо - person ZzAntáres; 09.10.2017
comment
@ZzAntáres несколько плагинов tmux tpm и vim-tmux-navigator для меня гораздо удобнее: github.com/oblitum/dotfiles/blob/archlinux/.tmux.conf#L51-L60 (обратите внимание, что на данный момент tmux-copycat, к сожалению, перестал работать после tmux 2.4). - person pepper_chico; 09.10.2017