2010-12-15 9 views
5

Coś, co chcę zrobić od czasu do czasu, wklejam wyjście polecenia vim do bufora. Na przykład. kiedy jestem edycji mojego .vimrc, że byłoby miło, aby móc bawić z statusline a następnie być w stanie po prostu zrobić coś w rodzajuCzy istnieje sposób wklejenia wyjścia polecenia vim do bufora?

"=set statusline?<Enter>p 

Problem polega na tym, że plony

E121: Undefined variable: set 
E15: Invalid expression: set statusline? 
Press ENTER or type command to continue 

I zauważ, że jest to możliwe, i że nie wiem wystarczająco dużo o wbudowanych funkcjach i sposobie ich użycia (widzę expand używane tu i tam, ale nigdy nie sprawdziły się w moim przypadku w żadnym kontekście), mimo że (myślę, że ja) mam dość solidne zrozumienie normalnego trybu.

Należy zauważyć, że ten konkretny przykład jest trochę sztuczny, ale nie mogę teraz wymyślić lepszego. W konkretnym przypadku użycia, mogłem po prostu ":p uzyskać całe polecenie set, które użyłem podczas eksperymentowania, a następnie edytować, aby pasował, ale dość regularnie natknąłem się na inne przypadki, w których chcę, aby vim mi coś powiedział, a następnie chcę wkleić gdzieś tam gdzieś, aby móc dalej na nie patrzeć, kontynuując moją pracę.

Odpowiedz

4

Możesz wkleić ustawienie opcji:

"=&statusline<Enter>p 

ja nie znam żadnego sposobu, aby umieścić wyjście dowolnego polecenia w buforze, jednak.

+3

'wypisz' wyjście do rejestru, a następnie wklejenie rejestru zadziała. A może mówisz o czymś innym? –

+0

@Herbert Sitz Myślę, że masz najlepszą odpowiedź na to pytanie. Nie wiedziałem o ': redir'. –

+0

Właściwie lubię opcję bezpośredniego wklejenia, którą dałeś, to jest coś, czego nie używałem i zacznę używać siebie. . . Dzięki. –

4

Wartości ustawień zapisywane są w zmiennych, które są poprzedzone symbolem &. Dostęp do wartości statusline można uzyskać, odwołując się do &statusline. Aby wstawić do dokumentu, jednym ze sposobów jest użycie rejestru "wyrażenia", <ctrl-R>=. Aby go użyć, wejdź w tryb wstawiania i naciśnij <ctrl-R>, a następnie =. W linii komend pojawi się znak równości, w którym można wpisać: &statusline, a następnie naciśnij enter. Spowoduje to wstawienie wartości do bufora.

+0

Dzięki - zazwyczaj nie jestem w trybie wstawiania, ale dobrze jest wiedzieć, że ustawienia odnoszą się do ampersand. –

Powiązane problemy