Próbowałem użyć Ctrl+ Vdo wklejenia treści w dokumencie edytora vi, ale Ctrl+ Vnie jest interpretowany jako wklej.
Próbowałem użyć Ctrl+ Vdo wklejenia treści w dokumencie edytora vi, ale Ctrl+ Vnie jest interpretowany jako wklej.
Odpowiedzi:
Najpierw upewnij się, że jesteś w trybie edycji (naciśnij i). Następnie możesz wkleić za pomocą Ctrl+ Shift+ V, jeśli korzystasz z emulatora terminala, takiego jak gnome-terminal
(lub wybierz „Wklej” z menu po kliknięciu prawym przyciskiem myszy).
Możesz także wpisać :set paste
vim przed wklejeniem, aby wyłączyć automatyczne wcięcia itp. Następnie :set nopaste
po wklejeniu zawartości.
Sprawdź również to pytanie na stackoverflow.com, aby uzyskać więcej informacji.
Jeśli chcesz skopiować / wkleić linie vim
(w przeciwieństwie do wklejania zawartości schowka), powinieneś sprawdzić polecenie yank . Oto ściągawka, która może pomóc.
I
liter ma znaczenie. Małe litery i
to normalny sposób wejścia w tryb wstawiania. Capital I
przenosi kursor na początek linii, a następnie przechodzi do trybu wstawiania.
Vi (i Vim) działa zupełnie inaczej niż zwykły edytor tekstu, taki jak Gedit. Ma również dość stromą krzywą uczenia się. Jeśli chcesz nauczyć się podstawowych poleceń, zacznij od tego interaktywnego samouczka .
Jednak aby odpowiedzieć na twoje pytanie. Do zawartości schowka systemowego można uzyskać dostęp poprzez rejestr plus. Aby wkleić coś ze schowka systemowego, możesz w trybie normalnym nacisnąć: "+p(Nie w tym samym czasie, ale jeden po drugim).
vi
nievim
set :paste
).
Jeśli chcesz skopiować zawartość wklejaną w tym samym pliku , użyj yank
i paste
.
Jeśli chcesz skopiować zawartość wklejaną między terminalami , otwórz pierwszy plik, pociągając za tekst, który chcesz, a następnie otwórz drugi plik w vimie (np. :tabnew /path/to/second/file
) I naciśnij, p
aby go wkleić.
Jeśli chcesz skopiować zawartość wklejania z vima do zewnętrznego programu , musisz uzyskać dostęp do schowka systemowego. Zakładam, że używasz Ubuntu. Wersja vim z graficznym interfejsem użytkownika ma zawsze obsługę schowka, jednak jeśli chcesz używać Vima z terminala, musisz sprawdzić obsługę schowka X11.
W konsoli wpisz:
$ vim --version | grep xterm
Jeśli znajdziesz -xterm_clipboard , masz dwie opcje:
1) Skompiluj vima z włączoną flagą xterm_clipboard
2) Odinstaluj vima, zamiast niego zainstaluj gvim (vim-gtk lub vim-gnome). Możesz trzymać się vim-gui, wywołując vim z terminala, tak samo jak wcześniej. Tym razem, gdy sprawdzisz, powinieneś znaleźć + xterm_clipborad .
Teraz, gdy szarpniesz jakiś tekst w rejestrze + w edytorze vim (np. „+ Yy), zostanie on również skopiowany do schowka systemowego, który możesz pobrać z zewnętrznego programu, takiego jak edytor gedit, za pomocą Ctrl+ V.
Jeśli chcesz skopiować zawartość wklejaną z zewnętrznego programu do vima , najpierw skopiuj tekst do schowka systemowego za pomocą Ctrl+ C, a następnie w trybie wstawiania edytora vim kliknij środkowy przycisk myszy (zwykle koło) lub naciśnij Ctrl+ Shift+, Vaby wkleić.
Są to 4 podstawowe warunki kopiowania i wklejania związane z vimem. Mam nadzieję, że to pomoże.
vim-gtk
ma xterm_clipboard
wsparcie, a na Fedorze xvim
.
Zawsze używam Shift+, Insertgdy chcę wkleić tekst do terminala, działa we wszystkich programach terminala.
(Co jest również powodem, dla którego nigdy nie dostaję laptopa, w którym nie można nacisnąć Insertbez naciśnięcia drugiego klawisza)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
także?
Po wejściu w vi naciśnij, i
aby przejść do trybu wstawiania, kliknij prawym przyciskiem myszy w terminalu, kliknij wklej.
i
. Co robi wielkie litery I
?
i
. Wielkie litery I
przenoszą kursor na początek linii przed przejściem do trybu wstawiania, co nie jest tutaj potrzebne.
Szczegółowe instrukcje kopiowania / wklejania wierszy tekstu w vi za pomocą yank
iput
(użyj następujących poleceń w trybie komend vi)
Kopiuj (YANK)
Aby skopiować jedną linię w vi:
yy
lub wpiszY
Aby skopiować 2 linie w vi:
2yy
lub wpisz2Y
(podobnie można skopiować dowolną liczbę wierszy)
Aby skopiować wszystkie linie z bieżącej lokalizacji na koniec pliku:
yG
Aby skopiować cały tekst z bieżącej lokalizacji na koniec bieżącego słowa:
yw
Aby skopiować cały tekst z bieżącej lokalizacji na koniec linii:
y$
Wklej (PUT)
Aby wkleić tekst do schowka - po położeniu kursora:
p
Aby wkleić tekst do schowka - przed położeniem kursora:
P
Miałem problem, ponieważ moja instalacja Vima nie obsługiwała schowka :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Zainstalowałem vim-gnome (który obsługuje schowek), a następnie ponownie sprawdziłem:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Teraz jestem w stanie skopiować i wkleić, używając odpowiednio „+ y” i „+ p.
Z Vimem 8+ na Linuksie lub Macu, możesz teraz po prostu użyć natywnej pasty systemu operacyjnego ( ctrl+shift+V
na Linuksie, cmd+V
na Macu). Nie naciskaj, i
aby przejść do trybu wstawiania.
Wklei zawartość schowka systemu operacyjnego, zachowując spacje i tabulatory bez dodawania automatycznego wcięcia. Jest to odpowiednik starego :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
metoda.
Nie potrzebujesz już nawet instalowanych funkcji +clipboard
lub +xterm_clipboard
vim. Ta funkcja nosi nazwę „wklejania w nawiasach”. Aby uzyskać więcej informacji, zobacz https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Jeśli jesteś rootem : Ctrl+ Shift+V
Jeśli nie jesteś rootem : kliknij środek myszą.
Chciałem tylko zauważyć, że używając Vima przez Git Bash w systemie Windows, możesz po prostu użyć p
myszy lub kliknąć środkowy przycisk myszy, nie będąc w trybie wstawiania. Używając Vima przez PuTTY , możesz kliknąć prawym przyciskiem myszy. I wyróżnianie wykonuje kopiowanie.
Zauważyłem to, ponieważ nie zauważyłem, że jest to SE dla Ubuntu.
Inne pomocne polecenia:
Możesz użyć Ctrl+ Shift+ Vdo wklejenia w vimie wersji terminalowej, ale w wersji vim GUI, takiej jak Neovim-Qt
wklejanie tekstu ze schowka systemowego za pomocą Ctrl+ Shift+ Vpo prostu nie będzie działać. Musisz uzyskać dostęp do schowka "+
lub "*
edytora vim.
Dodanie nowego skrótu klawiszowego .vimrc
spowoduje po prostu polecenie kopiuj / wklej:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
Przyspieszy on pracę z komputerem w ciągu około 45 minut.