Szukaj…


Opuszczanie trybu wstawiania

Komenda Opis
<Esc> Opuszcza tryb wstawiania, uruchamia polecenia automatyczne i skróty
<C-[> Dokładna synonim <Esc>
<Cc> Opuszcza tryb wstawiania, nie uruchamia poleceń automatycznych

Niektóre osoby lubią używać stosunkowo rzadkiej pary znaków, takich jak jk jako skrótu do <Esc> lub <C-[> których trudno jest dotrzeć na niektórych klawiaturach:

inoremap jk <Esc>l

Różne sposoby przejścia w tryb wstawiania

Komenda Opis
a Dołącz tekst po bieżącej pozycji kursora
A Dołącz tekst na końcu bieżącego wiersza
i Wstaw tekst przed bieżącą pozycją kursora
I Wstaw tekst przed pierwszym niepustym znakiem bieżącego wiersza
gI Wstaw tekst w pierwszej kolumnie linii kursora
gi Wstaw tekst w tym samym miejscu, w którym został ostatnio w trybie wstawiania
O Otwórz nowy wiersz powyżej bieżącego wiersza i dodaj tam tekst (CAPITAL O )
o Otwórz nowy wiersz poniżej bieżącego wiersza i dodaj tam tekst (małe litery o )
s lub cl Usuń znak pod kursorem i przejdź do trybu wstawiania
S lub cc Usuń całą linię i przejdź do trybu wstawiania
C Usuń od pozycji kursora do końca linii i uruchom tryb wstawiania
c{motion} Usuń {motion} i uruchom tryb wstawiania (patrz Basic Motion )

Skróty trybu wstawiania

Komenda Opis
<Cw> Usuń słowo przed kursorem
<Ct> Wcięcie linii prądu o jedną shiftwidth
<Cd> Nieindentalna linia prądu z jedną shiftwidth
<Cf> przewiń linię ponownie (przesuń kursor do pozycji automatycznego wcięcia)
<Ca> Wstaw poprzednio wstawiony tekst
<Ce> Wstaw znak poniżej
<Ch> Usuń jeden znak do tyłu
<Cy> Wstaw znak powyżej
<Cr>{register} Wstaw treść {register}
<Co>{normal mode command} wykonaj {normal mode command} bez wychodzenia z trybu wstawiania
<Cn> Następna opcja autouzupełniania dla bieżącego słowa
<Cp> Poprzednia opcja autouzupełniania dla bieżącego słowa
<Cv> Wstaw znak po wartości ASCII w systemie dziesiętnym
<Cv>x Wstaw znak według wartości ASCII w systemie szesnastkowym
<Cv>u Wstaw znak według wartości Unicode w systemie szesnastkowym
<Ck> Wpisz digrafat

Uruchamianie normalnych poleceń z trybu wstawiania

W trybie wstawiania naciśnij <Co> aby tymczasowo opuścić tryb wstawiania i wykonać jednorazowe normalne polecenie.

Przykład

<Co>2w przeskakuje do drugiego słowa po lewej i powraca do trybu wstawiania.

Uwaga: Powtarzanie z . powtórzy tylko czynności od powrotu do trybu wstawiania

Pozwala to na użyteczne mapowania, np

inoremap <C-f> <Right>
inoremap <C-b> <Left>
inoremap <C-a> <C-o>^
inoremap <C-e> <C-o>$

Teraz ctrl + a umieści kursor na początku linii, a ctrl + e - na końcu linii. Te mapowania są domyślnie używane w readline , więc mogą być przydatne dla osób, które chcą spójności.

Wstaw tekst do wielu wierszy jednocześnie

Naciśnij Ctrl + v, aby przejść do trybu blokowania wizualnego.

Użyj / / j / k, aby wybrać wiele linii.

Naciśnij Shift + i i zacznij pisać, co chcesz.

Po naciśnięciu Esc tekst zostanie wstawiony do wszystkich wybranych wierszy.

Pamiętaj, że Ctrl + c nie jest w 100% równoważny Esc i nie będzie działać w tej sytuacji!

Istnieją niewielkie odmiany Shift + i , które można nacisnąć w trybie blokowania wizualnego:

Klucz Opis
c lub s Usuń wybrany blok i wejdź w tryb wstawiania
do Usuń wybrane linie (od kursora do końca) i wejdź w tryb wstawiania
R Usuń wybrane linie i wejdź w tryb wstawiania
ZA Dołącz do wybranych linii z kolumną na końcu pierwszego wiersza

Zauważ też, że naciśnięcie . po operacji bloku wizualnego powtórzy operację, w której znajduje się kursor!

Wklej tekst za pomocą polecenia „wklej” terminalu

Jeśli użyjesz polecenia paste z emulatora terminala, Vim zinterpretuje strumień znaków tak, jakby zostały wpisane. Spowoduje to wszelkiego rodzaju niepożądane skutki, w szczególności złe nawyki.

Aby to naprawić, w trybie poleceń:

:set paste

Następnie przejdź do trybu wstawiania, na przykład za pomocą i . Zauważ, że tryb jest teraz -- INSERT (paste) -- . Teraz wklej za pomocą polecenia emulatora terminala lub myszy. Po zakończeniu przejdź do trybu poleceń za pomocą Esc i uruchom:

:set nopaste

Jest prostszy sposób, gdy chce się wkleić tylko raz. Umieść to w swoim .vimrc (lub użyj wtyczki unimpaired.vim ):

function! s:setup_paste() abort
  set paste
  augroup unimpaired_paste
    autocmd!
    autocmd InsertLeave *
      \ set nopaste |
      \ autocmd! unimpaired_paste
  augroup end
endfunction

nnoremap <silent> yo :call <SID>setup_paste()<CR>o
nnoremap <silent> yO :call <SID>setup_paste()<CR>O

Teraz możesz po prostu nacisnąć yo aby wkleić kod pod kursorem, a następnie <Esc> aby wrócić do trybu normalnego / nopaste.

Wklejanie z rejestru w trybie wstawiania

W trybie wstawiania możesz użyć <Cr> aby wkleić z rejestru, który jest określony przy następnym naciśnięciu klawisza. <Cr>" na przykład wklejenia z rejestru nienazwanego ( " ).

Zobacz :help registers .

Zaawansowane polecenia wstawiania i skróty

Oto krótkie omówienie zaawansowanych poleceń wstawiania, formatowania i filtrowania / skrótów.

Polecenie / skrót Wynik
g +? + m Wykonaj kodowanie rot13, w ruchu m
n + ctrl + a + n do liczby pod kursorem
n + ctrl + x - n do liczby pod kursorem
g + q + m Sformatuj linie ruchu m do stałej szerokości
: r ce w Linie środkowe w zakresie r do szerokości w
: r le i Wyrównaj do lewej linie w zakresie rz wcięciem i
: r ri w Wyrównaj do prawej linie w zakresie r do szerokości w
! Mc Filtruj linie ruchu m przez polecenie c
n !! do Filtruj n wierszy za pomocą polecenia c
: r ! do Filtruj zakres r linii przez polecenie c

Wyłącz automatyczne wcięcie, aby wkleić kod

Podczas wklejania tekstu przez emulator terminala funkcja automatycznego wcięcia może zniszczyć wcięcie wklejonego tekstu.

Na przykład:

function () {
    echo 'foo'
    echo 'bar'
    echo 'baz'
}

zostaną wklejone jako:

function () {
    echo 'foo'
        echo 'bar'
            echo 'baz'
            }

W takich przypadkach użyj opcji paste / nopaste , aby wyłączyć / włączyć funkcję automatycznego wcięcia:

:set paste
:set nopaste

Dodając do tego, istnieje prostsze podejście do problemu: Dodaj następujący wiersz w .vimrc:

set pastetoggle=<F3>

A jeśli chcesz wkleić jak ze schowka. Wystarczy nacisnąć F3 w trybie insert i wkleić. Naciśnij ponownie F3 aby wyjść z trybu paste .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow