Вставка текста в терминальные редакторы всегда вставляется в одну строку в Ubuntu для Windows (10)

Я пытаюсь вставить из системного буфера обмена Windows в текстовый редактор терминала, такой как vim (или его буфер обмена и xterm-clipboard, допускающий варианты, такие как vim-gtx), nano или emacs, но безрезультатно.

Я в основном пытаюсь сделать это с помощью vim-gtx, так как vim - мой любимый редактор -> но какой бы метод я ни пробовал, будь то:

  • Использование: установка и вставка с помощью Ctrl- v, Shift-ctrl-v (это единственный метод, который вообще вставляет любое содержимое буфера обмена)
  • Вставка с помощью «* p или» + p (не вставляет)
  • Копирование ввода to clip.exe (пробовал xclip, но эта утилита не работает на WSL), а затем вставил в vim.

Как упоминалось выше, вставка из буфера обмена, похоже, работает только при нажатии Ctrl-v в режиме вставки (Shift-Ctrl-v вставляет '^', а "* p и" + p вставляет 'i 'character or' ^? '), и вставленный вывод всегда вставляется в одну строку.

Например, часть файла .bashrc по умолчанию, скопированного из VSCode:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Вставит в текстовый редактор терминала следующее:

# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then   if [ -f /usr/share/bash-completion/bash_completion ]; then     . /usr/share/bash-completion/bash_completion   elif [ -f /etc/bash_completion ]; then     . /etc/bash_completion   fi fi

При создании EOL видимые символы, затем сразу после последнего символа появляется символ $. Эта проблема возникает независимо от того, какой редактор используется, откуда текст копируется, и независимо от того, какая система вставки используется (если вставка удалась вообще).

Подводя итог:

  • Ctrl-v в vim - единственный способ вставить что-либо, но вставка происходит только в одну строку

  • "* p /" + p в vim не вставляется должным образом (но работает в vim через git-for-windows, см. Примечание ниже)

  • Я не уверен, как вставить из системный буфер обмена в nano и emacs (обычные вставки и вывод данных в клип Windows, а затем вставка ничего не вставляют в эти две программы - я могу вставить только после восстановления / копирования внутри).
  • Таким образом, это может быть проблемой (со всеми) разновидностями vim в Ubuntu для Windows.

Спасибо

Важное примечание: -При вставке с помощью * * p в vim через git-for-windows (вместо Ubuntu Bash), он вставляется правильно (с новыми строками). Но Vim ( vim-gtx, или версия ppa) через Ubuntu не может правильно вставить с помощью "* p - возможно, это проблема с портированием vim на

5
задан 10 July 2017 в 03:05

5 ответов

Попробуйте эту цепочку: Control + R затем Shift + =

0
ответ дан 23 November 2019 в 10:41

Этот вопрос был записан в июне 2017, и многие запросили копию WSL и вставляют поддержку. В ответ Microsoft выпустила обновление в апреле 2018: Копия и Вставка прибывают для Консолей Linux/WSL:

С № 17643 сборки Windows 10 Insider можно скопировать/вставить написать сообщение из/в Консоли Linux/WSL!!!

Мы знаем, что это - функция MANY Вас, ожидали - наше самое искреннее спасибо за Ваше терпение и постоянную поддержку, в то время как мы распутали внутренности Консоли, позволив нам реализовать эту опцию.

Чтобы гарантировать, чтобы мы не повреждали существующих поведений, необходимо будет включить опцию "Use Ctrl+Shift+C/V as Copy/Paste" на Консольной странице свойств "Options".

Примечание: Вам будет нужно обновление сентября 2018 Windows для использования новой функции.

0
ответ дан 23 November 2019 в 10:41

Определите $EDITOR переменной Bash любому предпочтительному т.е.

      export $EDITOR=/usr/bin/nano 

Затем используйте Ctrl-e Ctrl-x тот нано запуска. Затем Вы могли вставить многострочный выбор после того, как сохраняют Вас, возвращаются для окружения с командой, заполненной от редактирования. Обновление # сразу после некоторое время, хотят добавить, что прием с нано основан на новой возможности WSL, полученного, как упомянуто с одним обновлением 2018 года.

0
ответ дан 23 November 2019 в 10:41

Если Ваш пытаются вставить, несколько выравнивают от буфера обмена до Vim, я нашел рабочее решение в этом сообщении.

https://stackoverflow.com/posts/49933556/edit

Я полагаю, что этот вопрос заслуживает более объективного ответа.

Переход к режиму вставки

  • ESC
  • Вставка:set
  • нажмите i
  • SHIFT + Вставляет (с текстом, скопированным на Вашем буфере обмена)


Отъезд режима вставки

  • ESC
  • :set nopaste
  • нажмите i

Вы вставили текст, и Вы можете ввести снова.

1
ответ дан 23 November 2019 в 10:41

У меня была эта проблема при использовании cmder/ConEmu как эмулятор терминала.

Существует установка ConEmu для вставки, это принимает значение по умолчанию к вставке на одной строке с Ctrl + V, и мультилиния со Сдвигом + Вставляют.

Изменение настроек для режима Paste № 2 от Single line кому: Multi lines как в следующем снимке экрана зафиксировал это для меня.

ConEmu paste settings

0
ответ дан 23 November 2019 в 10:41

Другие вопросы по тегам:

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