Zarówno Shift+, jak Inserti „ wklejanie ” do terminala zachowują się w podobny sposób - emulują naciśnięcia klawiszy.
Jest to ważne rozróżnienie, które często jest niemożliwe do wykonania dla terminali - piszesz czy wklejasz? Uwaga : niektóre terminale obsługują tryby „ wklejania w nawiasy ”, po komentarzu @ Josha natknąłem się nawet na wklej w nawiasach kwadratowych wtyczki vim w Xterm, który może Cię zainteresować.
Wklejone dane zostaną utracone do pierwszego znaku, który wejdzie w tryb wstawiania. Może się również zdarzyć, że kursor się poruszył i że inne części pliku uległy zmianie (np. Zmieniła wielkość liter / została usunięta / itp.) ...
Podsumowując, jeśli wklejasz tekst, który chcesz wstawić do pliku, najpierw przejdź do trybu wstawiania.
Spróbuj skopiować następujący tekst i wklej go do terminala z uruchomionym Vimem (nie w trybie wstawiania):
hello how are you
Rezultat jest taki sam, jak wpisanie tych samych liter na klawiaturze:
W takim przypadku pozostawia Cię w trybie wstawiania ...
Teraz spróbuj wyjść z trybu wstawiania - Esc- i wkleić następujące
/are
n
Spowoduje to wyszukiwanie „are”:
Teraz wklej to:
:0
dG
O nie ... wszystko zniknęło!
Przekonasz się również, że jeśli masz włączone wcięcie, wklejenie bloku kodu do vima (w trybie wstawiania) spowoduje zbyt duże wcięcie - spowoduje automatyczne wcięcie, a następnie twój wklejony kod będzie zawierał wcięcie.
def my_print(message):
print(message)
print('done...')
Aby to naprawić, użyj poleceń :set paste
i:set nopaste