Wklej w trybie wstawiania?
Czy można wkleić w trybie wstawiania w Vimie?
11 answers
W trybie insert hit CTRL-R {register}
Przykłady:
-
CTRL-R *
wstawi zawartość schowka -
CTRL-R "
(rejestr nienazwany) wstawia ostatni delete lub yank.
Aby znaleźć to w pomocy Vima wpisz :h i_ctrl-r
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-02-01 02:20:51
Jeśli nie chcesz, aby Vim zmieniał formatowanie w nadchodzącym wklejonym tekście, możesz również rozważyć użycie: :set paste
. Uniemożliwi to Vimowi ponowne zakodowanie kodu. Po zakończeniu wklejania :set nopaste
powróci do normalnego zachowania.
Możliwe jest również przełączenie trybu za pomocą jednego klawisza, dodając coś w rodzaju set pastetoggle=<F2>
do twojego .vimrc. Więcej szczegółów na temat przełączania Auto-indent znajduje się tutaj .
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-05-24 18:18:44
Nie, Nie bezpośrednio. możesz jednak szybko wyjść z trybu wstawiania, aby wykonać jedną operację w trybie normalnym za pomocą Ctrl-O , a następnie wklej stamtąd, co zakończy się przywróceniem trybu wstawiania.
Kombinacja klawiszy: Ctrl-O p
EDIT: ciekawe. Wydaje się, że istnieje sposób, jak kilka innych osób wymieniło.
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-07-25 15:28:40
W trybie insert możesz użyć Ctrl-R {register}
, gdzie register może być:
-
+
do schowka, -
*
do schowka X (Ostatnio zaznaczony tekst w X), -
"
dla rejestru nienazwanego (last delete lub yank in Vim), - lub kilka innych (patrz
:h registers
).
Ctrl-R {register}
wstawia tekst tak, jakby został wpisany.
Ctrl-R Ctrl-O {register}
wstawia tekst z oryginalnym wcięciem.
Ctrl-R Ctrl-P {register}
wstawia tekst i Auto-wcięcia go.
Ctrl-O
może być użyty do uruchomienia dowolnego polecenia trybu normalnego przed powrotem do trybu wstawiania, więc Ctrl-O "+p
może być również używany, na przykład.
Aby uzyskać więcej informacji, zobacz dokumentację za pomocą :h i_ctrl-r
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-06-22 13:11:01
Możesz użyć tego do wklejenia ze schowka za pomocą Ctrlv :
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
I to do zaznaczenia wizualnego w schowku za pomocą Ctrlc:
vnoremap <C-c> "+y
Jeśli chcesz również domyślnie używać schowka do klasycznego szarpania/wklejania vimów (y/p ) w trybie normalnym, oto Opcja konfiguracji, która to robi:
set clipboard=unnamedplus
Za pomocą tego configs ' a można np. najpierw w trybie normal a potem wkleić z Ctrlv w trybie insert. Możesz również wkleić tekst z różnych instancji vim i różnych aplikacji.
Inna opcja to:
set clipboard=unnamed
Wtedy będziesz mógł po prostu wybrać coś przeciągając myszką w środowisku X i wkleić to do Vima później. Ale (z jakiegoś powodu) nie będziesz w stanie czegoś szarpnąć (y ) w vim i shiftwstawić to gdzie indziej, co prawdopodobnie jest całkiem ograniczam.
Vim docs about this: http://vim.wikia.com/wiki/Accessing_the_system_clipboard
Do wklejania z własnych rejestrów możesz śledzić Pozostałe odpowiedzi :). Ta odpowiedź dotyczy głównie integracji Vima ze schowkiem systemowym.
Zauważ, że aby set clipboard=unnamedplus
i set clipboard=unnamed
działały, musisz użyć gvim lub vimx (vim-X11
): są one kompilowane z +xterm_clipboard
. Możesz opcjonalnie umieścić to w swoim .bashrc
do aliasu vim
z vimx
:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
Możesz dowiedz się, czy twój vim ma +xterm_clipboard
w informacji dostarczonej przez vim --version
.
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-02-19 13:14:52
Jeśli ustawisz Vim na używanie schowka systemowego (:set clipboard=unnamed
), wtedy każdy tekst skopiowany w Vimie może zostać wklejony za pomocą Shift + Insert . Shift + Insert jest po prostu kombinacją klawiszy wklejania w całym systemie operacyjnym (Ctrl + Insert jest odpowiednią "kopią").
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-05-24 18:17:44
Możesz również użyć środkowego przycisku myszy do wklejenia w trybie wstawiania (tylko Linux).
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-05-24 18:19:00
Możesz wejść w tryb -- INSERT (past) --
poprzez:
- combo Klawiatury: y p
Lub
-
:set paste
i wejście w tryb insert ({[2] } aby wyłączyć)
Raz w trybie -- INSERT (past) --
wystarczy użyć funkcji wklejania systemów (np. CtrlShiftv na Linuksie, Cmdv na Mac OS).
Ta strategia jest bardzo przydatna podczas korzystania z Vima przez ssh.
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-07-04 20:21:20
Tak. W Windows Ctrl+V i w Linuksie naciskając oba przyciski myszy niemal jednocześnie.
W Windows myślę, że ta linia w moim _vimrc prawdopodobnie to robi:
source $VIMRUNTIME/mswin.vim
W Linuksie nie pamiętam jak to zrobiłem. Wygląda na to, że prawdopodobnie usunąłem jakąś linię z domyślnego .plik vimrc.
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
2020-01-05 07:49:23
Wklej w trybie wstawiania
Mapa niestandardowa wydaje się odpowiednia w tym przypadku. Tego używam do wklejania elementów w trybie insert:
inoremap <Leader>p <ESC>pa
Moim kluczem Leader
jest \
; oznacza to, że naciśnięcie \p
w trybie wstawiania wklejiłoby wcześniej szarpane elementy/linie.
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-10-09 20:01:08
Wystarczy dodać mapę:
" ~/.vimrc
inoremap <c-p> <c-r>*
Uruchom ponownie Vima i naciśnij Crtl+p
w trybie insert,
skopiowany tekst zostanie wklejony
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
2020-02-02 21:04:06