Ho provato a usare Ctrl+ Vper incollare i contenuti in un documento dell'editor vi, ma Ctrl+ Vnon viene interpretato come un incolla.
Ho provato a usare Ctrl+ Vper incollare i contenuti in un documento dell'editor vi, ma Ctrl+ Vnon viene interpretato come un incolla.
Risposte:
Innanzitutto, assicurati di essere in modalità modifica (premi i). Quindi puoi incollare con Ctrl+ Shift+ V, se ti trovi in un emulatore di terminale simile gnome-terminal
(o seleziona "Incolla" dal menu di scelta rapida).
Puoi anche digitare :set paste
vim prima di incollarlo per disabilitare il rientro automatico, ecc. Dopo :set nopaste
aver incollato il contenuto.
Controlla anche questa domanda su stackoverflow.com per ulteriori informazioni.
Se vuoi copiare / incollare le linee vim
(invece di incollare il contenuto degli appunti), ti consigliamo di dare un'occhiata al comando yank . Ecco un cheat sheet che potrebbe aiutare.
I
è sensibile al maiuscolo / minuscolo. La minuscola i
è il modo normale di accedere alla modalità di inserimento. La maiuscola I
porta il cursore all'inizio della riga e quindi entra nella modalità di inserimento.
Vi (e Vim) funzionano in modo molto diverso rispetto a un normale editor di testo come Gedit. Ha anche una curva di apprendimento piuttosto ripida. Se vuoi imparare alcuni comandi di base, inizia con questo tutorial interattivo .
Tuttavia, per rispondere alla tua domanda. È possibile accedere al contenuto degli Appunti di sistema tramite il registro più. Quindi, per incollare qualcosa dagli appunti di sistema, puoi, dalla modalità Normale, premere: "+p(Non contemporaneamente, ma uno dopo l'altro).
vi
non usovim
set :paste
).
Se si desidera copiare i contenuti incollati all'interno dello stesso file , utilizzare yank
e paste
.
Se vuoi copiare il contenuto incollato tra i terminali , apri il primo file, strappando il testo desiderato, quindi apri il tuo secondo file in vim (ad es. :tabnew /path/to/second/file
) E premi p
per incollarlo.
Se si desidera copiare il contenuto incolla da VIM in un programma esterno , è necessario accedere agli Appunti di sistema. Presumo che tu usi Ubuntu. La versione GUI di vim ha sempre il supporto degli appunti, tuttavia, se ti piace usare Vim da un terminale, dovrai controllare il supporto degli appunti X11.
Dalla console, digitare:
$ vim --version | grep xterm
Se trovi -xterm_clipboard , hai due opzioni:
1) Compila vim te stesso, con il flag xterm_clipboard acceso
2) Disinstallare vim, installare invece gvim (vim-gtk o vim-gnome). Puoi attenerti a non-gui vim chiamando vim dal terminale, come hai fatto prima. Questa volta quando controlli dovresti trovare + xterm_clipborad .
Ora, quando si estrae del testo nel registro + all'interno dell'editor vim (ad es. "+ Yy), viene anche copiato negli appunti di sistema che è possibile recuperare dal programma esterno come l'editor gedit, utilizzando Ctrl+ V.
Se vuoi copiare i contenuti incollati da un programma esterno in vim , prima copia il testo negli appunti di sistema tramite Ctrl+ C, quindi in modalità di inserimento dell'editor vim , fai clic sul pulsante centrale del mouse (di solito la rotellina) o premi Ctrl+ Shift+ Vper incollare.
Queste sono 4 condizioni di copia e incolla di base relative a vim. Spero che questo possa essere d'aiuto.
vim-gtk
ha il xterm_clipboard
supporto e su Fedora ce l' xvim
ha.
Uso sempre Shift+ Insertquando voglio incollare il testo nel terminale, funziona in tutti i programmi del terminale.
(Questo è anche il motivo per cui non ho mai un laptop in cui non è possibile premere Insertsenza premere un tasto secondario)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
anche?
Dopo aver inserito vi, premere i
per accedere alla modalità di inserimento, fare clic con il tasto destro del mouse sul terminale, fare clic su Incolla.
i
. Cosa fa in maiuscolo I
?
i
. Le maiuscole I
spostano il cursore all'inizio della riga prima di accedere alla modalità di inserimento, che qui non è necessaria.
Istruzioni dettagliate per copiare / incollare righe di testo in vi usando yank
eput
(utilizzare quanto segue nella modalità di comando di vi)
Copia (YANK)
Per copiare una riga in vi:
yy
o digitaY
Per copiare 2 righe in vi:
2yy
o digita2Y
(allo stesso modo, è possibile copiare qualsiasi numero di righe)
Per copiare tutte le righe dalla posizione corrente alla fine del file:
yG
Per copiare tutto il testo dalla posizione corrente alla fine della parola corrente:
yw
Per copiare tutto il testo dalla posizione corrente alla fine della riga:
y$
Incolla (PUT)
Per incollare il testo negli Appunti - dopo la posizione del cursore:
p
Per incollare il testo negli Appunti - prima della posizione del cursore:
P
Ho avuto un problema, perché la mia installazione di Vim non supportava gli Appunti :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Ho installato vim-gnome (che supporta gli appunti) e poi ho controllato di nuovo:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Ora sono in grado di copiare e incollare usando rispettivamente "+ y e" + p.
Con Vim 8+ su Linux o Mac, ora puoi semplicemente utilizzare la copia nativa del sistema operativo ( ctrl+shift+V
su Linux, cmd+V
su Mac). Non premere i
per la modalità di inserimento.
Incollerà il contenuto degli appunti del sistema operativo, preservando gli spazi e le schede senza aggiungere autoindenting. E 'corrisponde alla vecchia :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
metodo.
Non hai nemmeno più bisogno delle funzionalità di +clipboard
o +xterm_clipboard
vim installate. Questa funzione è chiamata "incolla tra parentesi". Per maggiori dettagli, consultare https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Se sei root : Ctrl+ Shift+V
Se non sei root : fai clic con il pulsante centrale del mouse.
Volevo solo notare che usando Vim tramite Git Bash su Windows, puoi semplicemente usare p
o fare clic con il tasto centrale del mouse senza essere in modalità inserimento. Usando Vim tramite PuTTY , puoi semplicemente fare clic con il tasto destro. E l'evidenziazione fa la copia.
L'ho notato perché sono arrivato qui non vedendo che questo è SE per Ubuntu.
Altri comandi utili:
Puoi usare Ctrl+ Shift+ Vper incollare in vim versione terminale, ma per la versione GUI vim come Neovim-Qt
, incollare il testo dagli appunti di sistema con Ctrl+ Shift+ Vsemplicemente non funzionerà. Devi accedere agli appunti "+
o "*
nell'editor vim.
Aggiungendo un nuovo keybinding .vimrc
verranno semplicemente i comandi copia / incolla:
" 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
Ti consentirà di arrivare a dove è utilizzabile in circa 45 minuti.