P: Jak tymczasowo wyświetlać tekst w oknie w lokalizacjach ekranu bez tekstu do nadania / nakładania?
Znam podstawową ideę właściwości i nakładek tekstowych (patrz także ten wątek ), korzystałem z nich kilka razy, ale nie jestem z nich biegły. Moje ograniczone rozumienie polega na tym, że musi istnieć tekst do oświadczenia lub nakładki, ale zastanawiam się, jak korzystać z części okna, w których nie ma żadnego tekstu.
Oto zrzut ekranu dla przykładu:
Jak można wstawić tekst (tymczasowo) w jedno z czerwonych pól na zrzucie ekranu, czyli puste miejsce po prawej stronie tekstu lub poniżej ostatniego wiersza w buforze?
insert
napisać tekstu do bufora i oświadczyć tego?Odpowiedzi:
Podsunąłem działający przykład funkcji, która pobiera ciąg i tymczasowo wyświetla go z limitem czasu po tekście bufora:
Następujące zaklęcie spowoduje dolny przykład czerwonej skrzynki:
Powodem tego jest to, że nakładki używają znaczników jako pozycji, które mają być wyświetlane między nimi. Użycie najbardziej zewnętrznej pozycji jako początku i końca nakładki umożliwia wyświetlanie tekstu po niej za pomocą
after-string
właściwości Ponieważ nakładki mogą zawierać tekst zastrzeżony, ustawiłem go tak, aby pojawiał się z wcięciem i białą spacją wokół niego.W drugim przykładzie można użyć tego samego pomysłu do wyświetlania tekstu po końcu wiersza:
Następujące wywołanie spowoduje przykład na czerwonym polu z prawej strony:
Możesz znacznie bardziej zwariować i dodać twarze, aby odróżnić te nakładki od tekstu buforowego, wyświetlić je dłużej niż po upływie limitu czasu, wyregulować ich położenie, wykryć, gdy nie ma pustej przestrzeni i użyć normalnych nakładek z tekstem poleconym itp. Polecam spojrzeć na kod źródłowy trybu firmowego, ponieważ jest bardzo czytelny i pokazuje bardziej skomplikowane (i przeważnie wolne od błędów) użycie nakładek w celu utworzenia elastycznego menu podręcznego z sugerowanymi funkcjami.
źródło
Za pomocą tej funkcji możesz tymczasowo wyświetlić tekst w buforze
momentary-string-display
. Wyświetlany jest komunikat i pozycja w buforze.To:
umieści w buforze ciąg „hello there” na pozycji 200. Przeniesie on cały tekst w tym miejscu na bok, aby zrobić miejsce dla „hello world”, ale wszystko zostanie przywrócone do miejsca, w którym było po naciśnięciu dowolnego klawisza.
Nie potrzebujesz tekstu w buforze do tworzenia nakładek, chociaż jest to wymagane dla właściwości tekstu. Oto nakładka o zerowej szerokości, która powoduje wyświetlenie dodatkowego tekstu:
Zauważ, że ta nakładka odsunie tekst bufora; nie obejmie tekstu na danym stanowisku.
Wydaje się, że nie jest możliwe umieszczenie nakładki w żadnej pozycji w buforze większej niż
point-max
/buffer-size
, tzn. Prawdopodobnie nie będziesz w stanie umieścić tekstu w określonej pozycji poniżej tekstu bufora, chyba że zhakujesz to ograniczenie. Możesz oczywiście umieścić tekst bezpośrednio za tekstem buforowym zafter-string
właściwością na nakładce przypiętej dopoint-max
pozycji.źródło