Vim: wstaw pusty wiersz powyżej bieżącego wiersza (nie otwarty, tzn. Bez wchodzenia w tryb wstawiania)


21

czy istnieje sposób wstawienia nowej linii powyżej prądu, bez otwierania linii (a więc bez wchodzenia w tryb wstawiania)? To znaczy jak „O”, ale bez otwierania.


2
Co oznacza „otwarcie linii”?
Matteo Riva

„otwarcie linii” oznacza przejście z trybu normalnego do trybu wstawiania, co dzieje się po naciśnięciu „O” (oh).
tmadsen

Odpowiedzi:


9

Używam wtyczki Tima Pope'a niezauważalnie, która ma polecenie przeznaczone specjalnie do tego celu:

[<space>

A jeśli chcesz dodać spację po linii, w której się znajdujesz:

]<space>


29

Definicja twojego żądania to O.

Logicznie przy wstawianiu nowej linii powyżej byłoby O.

Aby wstawić przed curser: i
Po: a
Przed linią (home): I
Dołącz na końcu linii:A

Najbliżej, jak sądzę, przyjdziesz, Iktóry umieści kursor na początku linii.


Może nie byłem jasny. Scenariusz jest następujący: Jestem w trybie normalnym i chcę wstawić pustą linię powyżej linii, w której aktualnie jestem, pozostając w trybie normalnym. Naciśnięcie „O” powoduje przejście do trybu wstawiania. Może nie ma sposobu, aby to zrobić i to jest w porządku, pomyślałem, że zapytam :)
tmadsen

3
Wystarczy zmapować,m`O+Esc`
Josh K

1
Dobry pomysł, nie wziąłem tego pod uwagę. Czy: noremap <lider> O O <ESC>
tmadsen

2tmadsen: Możesz zmapować ten <yourkey> O <ESC>
Dzung Nguyen

9
:h append()

Nie porusza kursorem, pozwala wstawić tyle wierszy (pustych lub nie), ile chcesz, i nie zmieni poprzedniego znaku pozycji.

call append(line('.')-1, '')

tak, to +1 +1! / me zmienia jego vimrc
akira

Cóż, ma kilka zalet, jeśli chodzi o skrypty. Pisanie w inny sposób jest nieco przesadzone.
Luc Hermitte,

+1 za rozwiązanie, które działa niezależnie od tego, jak zostało ustawioneformatoptions
Micah Smith

5

Możesz zmapować dowolny klucz lub sekwencję klawiszy, którą chcesz

m`O<ESC>``

wstawia pustą linię powyżej bieżącej, utrzymując cię w trybie normalnym i bez zmiany pozycji kursora.


więc polecenie odwzorowania tego na Alt-O brzmiałoby: map <Mo> m`O <ESC> ``
K Robinson

To jest poprawne.
Matteo Riva

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.