W neovim, jak mogę współdzielić rejestry między instancjami edytora?

9

Wiem, że vim miał podział klient / serwer, co pozwoliło na dzielenie rejestrów między różnymi klientami vim, ale jak osiągnąć to samo w neovim? Nie obsługuje flag klient / serwer. Widziałem to pytanie , ale moim celem jest w szczególności udostępnianie rejestrów, a nie naśladowanie reszty klienta / serwera. Czy jedynym sposobem jest neovim remote? Czy jest coś prostszego, co mogę zrobić?

Christopher Waldon
źródło

Odpowiedzi:

2

LEI ma rację; a neoviminstrukcje pomocy podają to jako konkretny przypadek użycia tej funkcji:

Do ręcznego odczytu i zapisu pliku ShaDa można użyć dwóch poleceń. Można tego użyć do wymiany rejestrów między dwoma uruchomionymi programami Vima: Najpierw wpisz „: wsh” w jednym, a następnie „: rsh” w drugim.

kdannyob
źródło
4

Nie mam pojęcia o funkcji clientserver, najprostszym sposobem, jaki mogę wymyślić, byłoby użycie domyślnego schowka systemowego podczas szarpania lub wklejania, które można wykonać za pomocą:

set clipboard=unnamedplus

W zależności od systemu operacyjnego i środowiska konieczne mogą być inne poprawki, aby działał bezproblemowo.


Ponadto możesz być w stanie wykorzystać viminfoplik (lub :h shadaw neovim):

Plik ShaDa służy do przechowywania:

  • Historia wiersza poleceń.
  • Historia ciągu wyszukiwania.
  • Historia linii wejściowych.
  • Zawartość niepustych rejestrów.
  • Oznaczenia dla kilku plików.
  • Znaczniki plików, wskazujące na lokalizacje w plikach.
  • Ostatnie wyszukiwanie / wzorzec zastępczy (dla „n” i „&”).
  • Lista buforów.
  • Zmienne globalne.
LEI
źródło
0

Przepraszam, ponieważ nie wiem już, gdzie to znalazłem:

" share data between nvim instances (registers etc)
augroup SHADA
    autocmd!
    autocmd CursorHold,TextYankPost,FocusGained,FocusLost *
                \ if exists(':rshada') | rshada | wshada | endif
augroup END
SergioAraujo
źródło