Chciałbym mieć możliwość wklejenia ze schowka systemowego (lub zaznaczania tekstu) do mojego „podobnego do vi” polecenia powłoki za pomocą klawiatury. Zwykle używam zsh i czasami bash. W obu przypadkach mam powłokę skonfigurowaną z zachowaniem podobnym do vi ( bindkey -v
/ set -o vi
).
W vimie zachowanie, którego szukam, jest dostępne z sekwencją klawiszy "+p
. Jednak ta szczególna sekwencja klawiszy nie działa zgodnie z oczekiwaniami w wierszu poleceń powłoki z obsługą vi. Czy jest jakiś sposób, aby włączyć to lub podobne zachowanie, używając tylko klawiatury, pozostając przy skrótach klawiszowych vi w wierszu poleceń powłoki zsh lub bash?
-- edytować --
Przypadek użycia: często nawiguję między Firefoksem z dodatkiem Pentadactyl , emulatorem terminala i samym vimem - używając menedżera okien Xmonada z niestandardowymi klawiszami do poruszania się. Wszystkie trzy programy mają podobne do vi skróty klawiszowe, co jest bardzo wydajne (dla „pamięci palców”), więc idealnie byłoby komunikować tekst między nimi tylko przy użyciu składni vim (lub bardzo podobnej).
xsel
Działa to doskonale po zainstalowaniu i skopiowaniu sugerowanego kodu z niewielką modyfikacją mojego .zshrc (wybrałem „^ P” zamiast „^ X”, zastępując oryginalne zachowanie „^ P”)Oto rozwiązanie dla zsh (tryb vi), które otacza oryginalne widżety, aby schowek był zawsze zsynchronizowany
Zamień
xclip
na preferowane narzędzie schowka.źródło
xterm-termite
.Wybór i schowek to różne rzeczy w X Window, a „środowiska pulpitu” IMHO sprawiają, że problem jest jeszcze bardziej mętny niż był.
Czy wstawka zmiany biegów działa dla Ciebie? W aplikacjach typu X nie jest konieczne wklejenie zaznaczenia po utworzeniu takiego powiązania.
źródło
To rozwiązanie działa, jeśli zainstalowałeś
oh-my-zsh
i włączyłeśvi-mode
wtyczkę.Rozwiązanie Gillesa
xsel
izle
oparte na mnie nie działało dla mnie. Ponieważ jednak skonfigurowałem vima do domyślnego używania mojego schowka systemowego (set clipboard=unnamedplus
in~/.vimrc
), po prostu wpisuję vterminalny tryb normalny, aby otworzyć bieżące polecenie,vim
a następnie mogę skopiować je do schowka X za pomocą dowolnegovim
polecenia yank.źródło
:term
dostępnym w nowych wersjach Neovim i Vim?v
w trybie normalnym, aby edytować aktualnie wpisane polecenie w vimie zamiast w wierszu poleceń terminalu.:term
w swojej odpowiedzi, w przeciwnym razie nie jest to wcale jasne.:term
. Odkryłem jednak, że funkcjonalność, o której mowa, jest faktycznie zapewniana przezoh-my-zsh
. Odpowiednio zaktualizowałem odpowiedź.