Użyj backspace, aby zmodyfikować bieżące polecenie w trybie normalnym?


9

Czasami podczas wprowadzania polecenia w trybie normalnym możesz napisać literówkę, na przykład jeśli zamierzam pisać 10dk, mogę przypadkowo zacząć pisać 19d.

Ponieważ polecenie nie zostało jeszcze zakończone / zatwierdzone, czy można usunąć niepoprawne klucze za pomocą backspace, jako takiego: 19d<backspace><backspace>0dkzamiast naciskać klawisz Escape i ponowić polecenie?

Pytanie poboczne: Czy istnieje termin Vima dla struktury danych, która przechowuje bieżące polecenie przed jego zatwierdzeniem?


1
Prawdopodobnie można o to poprosić jako funkcję w nowszych wersjach!
SibiCoder


4
AFAIK nie jest możliwe - ale ponieważ te sekwencje są krótkie, nie jestem pewien, jaki zysk osiągnęłaby taka funkcja. Kiedy musisz powtórzyć całą sekwencję, przynajmniej jesteś „zmuszony” do jej powtarzania, dopóki nie popełnisz takich błędów;) (tj. - powtarzanie postaci buduje! Kalambur przeznaczony).
VanLaser,

1
@VanLaser Najgorszym koszmarem Vimmera jest „zmuszenie” do powtórzenia czegoś;) Poza tym jestem do bani pisania i mam pustą klawiaturę, więc nierzadko zdarza mi się zepsuć polecenie 256 razy, zanim zrobię to poprawnie.
HellaMad

4
Co może pójść nie tak, gdy zły pisarz używa pustej klawiatury?
romainl

Odpowiedzi:


3

Nie ma na to sposobu i jest normalne, że nie ma: polecenia trybu normalnego są na ogół dość krótkie i można je anulować, Escjeśli je zepsujesz.

Możliwym obejściem byłoby użycie :normalpolecenia. Wydłuża to proces, ale na przykład, jeśli wpiszesz :normal 10jw linii poleceń, Vim wykona się 10jtak, jakbyś wpisał go w trybie normalnym. (Patrz :h :normal)

Możesz również dodać te linie do .vimrc:

nnoremap <F4> :call NormalModeCommand()<CR>

function! NormalModeCommand()
    let command = input("Normal command: ")
    execute "normal " . command
endfunction

Tworzą mapowanie (tutaj, F4ale używaj, co chcesz), które wywoła funkcję NormalModeCommand().

Ta funkcja pozwala wpisać ciąg znaków w wierszu polecenia, a następnie wykonać ciąg wpisany jako polecenie trybu normalnego. Podczas wpisywania ciągu w wierszu polecenia możesz go poprawić jak każde inne polecenie. Oczywiście nie jest to idealne, ale po raz kolejny Vim nie powinien tego robić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.