Znam polecenia „dd” i „d {motion}”, ale nie mogę znaleźć „dap” w help.txt vima. Co robi „dap” w trybie normalnym i dlaczego? (Alternatywnie, jak mogę dowiedzieć się tego rodzaju rzeczy dla siebie?)
źródło
Znam polecenia „dd” i „d {motion}”, ale nie mogę znaleźć „dap” w help.txt vima. Co robi „dap” w trybie normalnym i dlaczego? (Alternatywnie, jak mogę dowiedzieć się tego rodzaju rzeczy dla siebie?)
„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
ibde
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, adaw
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.