Duplicato di una intera linea in Vim
-
09-06-2019 - |
Domanda
Come faccio a duplicare l'intera riga in Vim in modo simile a Ctrl+D in IntelliJ IDEA/Resharper o Ctrl+Alt+↑/↓ in Eclipse?
Soluzione
yy o Y per copiare la riga
o
dd per eliminare (taglio) la linea
quindi
p per incollare il copiati o cancellati del testo dopo la riga corrente
o
P per incollare il copiati o cancellati del testo prima la riga corrente
Altri suggerimenti
Modalità normale:visualizzare altre risposte.
Il Ex modo:
:t.
duplica la riga,:t 7
copia dopo la riga 7,:,+t0
copia attuali e di nuova riga all'inizio del file (,+
è un sinonimo per la gamma.,.+1
),:1,t$
copia le righe dall'inizio fino alla posizione del cursore fino alla fine (1,
è un sinonimo per la gamma1,.
).
Se è necessario spostare invece di copiare, utilizzare :m
invece di :t
.
Questo può essere davvero potente se si combinano con :g
o :v
:
:v/foo/m$
spostare tutte le righe che non corrispondono al modello “pippo” alla fine del file.:+,$g/^\s*class\s\+\i\+/t.
copia tutte le righe successive del moduloclass xxx
subito dopo il cursore.
Riferimento: :help range
, :help :t
, :help :g
, :help :m
e :help :v
YP
o Yp
o yyp
.
Non c'è niente di più semplice di così!Dalla modalità normale:
yy
quindi spostare la linea che si desidera incollare nella e
p
yy
si copia la riga corrente, senza eliminarlo
dd
cancella la riga corrente
p
sarà put
una linea afferrato da uno dei metodi precedenti
Se si desidera che un altro modo :-)
"ayy
questo negozio la riga nel buffer a
"ap
questo metterà il contenuto del buffer a
in corrispondenza del cursore.
Ci sono molte variazioni su questo.
"a5yy
questo memorizzerà le 5 linee di buffer a
vedere http://www.vim.org/htmldoc/help.html per più divertimento
Fare questo:
Prima, yy per copiare la riga corrente, e quindi p per incollare.
yyp - ricordo con "urrà!"
Più righe con un numero tra:
y7yp
yyp - incolla dopo
yyP - prima di incollare
Si può anche provare <C-x><C-l> che ripeterà l'ultima riga da inserire modalità e porta un completamento finestra con tutte le linee.Funziona quasi come <C-p>
Un'altra opzione sarebbe quella di andare con:
nmap <C-d> mzyyp`z
ti dà il vantaggio di conservare la posizione del cursore.
Per qualcuno che non conosco, vi, alcune risposte da parte di sopra potrebbe indurre in errore lui con frasi come "incolla ...prima/dopo riga corrente".
In realtà è "incolla ...prima/dopo cursore".
yy o Y per copiare la riga
o
dd per eliminare la riga
quindi
p per incollare il copiati o cancellati del testo dopo il cursore
o
P per incollare il copiati o cancellati del testo prima il cursore
Per maggiori associazioni di tasti, è possibile visitare questo sito: vi Chiave Completo Elenco Vincolante
Mi piace:Shift+v (per selezionare l'intera riga immediatamente e consente di selezionare altre linee se si desidera), y, p
1 gotcha:quando si utilizza la "p" per mettere la linea, lo mette dopo la linea è posizionato il cursore, quindi se si desidera aggiungere la riga dopo la riga che si sta tirando, non spostare il cursore in basso di una riga prima di mettere la nuova linea.
Di Default è yyp, ma io ho usato la riassociazione per un anno o giù di lì e l'amore:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
So di essere in ritardo alla festa, ma qualunque cosa;Ho nel mio .vimrc:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
il :copy
comando copia la riga selezionata o l'intervallo (sempre intere linee) al di sotto del numero di linea dato come argomento.
In modalità normale quello che fa è copy .
copia questa riga al di sotto di questa linea.
E in modalità visiva si trasforma in '<,'> copy '>
copia dall'inizio della selezione al fine della selezione per la linea sotto la fine della selezione.
Per coloro che iniziano a imparare vi, qui è una buona introduzione al vi elenco a fianco vi comandi tipici della GUI di Windows Editor di movimento del cursore e i tasti di scelta rapida.Esso elenca tutti i comandi di base tra cui yy (copia) e p (pasta) o P(la pasta prima).
Se si desidera duplicare una linea e incollarlo subito al di sotto dell'attuale piace, proprio come nel Sublime Ctrl+Shift+D, poi si può aggiungere al .vimrc
file.
imap <S-C-d> <Esc>Yp
Mi piace usare questa mappatura:
:nnoremap yp Yp
perché rende coerente usare insieme nativo YP
comando.