Jak zduplikować całą linię w Vimie w podobny sposób jak Ctrl+ Dw IntelliJ IDEA / Resharper lub Ctrl+ Alt+ ↑/ ↓w Eclipse ?
Y
es P
dzierżawy. :)
Jak zduplikować całą linię w Vimie w podobny sposób jak Ctrl+ Dw IntelliJ IDEA / Resharper lub Ctrl+ Alt+ ↑/ ↓w Eclipse ?
Y
es P
dzierżawy. :)
Odpowiedzi:
yylub Yskopiować linię (symbol: y ank )
lub
dddo d suĹ linię (Vim kopie czego usunięte w schowku-like „register”, jak cięcia pracy)
następnie
pdo p Aste skopiowany lub usunięty tekst po aktualnej linii
lub
Pdo p Aste skopiowanego tekstu lub usunięty przed bieżącym wierszu
Y
się y$
. (Zgodnie z D
i C
;. (Lecz nie Vi kompatybilny (nikt nie dba))) To jest nawet zaproponowano w :help Y
.
yj
lub yk
, zwłaszcza, że nie podwajasz jednej postaci. Plus, yk
jest wersją wsteczną, która 2yy
nie może tego zrobić, i możesz podać liczbę linii, aby sięgnąć wstecz y9j
lub y2k
itd. Jedyną różnicą jest to, że liczba musi obejmować n-1
całkowitą liczbę n
linii, ale Twoja głowa może się tego nauczyć tak czy siak.
Tryb normalny: patrz inne odpowiedzi.
Ex sposób:
:t.
powieli linię,:t 7
skopiuje go po linii 7,:,+t0
skopiuje bieżący i następny wiersz na początku pliku ( ,+
jest synonimem zakresu .,.+1
),:1,t$
skopiuje linie od początku do pozycji kursora do końca ( 1,
jest synonimem zakresu 1,.
).Jeśli chcesz przenieść zamiast kopiować, użyj :m
zamiast :t
.
To może być naprawdę potężny, jeśli połączyć je z :g
lub :v
:
:v/foo/m$
przeniesie wszystkie wiersze, które nie pasują do wzorca „foo” na końcu pliku.:+,$g/^\s*class\s\+\i\+/t.
skopiuje wszystkie kolejne wiersze formularza class xxx
zaraz za kursorem.Numer referencyjny: :help range
, :help :t
, :help :g
, :help :m
i:help :v
:
w trybie wizualnym, jest on przekształcany, aby '<,'>
wstępnie wybierać zakres linii, nad którym zaznaczony jest widok wizualny. W trybie wizualnym :t0
skopiuje linie na początku.
:t.
jest dokładną odpowiedzią na pytanie.
YP
lub Yp
lub yyp
.
Y
jest jednak zwykle odwzorowywany na y$
(szarpanie (kopiowanie) do końca linii (od aktualnej pozycji kursora, a nie początku linii)). W tym wierszu .vimrc
::nnoremap Y y$
yyP
Nie ma nic prostszego niż to! Z trybu normalnego:
yy
następnie przejdź do linii, którą chcesz wkleić i
p
yy
będzie szarpał bieżącą linię bez usuwania jej
dd
usunie bieżący wiersz
p
będzie put
linia przechwycona przez jedną z poprzednich metod
Jeśli chcesz inny sposób:
"ayy
: Spowoduje to zapisanie linii w buforze a
.
"ap
: Umieści zawartość bufora a
pod kursorem.
Istnieje wiele odmian tego.
"a5yy
: Spowoduje to zapisanie 5 linii w buforze a
.
Zobacz „ Pliki pomocy Vima dla większej zabawy.
yyp - pamiętaj o tym z „yippee!”
Wiele linii z liczbą pomiędzy:
y7yp
:.,.+7 copy .+7
: P
Lubię: Shift+ v(aby od razu zaznaczyć całą linię i pozwolić ci wybrać inne linie, jeśli chcesz), y, p
Możesz także spróbować <Cx> <Cl>, który powtórzy ostatnią linię z trybu wstawiania i wyświetli okno zakończenia ze wszystkimi liniami. Działa prawie jak <Cp>
Dla kogoś, kto nie zna vi, niektóre odpowiedzi z góry mogą wprowadzić go w błąd za pomocą zwrotów takich jak „wklej ... po / przed bieżącą linią ”.
W rzeczywistości jest to „wklej ... po / przed kursorem ”.
yylub Yaby skopiować linię
lub
ddusunąć linię
następnie
pwkleić skopiowany lub usunięty tekst po tym kursorem
lub
Pwkleić skopiowany lub usunięty tekst zanim do kursora
Aby uzyskać więcej powiązań klawiszy, możesz odwiedzić tę stronę: vi Pełna lista powiązań klawiszy
Domyślnie jest yyp, ale używam tego wiązania od około roku i uwielbiam to:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
Wiem, że spóźniam się na przyjęcie, ale cokolwiek; Mam to w moim .vimrc:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy
poleceń należy kopiuje wybraną linię i zakresu (zawsze cały linie) pod numer linii podano jako argument.
W trybie normalnym powoduje to copy .
skopiowanie tego wiersza do tuż poniżej tego wiersza .
W trybie wizualnym zmienia się w '<,'> copy '>
kopię od początku zaznaczenia do końca zaznaczenia do linii poniżej końca zaznaczenia .
Dla tych, którzy zaczynają się uczyć vi, jest to dobre wprowadzenie do vi, wymieniając obok siebie polecenia vi do typowych ruchów kursora i klawiszy skrótu edytora GUI systemu Windows. Zawiera listę wszystkich podstawowych poleceń, w tym yy(kopiuj wiersz) i p(wklej po) lub P(wklej przed).
Jeśli chcesz powielić linię i wkleić ją od razu pod bieżącym, tak jak w Sublime Ctrl+ Shift+ D, możesz dodać to do swojego .vimrc
pliku.
nmap <S-C-d> <Esc>Yp
Lub w przypadku trybu wstawiania:
imap <S-C-d> <Esc>Ypa
i
do końca, aby ponownie wejść, psuje się undo
, więc rozwiązanie duplikowania linii w trybie wstawiania nie jest tak proste, jak się wydaje.
imap <S-C-d> <Esc>Ypi
tryb wstawiania i nmap <S-C-d> <Esc>Yp
tryb normalny