Duplikuj całą linię w Vimie
Jak powielić całą linię w Vimie w podobny sposób jak Ctrl+D w IntelliJ IDEA / Resharper lub Ctrl+Alt+↑/↓ w zaćmieniu?
19 answers
yy lub Y aby skopiować wiersz
lub
dd aby usunąć (wyciąć) linię
Then
p aby wkleić skopiowany lub usunięty tekst po bieżącej linii
lub
P aby wkleić skopiowany lub usunięty tekst przed bieżącą linią
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-30 13:57:30
Tryb normalny: zobacz inne odpowiedzi.
The Ex way:
-
:t.
powieli wiersz, -
: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$
kopiuje linie od początku do pozycji kursora do końca (1,
jest synonimem zakresu1,.
).
Jeśli chcesz przenieść zamiast kopiować, użyj :m
zamiast z dnia :t
.
:g
lub :v
:
-
:v/foo/m$
przeniesie wszystkie linie nie pasujące do wzorca " foo " na koniec pliku. -
:+,$g/^\s*class\s\+\i\+/t.
skopiuje wszystkie kolejne wiersze formularzaclass xxx
tuż za kursorem.
Odniesienie: :help range
, :help :t
, :help :g
, :help :m
i :help :v
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-18 11:43:11
YP
lub Yp
lub yyp
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-17 15:06:48
Nic prostszego niż to! Z trybu normalnego:
yy
Następnie przejdź do linii, w której chcesz wkleić i
p
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-07 22:20:41
yy
Wykasuje bieżącą linię bez jej usuwania
dd
Usunie bieżący wiersz
p
Będzie put
linią wykorzystywaną którąkolwiek z poprzednich metod
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 10:21:45
Jeśli chcesz inny sposób: -)
"ayy
spowoduje to zapisanie linii w buforze a
"ap
spowoduje to umieszczenie zawartości bufora a
na kursorze.
Istnieje wiele odmian tego.
"a5yy
spowoduje to zapisanie 5 linii w buforze a
Zobacz http://www.vim.org/htmldoc/help.html For more fun
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-01 03:09:12
yyp - zapamiętaj to z "yippee!"
Wiele linii z liczbą pomiędzy:
y7yp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 08:23:01
Zrób to:
Pierwszy, yy skopiować bieżącą linię, a następnie P wkleić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 10:22:40
yyp - wklej po
yyP - Wklej przed
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-03 08:47:27
Możesz również spróbować
Inną opcją byłoby:
nmap <C-d> mzyyp`z
Daje przewagę zachowania pozycji kursora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-14 04:37:04
Dla kogoś, kto nie zna vi, niektóre odpowiedzi z góry mogą go wprowadzić w błąd zwrotami typu " wklej ... po/przed linia prądowa".
to właściwie " pasta ... po/przed kursor".
yy lub Y aby skopiować wiersz
lub
dd aby usunąć wiersz
Then
p aby wkleić skopiowany lub usunięty tekst po kursor
lub
P aby wkleić skopiowany lub usunięty tekst przed kursorem
Aby uzyskać więcej wiązań do kluczy, możesz odwiedzić tę stronę: Vi pełna lista wiązań do kluczy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-12 15:07:02
I like: Shift+v (aby natychmiast wybrać całą linię I umożliwić zaznaczenie innych linii, jeśli chcesz), y, p
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-30 07:29:24
1 gotcha: kiedy używasz "p" do umieszczenia linii, to umieszcza ją po linii, na której jest włączony kursor, więc jeśli chcesz dodać linię po linii, którą szarpasz, nie przesuwaj kursora w dół linii przed umieszczeniem nowej linii.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 15:06:45
Dla tych, którzy zaczynają uczyć się vi, oto dobre wprowadzenie do vi, wymieniając obok siebie polecenia vi do typowego ruchu kursora i skrótów w edytorze Windows GUI. Zawiera listę wszystkich podstawowych poleceń, w tym yy (Kopiuj linię) I P (wklej po) lub P (Wklej przed).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 13:23:48
Domyślnie jest yyp , ale używam tego rebindingu od około roku i uwielbiam go:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-03 11:40:05
Wiem, że jestem spóźniony na imprezę, ale co tam; mam to w swoim .vimrc:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
Polecenie :copy
kopiuje tylko zaznaczoną linię lub zakres (zawsze całe linie) poniżej numeru linii podanego jako jej argument.
W trybie normalnym to co robi tocopy .
skopiuj tę linię do tuż poniżej tej linii .
I w trybie wizualnym zamienia się w '<,'> copy '>
Kopiuj od początku selekcji do końca selekcji do wiersza poniżej końca selekcji .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-13 07:26:23
Jeśli chcesz powielić linię i wkleić ją od razu pod bieżącym like, tak jak w Sublime Ctrl+Shift+D, Następnie możesz dodać to do swojego pliku .vimrc
.
imap <S-C-d> <Esc>Yp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-15 17:14:21
Lubię używać tego mapowania:
:nnoremap yp Yp
Ponieważ sprawia, że jest spójna w użyciu wraz z natywnym poleceniem YP
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 16:34:29