Jeśli używasz wersji GUI, naprawdę powinieneś wkleić z rejestru schowka ( "*
) lub wyboru X11 ( "+
), jak już zasugerował echristopherson. Zamiast klikać środkowym przyciskiem lub cokolwiek innego, nawigujesz w miejscu, w którym chcesz wkleić, a następnie piszesz "*P, w tym początkowy cytat. Podczas wklejania za pomocą poleceń plub P, vim wie, że wklejasz, dlatego 'paste
opcja jest niepotrzebna - bez względu na to, z którego rejestru wklejasz.
Jeśli wklejasz z terminala, vim tak naprawdę nie ma nic do powiedzenia w tej sprawie. Emulator terminala zrzuci wszystko, co go poinstruowałeś, a w większości przypadków vim nie może rozróżnić, czy znaki, które wciąż przychodzą, są pisane, czy wklejane. Dlatego musisz ustawić, 'paste
aby powiedzieć vimowi, że nie powinno robić wcięć i tym podobne.
W rezultacie, jeśli wklejasz z terminala, wszystkie znaki, które chcesz wkleić, są umieszczane w kolejce za jednym razem i są zasadniczo wysyłane do vima, więc naprawdę nie możesz nic zrobić, aby to przerwać. Z punktu widzenia emulatora terminala CTRL+ cjest zwykłym znakiem, dlatego ustawia się w kolejce za wszystkimi innymi rzeczami, które czekają na wklejenie. Kiedy vim w końcu zobaczy znak CTRL+ c, jest już za późno, ponieważ nie ma już nic do przerwania.
(Aktualizacja: W zależności od emulatora terminala, CTRL+ ci podobne sygnały mogą być wysyłane w sposób priorytetowy. W szczególności zauważyłem to w Putty, która dostarcza sygnał przerwania natychmiast i rzeczywiście pozwala mi przerwać operacje niewłaściwego wklejania. ale naprawdę wiem, jak to działa.)
Krótka historia: Jeśli to w ogóle możliwe, użyj "*Plub "+Pwklej (co działa nawet w niektórych emulatorach terminali, jeśli dobrze pamiętam). To jest „poprawny” sposób wklejania; wszystko inne jest w zasadzie obejściem tego rodzaju bólów głowy.
+
rejestru, np"+P
. (Lub w X11 użyj*
rejestru, aby wkleić wszystko, co zostało ostatnio wybrane; ten sam tekst, który otrzymasz, gdybyś kliknął środkowym przyciskiem myszy na większość aplikacji X.)