<C-p>
i <C-n>
pozwalają na uzupełnienie słów znalezionych w bieżącym dokumencie.
Biorę jakieś notatki i pisanie do powiedzenia {0,1}^n
i (E,D)
wiele razy. Są to SŁOWA złożone z kilku słów.
Czy istnieje sposób na uzupełnienie SŁÓW za pomocą <C-p>
i <C-n>
(lub innych powiązanych ins-completion
poleceń)?
autocompletion
Gonçalo Ribeiro
źródło
źródło
: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
.ins-completion
.Odpowiedzi:
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ą
Następnie ustawiłem to na plus dodatkowe znaki powyżej
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: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
lubmyvalue
rozwinąć je{0,1}^n
, ale tylko wtedy, gdy01n
lubmyvalue
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)A potem trafisz Esclub Spacelub Tablub w inny sposób przenieść kursory, tekst zostanie zastąpiony, a masz (przykład wykorzystania przestrzeni)
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ń.
źródło
:set iskeyword+={,},,,(,),^
działa zgodnie z oczekiwaniami.abbreviate
sposób lepiej nadaje się do tej pracy?