Jak usunąć pierwsze słowo z każdej linii w Vim?Usuń pierwsze słowo z każdej linii
Co powiesz na wzór w każdym wierszu?
Jak usunąć pierwsze słowo z każdej linii w Vim?Usuń pierwsze słowo z każdej linii
Co powiesz na wzór w każdym wierszu?
Chciałbym użyć coś jak poniżej:
:%s/^\w+\s+//
wyrażenia regularnego dopasuje jeden lub więcej "słów" od początku linii, a następnie co najmniej jedna biała spacja. Usunie to słowo i wszelkie następne spacje. Jeśli linia może zawierać tylko jedno słowo - a nadal chcesz je usunąć - możesz użyć alternacji, aby dopasować białe spacje lub koniec linii.
:%s/^\w+(\s+|$)//
Możesz wyrazić to bardziej ogólnie: :%: s/^ \\ (\ w \ {- 1,} \\) \\ (\ W \? \\)/\ 2/ W ten sposób również nie wyrzucaj niczego, co kończy znak słowny. (Musisz również sprawdzić, który dialekt wyrażeń regularnych mówisz ...) –
Pierwsze słowo (gdzie słowo jest definiowane jako bez spacji)
:%s/^\s*[^ ]* //g
Usuń wzór:
:%s/< insert pattern here >//g
Idąc za tajemnicze tutaj, w prawdziwym stylu VI:
[email protected]
Randy stałe to w komentarzach do pracy na więcej niż 100000 linii:
[email protected]@q
Dla tych, wychodząc w przypadku Vima rozkłada się na:
gg - Go to first line
qq - Record a macro into register 'q'
[email protected] - The macro:
dw - delete word at cursor
j - go down one line
@q - run the macro in register 'q'
q - Stop recording the macro
@q - Execute the macro in register 'q'
W istocie makro jest rekursywne - usuwa słowo, przesuwa linię w dół, a następnie wywołuje się ponownie, powtarzając dla każdej linii do końca pliku. Ostateczne "@q" to początkowe (ręczne) wywołanie potrzebne do ustawienia makro w każdej linii.
-1 - nie wiesz, co to jest "prawdziwy styl vi", ale nie ma sensu robić tajemniczych, nieprzyjaznych rzeczy, żeby się pochwalić. istnieje doskonale czytelne rozwiązanie, które jest również bardziej ogólne. –
Ah, ale ktoś już opublikował "poprawne" rozwiązanie. To było bardziej zgodne z kodem golfowym. "Prawdziwy styl vi" był ironicznym przesunięciem w edytorze, w którym: wq! to poprawny sposób na wyjście bez zmian. To nie jest najbardziej przyjazna dla użytkownika bestia. Pełne ujawnienie: Kocham vi i używam go jako głównego edytora. Pełna jawność: składnia polecenia vi nie jest zbyt zrozumiała. –
ggqqdwj @ qq @ q będzie działać na dowolnej liczbie linii, a nie tylko na plikach z liniami <100000. Tbh, to "tajemnicze" było tym, co przyszło mi wcześniej na myśl o regularnym wyrażeniu. –
Co z tym?
:% wyciąć -s -d” '-f2-
: normal na ratunek:
:%norm dw
To w zasadzie powtórzenie argumentów jakbyś wpisując je w normalny (!' Non-edit ").
Od: pomoc:
: [!] Normą [in] {polecenia}
Execute normalnych poleceń menu {polecenia}.
Umożliwia to wykonywanie poleceń trybu normalnego wpisanych na linii poleceń . {Polecenia} jest wykonywane tak, jak zostało wpisane.
:%s,^[^ ]*,,
Od początku linii dopasuj wszystko, ale nie odstęp i zastąp bez żadnego.
Należy zauważyć, że nie usunie ona niczego na liniach z wcięciem i że usunie to, co Vim wywołuje WORDS (oddzielone białymi spacjami), a nie słowa. –
Myślę, że to pytanie należy do SuperUser.com –
dlaczego tak uważasz? vi jest również językiem skryptowym. To pytanie powinno zostać przeniesione, a nie zamknięte, jeśli cokolwiek. – vehomzzz
Zamknięte, ponieważ należy do superuser.com, jest takie samo, jak przeniesione do superuser.com. – tvanfosson