Najprostszy sposób na usunięcie „złożonego” słowa?


20

Przepraszamy, jeśli „kompozyt” nie jest terminem technicznym. Mam na myśli:

Hi, I-am-a-composite-word and we are not

Chciałbym usunąć tylko słowo złożone. W trybie komend, jeśli przesunę kursor do I, a następnie powtórzenie dwkilka razy lub lepsze pisanie dwraz, a następnie kilka .naciśnięć, załatwi sprawę. Jednak z różnych powodów robię to dość często w ciągu dnia, dlatego zastanawiałem się, czy jest jakiś prostszy sposób.

PS NIE uważałbym tego polecenia d9wza prostszy sposób. Liczenie długiej sekwencji słów i myślników nie jest moim pomysłem na „prostsze”.

Odpowiedzi:


33

To, co nazywacie słowem złożonym, jest W rzeczywistości SŁOWEM (w przeciwieństwie do słowa). Czytanie :h wordi :h WORDpowinno być pomocne:

                            *word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
is also considered to be a word.
                            *WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space.  An empty line is also considered to be a WORD.

Co szukasz tu jest dW, gdy jesteś na Ilub diWgdy jesteś w dowolnym miejscu wyrazu.

Może w przyszłości będziesz także musiał przeczytać :h 'iskeyword'.


1
dzięki za odpowiedź: to działa. A propos definicji: A WORD consists of a sequence of non-blank characters, separated with white space. Separated with white spaceoznacza, że ​​SŁOWO jest oddzielone innymi słowami lub SŁOWAMI spacją, prawda?
DeltaIV,

2
@DeltaIV Taa in-this-sentence there are four"WORDsW 4 słowa są in-this-sentence, there, arei four"WORDs. Łatwo zobaczyć, kiedy używasz wi Wczy bi Bprojekty np. Pamiętaj, że biały znak może być „zwykłą” spacją lub znakiem tabulacji.
statox

1
Ta odpowiedź byłaby bardziej przydatna, gdyby zaczęła się od „To, czego tu szukasz, to dW ..” zamiast zmuszania czytelnika do przejścia do środkowego akapitu w celu znalezienia rozwiązania.
Mark Meuer,

9

Innym bardziej ogólnym rozwiązaniem jest usunięcie do znaku spacji za pomocą dt (ze spacją po t), co oznacza „usuń do [znaku]. Często jest to przydatne w przypadku rzeczy podobnych dt:i podobnych.


Co ma dt: zrobić?
DeltaIV

1
Kiedy opublikowałem tę samą odpowiedź, dowiedziałem się, że możesz użyć <code>dt </code>spacji na końcu.
BurnsBA

2
@DeltaIV Tak naprawdę to, czego naprawdę potrzebujesz, to czytać :h motion.txti używać vimtutor, co znacznie pomoże ci zdobyć podstawy Vima
statox

@statox Miałem doświadczenie w VIM ... 10 lat temu :-) vimtutorbrzmi bardzo interesująco. Nie jestem pewien, czy jest zainstalowany na zdalnym serwerze (wygląda na to, że nawet mannarzędzie nie jest zainstalowane). Jednak sprawdzę: jeśli zostanie automatycznie zainstalowany wraz z vimpakietem, są duże szanse, że będę mógł go użyć.
DeltaIV,

1
@BurnsBA Dziękuję, to naprawdę przydatne dla tej strony. Btw. możesz edytować posty innych osób, a nawet uzyskać reputację +2, jeśli Twoja edycja przejdzie przez proces recenzji. Ale w ten sposób nauczyłem się również czegoś nowego :-).
allo

4

Jeśli chcesz nadal używać dwi tym podobne, a także chcesz, aby działało po dwukrotnym kliknięciu słowa, możesz dodać

set iskeyword+=-

do twojego .vimrc, który dodaje -jako znak słowny.

Przykład:

Dwukrotne kliknięcie dowolnej postaci w ab-cdpodświetleniu wizualnym ab-cd.


Nie mam nic przeciwko zmianie dW, ale twoje rozwiązanie jest również całkiem fajne, ponieważ, jak sądzę, wpływa również na tryb wizualny. Mam na myśli, modyfikując iskeyword, klikając dwukrotnie, a następnie naciskając d, powinienem móc usunąć ab-cd. Dobrze?
DeltaIV

A może powinienem przejść do trybu wizualnego vzamiast podwójnego klikania. Dobrze?
DeltaIV

1
@DeltaIV, modyfikując słowo kluczowe, możesz użyć dowolnej metody z obiektami słownymi (w tym iw lub aw, znacznie prostsze niż użycie myszy lub trybu wizualnego)
D. Ben Knoble

4

Nie zapomnij poleceń f(znajdź) i t(do). Prawdopodobnie po prostu dt lub df (zwróć uwagę na spację na końcu).

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.