Uzupełnij tryb wstawiania za pomocą Ctrl-n
Nie wiem, czy można wykonać uzupełnianie WORD poza pisaniem własnej funkcji (np. Omnifunc). Jeśli jednak nie masz nic przeciwko rozszerzaniu tego, co słowo ma pasować do twoich znaków, możesz dodać te znaki do „iskeyword”
Na przykład moje „iskeyword” ma wartość domyślną
iskeyword=@,48-57,_,192-255
Następnie ustawiłem to na plus dodatkowe znaki powyżej
:set iskeyword=@,48-57,_,192-255,{,},,,(,),^
Dodaje {
, }
, ,
, (
, )
, i ^
do znaków, które tworzą słowo (oprócz tego, co już zrobił)
Następnie wpisywanie {
Ctrl-nkończy się {0,1}^n
(w pliku zawierającym tylko te dwa przykłady, które podałeś)
Uwaga: Lepiej byłoby zrobić :set iskeyword+=
tylko z dodatkowymi rzeczami w następujący sposób:
:set iskeyword+={,},,,(,),^
W ten sposób pozostawiasz wszystko, co już składa się na słowo kluczowe, dodając nowe znaki do istniejącego ustawienia.
Rozszerzenie ze skrótami
Chociaż nie jest częścią pierwotnego pytania, inną podobną (ish) funkcją jest użycie funkcji nvi lub skrótu Vima. W przeciwieństwie do uzupełniania słów kluczowych, skróty nie muszą wyglądać jak końcowy tekst. Również w przeciwieństwie do uzupełniania słów kluczowych skróty rozwijają się automatycznie, a nie tylko wtedy, gdy o nie poprosisz. W zależności od celu i sposobu użycia może to zaoszczędzić dużo pisania i pozwolić na pisanie dużej ilości tekstu bez przerywania prośby o zakończenie.
Skróty są przydatne w przypadku niewielkiego zestawu słów kluczowych i gdy można je zdefiniować z wyprzedzeniem (nie są one wykrywane z tekstu, jak w przypadku uzupełniania słów).
Podstawową ideą skrótów jest powiązanie WORD z jakimś innym tekstem i za każdym razem, gdy redaktor wykryje, że wpisałeś to WORD (to znaczy, że wpisany tekst jest otoczony białą spacją, gdzie operacja zakończenia dodaje białe spacje po słowo kluczowe lub opuszczanie trybu wstawiania), jest zastępowany innym tekstem.
Powiedzmy, że twój plik zawiera {0,1}^n
dużo i nie ma innych jego odmian. Pisanie na wyciągnięcie palca, więc może chcesz po prostu wpisać 01n
lub myvalue
rozwinąć je {0,1}^n
, ale tylko wtedy, gdy 01n
lub myvalue
jest to samo słowo (to znaczy, jeśli pojawia się w innym słowie, nie rób tego Zmień to).
W nvi możesz to zrobić :abbrev 01n {0,1}^n
. Możesz zrobić to samo w Vimie, ale zalecam użycie :iabbrev 01n {0,1}^n
ograniczania rozszerzenia tylko do trybu wstawiania.
Następnie, jeśli masz jakiś tekst (gdzie |
reprezentuje kursor)
We find that the value 01n|
A potem trafisz Esclub Spacelub Tablub w inny sposób przenieść kursory, tekst zostanie zastąpiony, a masz (przykład wykorzystania przestrzeni)
We find that the value {0,1}^n |
i możesz kontynuować pisanie bez przerwy.
Jest to zwykle używane do automatycznej korekty typowych literówek (np. Zmiana „teh” na „the”), ale może być równie przydatne w przypadku użycia, ponownie zakładając, że nie przeszkadza Ci wcześniejsze skonfigurowanie mapowań.
:abbreviate
zamiast tego. Na przykład wydaj:ab 01n {0,1}^n
polecenie. Następnie za każdym razem,01n
gdy wpiszesz jako niezależne słowo w trybie wstawiania, zostanie ono rozwinięte do{0,1}^n
.