VIM komentuje to, co wklejam

14

Mam to podczas próby skopiowania tej treści na vimie: https://gist.github.com/w0ng/3278077

wprowadź opis zdjęcia tutaj

Wszędzie zauważam to samo zachowanie: jeśli wkleję coś, co zawiera komentarz, wszystko, co następuje po komentarzu, jest wklejane.

Być może ma to coś wspólnego z faktem, że jeśli napiszę komentarz na temat trybu wstawiania i naciśnie enter, poniższy wiersz automatycznie doda komentarz.

Jak mogę pozbyć się tego zachowania?

jviotti
źródło

Odpowiedzi:

26

Przejdź do trybu wklejania przed wklejeniem:

:set paste

Aby wrócić do trybu „normalnego”:

:set nopaste
Mata
źródło
6
lub: ustaw wklej! toggle :)
valbaca
@valbaca Do tworzenia code blockskomentarzy w komentarzach można używać
wstecznego
Potrzebowałem tych poleceń na odwrót!
11

Oprócz pasteopcji wspomnianej przez Mat , możesz również uzyskać bezpośredni dostęp do schowka X z VIM:

  • "*p aby wstawić wybór X11
  • "+p aby wstawić schowek X11

Potrzebujesz wersji VIM z obsługą X11 (w Debianie i jego pochodnych musisz zainstalować pakiet vim-gtklub vim-gnome).

Aby uzyskać więcej informacji, zobacz dokumentację ( :help x11-selection).

Jofel
źródło
6

Oto co się dzieje. Istnieją opcje formatowania Vima, które automatycznie komentują nowe linie, gdy jesteś w linii komentarza. Niektóre z tych opcji są zazwyczaj domyślnie włączone. Na przykład,

# a comment<CR>
# 

Jak widać, nowy wiersz został automatycznie poprzedzony znakiem komentarza. Możesz wyłączyć większość z tych opcji, usuwając ci zmieniając rustawienia formatoptions. Zobacz :h fo-tablewięcej informacji o tych opcjach.

:set formatoptions-=cr

Vim nie ma sposobu na odróżnienie tekstu wklejonego za pomocą mechanizmów wklejania emulatora terminala od tekstu, który wpisujesz. Ustawienie opcji wklejania ( set paste) każe Vimowi oczekiwać wklejenia tekstu i wyłączyć wszelkie opcje formatowania, które byłyby niepożądane.


źródło
3

Moim ulubionym jest używanie put polecenia.

  • :put* wklej z zaznaczenia w bieżącym wierszu
  • :put+ wklej z bufora w bieżącym wierszu

"*p/ "+pjest również dobry, ale :pu[t]ma pewne zalety:

  • zawsze wkleja się wzdłuż linii
  • możesz dodać dodatkowy parametr, aby kontrolować, gdzie wstawić:
    • :$put+ wklej po ostatnim wierszu
    • :0put+ wklej na początku pliku
defhlt
źródło
1

Na marginesie: jeśli masz jakieś pliki, które to mają, możesz się ich pozbyć, wchodząc w tryb pionowego bloku wizualnego

ctrl+v a następnie za pomocą klawiszy strzałek / hjkl poruszaj się po częściach, które chcesz usunąć, a następnie po prostu naciśnijd

Czasami wydaje mi się, że jest to szybsze niż cofanie ustawień trybu wklejania, wklejania i wyłączania trybu wklejania.

exussum
źródło