Odpowiedzi:
„dap” nie usuwa wszystkiego. Na przykład spróbuj umieścić to w buforze:
1
1
2
2
3
3
Następnie umieść kursor na „2” i wpisz „dap”. Opuści „1” i „3”.
Jest tak, ponieważ „dap” usuwa akapit . W rzeczywistości jest to w rzeczywistości mnemoniczny: „(D) elete (A) (P) aragraph”. Możesz to zobaczyć w pomocy pod :h ap
:
*v_ap* *ap*
ap "a paragraph", select [count] paragraphs (see
|paragraph|).
Exception: a blank line (only containing white space)
is also a paragraph boundary.
When used in Visual mode it is made linewise.
Nazywa się to „obiektem tekstowym”. Możesz o nich przeczytać w: :h text-objects
lub możesz przeczytać ten niesamowity artykuł na temat obiektów tekstowych.
Tak czy inaczej, podstawową ideą obiektów tekstowych jest to, że definiujesz granice obiektu, a następnie stosujesz polecenia do całego obiektu, nawet gdy jesteś w jego środku. Na przykład jestem pewien, że wiesz, że możesz użyć dw
do usunięcia słowa. Ale co jeśli jesteś w tym scenariuszu?
Hello world
Cursor: ^
Jeśli wpiszesz dw
, nadal wo
pozostanie ci lewo. Jeśli wpiszesz diw
, spowoduje to usunięcie słowa , więc w większości jest to równoznaczne z pisaniem bdw
.
Jak mogę znaleźć coś takiego dla siebie?
Miałeś podstawowy pomysł! Sprawdzanie pomocy to zawsze dobry początek. W tym przypadku mogłeś zrozumieć, że d
jest to operator, więc pomoc, której tak naprawdę szukałeś, była argumentem dla operatora, w tym przypadku ap
.
diw
i bde
nadal nie są zupełnie takie same: jeśli kursor znajduje się na początku wyrazu. Podobnie, jeśli kursor znajduje się na spacji między słowami, bdw
usunie słowo po lewej stronie, a daw
słowo po prawej. Myślę, że pierwotna odpowiedź „w przeważającej części…” jest prawdopodobnie najlepsza, jaką otrzymamy pod względem tych równoważności.