Jak pracować w trybie wiersza poleceń w ten sposób?

10

Czy istnieje sposób na interakcję z trybem wiersza poleceń, zawsze pozostając w pozycji wyjściowej?

W szczególności następujące dwie czynności są uciążliwe i wymagają przesunięcia palców w stronę klawiszy strzałek, a czasem nawet myszy.

  1. Poruszanie się: czy istnieje sposób poruszania się w tę iz powrotem w trybie wiersza poleceń, pozostając w zwykłej pozycji?
  2. Jak skopiować i wkleić w wierszu polecenia? Mam na myśli kopiowanie zarówno z części samego wiersza polecenia do innej części, lub z tekstu, a nawet schowka.
Shahbaz
źródło
1
Oba można rozwiązać za pomocą okna wiersza polecenia z :q; otwiera to nowe okno „przypominające bufor”, w którym można używać hjkldo poruszania się, y
szarpania
1
@Carpetsmoker (masz na myśli q:, prawda?) Dobrze wiedzieć! W przeszłości przypadkowo tam dotarłem, ale tak naprawdę nie myślałem o tym. Wygląda na to, że nie działa /(wyszukiwanie).
Shahbaz
Ups, tak, miałem na myśli q: ... Nigdy nie korzystałem z niego zbyt często, więc nie mogę udzielić pełnej / właściwej odpowiedzi ...
Martin Tournoij

Odpowiedzi:

17

Jest wiersz poleceń (który znasz) i okno wiersza poleceń (wiersz poleceń w specjalnym buforze, który możesz edytować tak jak każdy inny). Wprowadzić ten za pośrednictwem <C-f>z linii poleceń (również dla /wyszukiwań itp), kiedy czujesz potrzebę bardziej „edycji moc”, lub bezpośrednio z trybu normalnego poprzez dedykowany q:, q/itp polecenia.

Przeczytaj więcej na ten temat na stronie :help command-line-window.

Ingo Karkat
źródło
4
<C-f>warto wiedzieć, ponieważ działa, gdy już jesteś w połowie polecenia.
Shahbaz
1
Zgadzam się; :pochodzi niemal automatycznie dla mnie, więc dobrze jest mieć możliwość przełączania bez wraca do normalnego trybu pracy.
Ingo Karkat
11

Oprócz zapewnienia okna wiersza poleceń , Vim oferuje również pewne ograniczone funkcje pozwalające na interakcję z wierszem poleceń w trybie wiersza poleceń ( bez użycia klawiszy strzałek).

Ruch

  • <ctrl-b> przesuń kursor na początek wiersza polecenia
  • <ctrl-e> przesuń kursor na koniec wiersza polecenia

Redagowanie

  • <ctrl-h> usuń znak przed kursorem (jak backspace)
  • <ctrl-w> usuń słowo przed kursorem
  • <ctrl-u> usuń całą drogę od kursora z powrotem do początku wiersza polecenia

Możesz oczywiście dodać odwzorowania wiersza polecenia, :cnoremapaby emulować klawisze nawigacyjne niektórych innych programów . Lub zainstaluj wtyczkę RSI Tima Pope'a, aby używać de facto standardowych powiązań Readline.

Wklejanie

Możesz wkleić zawartość dowolnego rejestru do wiersza poleceń w pozycji kursora, naciskając, <ctrl-r>a następnie znak określający rejestr. na przykład <ctrl-r>, +będzie wstawić zawartość schowka do linii poleceń; <ctrl-r>, "wstawi zawartość rejestru „bez nazwy” (tj. zawartość twojego ostatniego usunięcia lub szarpnięcia).

Zobacz :help cmdline.txtdalsze szczegóły na temat wszystkich powyższych.

Bogaty
źródło
1
Niesamowite! <ctrl-r>byłoby szczególnie przydatne.
Shahbaz
Tak, używałem nawet ^Rmakr. Pozwoliło mi to wykonywać bardzo trudne manipulacje tekstem poprzez szarpanie części pliku podczas makra, a później także podczas makra, za pomocą szarpanej części w długim poleceniu w trybie Ex z ^R. :)
Wildcard