Буфер обмена не используется совместно wsl и windows 10 neovim

У меня проблема при использовании скрепки в wsl, при использовании neovim при нажатии yy для копирования строки я могу вставить ее только в neovim, но то, что я хотел бы сделать, это вставить ее без каких-либо осложнений на страницу или файл txt в окнах с блокнотом, это был просто пример, я также хотел бы иметь возможность копировать из окон и вставлять с буквой p в неовим напрямую, прежде чем я мог бы это сделать, с тем же предыдущим файлом конфигурации, однако мне пришлось форматировать мои окна от вируса.

Вот мой файл конфигурации:

"set directory
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath

"files
so ~\.config/nvim/.vim/plugins.vim
so ~\.config/nvim/.vim/plugin-config.vim
so ~\.config/nvim/.vim/maps.vim

set list

syntax enable

"show line number and relative number
set nu
set rnu
set numberwidth=1 "better show the numbers

"copy and paste with the mouse
set mouse=a

"enable copy and paste 'yy, p'
set clipboard=unnamed

"shows the pressed
set showcmd

"Show current column
set ruler

"perform indent
set smartindent

"does not create external files
set noswapfile
set nobackup

"Seaching
"moves to result as you type
set incsearch
"distinguish between upper and lower case when searching
set smartcase
"Highlight matches
set hlsearch
"Unless they contain at least one capital letter
set ignorecase


"tab of 4 spaces
set noexpandtab
set tabstop=4 shiftwidth=4
"Scheme
colorscheme gruvbox
let g:gruvbox_contrast_dark = "hard"
"set background=dark

"highlight Normal ctermbg=NONE
set laststatus=2
set noshowmode

" React
"set backupcopy=yes

"Fonts
set guifont=Hurmit_Nerd_Font_Mono:h12

"When a file is edited its indent file is loaded
filetype plugin indent on

"Encoding
set encoding=utf-8

Раньше мне требовалось только это:

"enable copy and paste 'yy, p'
set clipboard=unnamed

Или, может быть, мне не хватает некоторых пакетов в Ubuntu для этого, если да, не могли бы вы сказать мне, пожалуйста? Я уже искал как сумасшедший, и я нашел только следующее решение:

" WSL yank support
let s:clip = '/mnt/c/Windows/System32/clip.exe'  " change this path according to your mount point
if executable(s:clip)
    augroup WSLYank
        autocmd!
        autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0) | endif
    augroup END
endif

Однако это не работает в обратном порядке, то есть если я копирую что-то из Windows, я не могу вставить это в wsl

У меня Ubuntu 20.04, та же, что и до форматирования, а также установлены xclip, tmux, zsh, python3, python2, nodejs

Наконец, когда я делаю :%y, я получаю эту ошибку, я также пытался поставить let g: clipboard ..., но это тоже не работает

введите здесь описание изображения


person cacasswein    schedule 22.04.2021    source источник


Ответы (1)


Neovim делегирует доступ к буферу обмена внешнему приложению. Поскольку у вас его нет, он не может работать. Это вам ясно написано на картинке выше.

Windows clip не поддерживается, так как не может читать из буфера обмена; xclip не будет работать, потому что для работы ему нужен X-сервер (разве не очевидно из его названия?) и т.д.

Обычно Neovim использует win32yank для доступа к буферу обмена Windows. Поэтому попробуйте скачать его и поместить куда-нибудь по пути WSL.

let g:clipboard = {
      \   'name': 'win32yank-wsl',
      \   'copy': {
      \      '+': '/path-file/win32yank.exe -i --crlf',
      \      '*': '/path-file/win32yank.exe -i --crlf',
      \    },
      \   'paste': {
      \      '+': '/path-file/win32yank.exe -o --lf',
      \      '*': '/path-file/win32yank.exe -o --lf',
      \   },
      \   'cache_enabled': 0,
      \ }
person Matt    schedule 23.04.2021
comment
Большое спасибо за помощь, до того как я понял ну попробуй все утро сделать, надо только добавить нужную конфигурацию в init.vim, или .vimrc соответственно - person cacasswein; 23.04.2021
comment
Где скачать win32yank? Это то, что вы загружаете на стороне Windows, а не на стороне WSL, верно? РЕДАКТИРОВАТЬ: choco установить win32yank. На самом деле вам даже не нужно устанавливать часть let g:clipboard, ЕСЛИ вы используете последнюю версию neovim 0.5-dev (я использую neovim-0.5.0+ubuntu2+git202105110234-133351cbf-d569569c9) - person 3nuc; 18.05.2021