Mam plik z wieloma domyślnymi ustawieniami użytkownika. Chcę zmienić część tekstu, ale staram się wymyślić moduł dopasowujący i zamiennik. Korzystając z następującego przykładu: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user and for the login screen defaults write …
W vimie spotkałem się z wieloma sytuacjami, w których użyteczne byłyby wyrażenia opisujące. Próbowałem, używając standardowej składni lookaround ( (?=), (?!)etc ..) , ale wydaje się, vim nie obsługuje tej funkcji. Czy vim ma równoważną składnię dla tego rodzaju instrukcji?
Próbuję użyć wyrażenia regularnego do zamiany tekstu w pliku (zastąp pełny adres URL tylko protokołem / domeną /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc Niestety .*?nie pasuje do ciągu, nawet próbując uciec przed ?kwantyfikatorem? W jaki sposób należy uchylić niepochodny kwantyfikator w vimie?
Mam plik z postacią ã(mała litera + łącząca tyldę). Encodingi fileencodingsą oba utf-8. gaprzedstawia <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (ale z faktycznym łączeniem tyldy w <>) i g8pokazuje 61 + cc 83 Wyszukiwanie za pomocą /a\%u0303działa dobrze. Wyszukiwanie tylko \%u0303daje E486 Wzorzec nie …
Mam trudności z nauką wyrażeń regularnych vim (nie znam też dobrze innych wyrażeń regularnych), więc głównym problemem jest zdefiniowanie wyrażeń regularnych, które pasowałyby do siebie some_function_call(simple_value, keyword=value) słowo kluczowe w tym przykładzie. Powinien więc pasować do słowa, jeśli znajduje się w parens i ma po nim znak równości. Kolejnym problemem …
Od :h E65widzimy, że Vim nie pozwala na więcej niż 9 grup przechwytywania w poleceniu substytucyjnego. Na przykład zadziała następujące polecenie: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Ale ta z jeszcze jedną grupą przechwytywania zawiedzie: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 Moje pytanie nie dotyczy tego, dlaczego zawodzi (jest to twardy limit Vima), ale dlaczego w ogóle Vim ma ten …
Wiele składni wyrażeń regularnych wielu narzędzi uniksowych to często podstawowe i rozszerzone wyrażenia regularne zakodowane w POSIX (odpowiednio BRE i ERE), aw niektórych współczesnych implementacjach styl Perl (PCRE jest implementacją tego). Czy istnieje zgodność jeden-do-jednego między poziomami magii Vima a tak zdefiniowanymi zewnętrznie, ale dobrze znanymi klasami? Wygląda na to, …
Mam taką linię: function my_function(argument, another argument, but there are spaces) Chcę zastąpić znaki spacji (w nazwach argumentów) znakiem podkreślenia. Chciałbym zatem użyć: :s/\ /_/g ale jak mogę nie stosować go do całej linii, ale zaczynając od, powiedzmy, pozycji kursora? (Lub trzecie słowo)?
W Vimie klasa znaków \spasuje do dowolnego znaku spacji. Kiedy używam tych znaków specjalnych w grupach, np [\s\w]. Nie pasuje do żadnego pojedynczego spacji lub znaku, pasuje slub w. Jak używać klas postaci w grupach?
Jeśli mam magiczne wyrażenie regularne Vim w literałach łańcuchowych, czy istnieje sposób na przekonwertowanie całego wyrażenia regularnego na alternatywną reprezentację, która używa innego trybu magicznego, więc mógłbym wkleić ten równoważnik regularny do kodu źródłowego? Na przykład, jeśli chcę przekonwertować ten wzorzec trybu magicznego: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' do trybu bardzo magicznego, aby był …
Wszyscy wiemy, że podczas wyszukiwania \njest znakiem nowej linii i jest znakiem \rpowrotu karetki ( ^M), ale podczas zastępowania \rjest znakiem nowej linii, podczas gdy \njest bajtem pustym ( ^@). Jakie jest pochodzenie tej asymetrii? Biorąc pod uwagę, że takie zachowanie jest ... co najmniej dziwne (i przynosi efekt przeciwny …
Mam zwykły plik tekstowy z oddzielonymi białymi kolumnami wartości. Lubię to: AU 3030 .... ... .... AU 3031 .... ... .... AU 3032 .... ... .... AU 3033 .... ... .... IT 48100 ... .. ..... IT 40100 ... .. ..... IT 48123 ... .. ..... UK 3333 ... ... …
Oto, co otrzymuję z dokumentacji: \zs„rozpoczyna podświetloną część” po dopasowaniu poprzedniego wyrażenia regularnego, i \@<=„rozpoczyna podświetloną część” po dopasowaniu poprzedniego atomu . Ale nie do końca rozumiem subtelności tego, więc czy ktokolwiek może wyjaśnić, czym różnią się nieco bardziej dogłębnie? Właśnie to mnie zainteresowało: jeśli biegnę /\_s\zsnnoremap tzn. wybierz nnoremappoprzedzony …
Mam powtarzalny plik konfiguracyjny i chciałbym dopasować wyrażenie regularne i usunąć zakres wierszy przed i po dopasowaniu. Chciałbym również usunąć dopasowanie jednym poleceniem. Mogę użyć... :g/match/-1d ... kilka razy, aby usunąć więcej niż jedną linię sprzed meczu ... ... i połącz to z kilkoma połączeniami do ... :g/match/+1d ... aby …
Czy istnieje sposób, aby vim nie oznaczał adresów URL HTTP i adresów e-mail jako błędów pisowni? Lub, bardziej ogólnie, sposób na wyliczenie wyrażeń regularnych prawidłowych pisowni?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.