Czy istnieje sposób na wyłączenie monitu „Naciśnij klawisz ENTER lub wpisz polecenie, aby kontynuować”, który pojawia się po wykonaniu polecenia zewnętrznego?
EDYCJA: Znalazłem obejście: Dodaj dodatek <CR>
do skrótu w moim .lvimrc.
map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
Jakieś lepsze pomysły?
set dir=$TEMP
pliku vimrc. Mówi to vimowi, aby używał właściwego folderu tymczasowego dla swoich plików tymczasowych. To z kolei naprawia błędy i usuwa monity „naciśnij klawisz Enter”.Odpowiedzi:
Nie jestem pewien, jak to zrobić globalnie dla jednego polecenia:
Pamiętaj, aby dodać spację po
silent
źródło
:redraw!
opcja rozwiązuje go. Podwójna<cr>
jest prawdopodobnie podobna. i mniej skomplikowaneZnalazłem jedno obejście: dodaj dodatkowe
<CR>
polecenie do mapy.źródło
źródło
:help hit-enter
dostarcza dość przydatnych informacji na temat zachęty „Naciśnij ENTER ...”. Chcesz wyjaśnić?set hl
(:highlight
) błędnie użyłem jako skrótu do tego,hlsearch
kto jest prawdziwym skrótemhls
. Jedno mas
znaczenie :)set nomore
Ustaw na
cmdheight
2, w moim vimrc (:e $MYVIMRC
):Więcej informacji tutaj .
źródło
Oto jak poradziłem sobie z problemem polegającym na tym, że uruchamianie zewnętrznego programu przez cichy psuje ekran w trybie tekstowym vim (z mojego doświadczenia wynika, że gvim nie ma tego problemu):
Użyj go zamiast zwykłego cichego polecenia:
źródło
Prawdopodobnie jest to błąd składni w pliku vimrc
źródło
set number
a następnieset syntax
poniżej w moim pliku .vimrc. Kiedy usunąłem,set syntax
Vim już mnie nie monitował.:message
na klawiaturze, aby dowiedzieć się, co się dzieje.set syntax
. Zastąpiłem goset syntax=on
i rozwiązuje problem.Odpowiedź Anthony'ego zaprowadziła mnie we właściwe miejsce i byłem w stanie skonfigurować gvim tak, aby nie zatrzymywał się na wielu wiadomościach.
Dodałem set
shortmess=aoOtI
do mojego pliku gvimrc.Jest to wyjaśnione na stronie pomocy dostarczonej przez
:help shortmess
.Litery oznaczają klasy wiadomości, których nie chcesz widzieć lub chciałbyś, aby vim obciął, aby uniknąć wciśnięcia enter stop.
Udało mi się to wcześniej, ustawiając szerokie okno początkowe
columns=130
w gvimrc, więc niewiele wiadomości przepełniłoby go i wymagałoby irytującej, wyczerpującej potrzeby wciśnięcia enter.źródło
W ten sposób uruchamiam polecenia zewnętrzne w trudnych sytuacjach bez konieczności naciskania klawisza ENTER. W przeciwieństwie do tego
:silent
, nadal widzę dane wyjściowe polecenia.Wiersz poleceń
Skrypt / funkcja
Mapowanie za pomocą
<expr>
Mapowanie z
<expr>
tym wywołuje funkcjęźródło
<command>
<command>
ma zostać zastąpiony faktycznym poleceniem zewnętrznym, np.map <expr> <F5> ":exe ':!gdb'\n:redraw\<CR>"
Możesz użyć:
Na przykład:
źródło
Umieszczenie przerysowania przed wyczyszczeniem ekranu również działa. Oto, co miałem:
Ale to nie spowoduje wyświetlenia monitu:
źródło
redraw
rozwiązało to. Inne rozwiązanie nie pasowało, ponieważ chciałem zaakceptować dane wejściowe użytkownika między oryginalną wiadomością a zniknięciem monitu.Mój przypadek (automatyczna komenda) załatwił sprawę
set shortmess+=F
.źródło
Mam podobny problem, ale kiedy uruchamiam argdo, aby zamienić ten sam ciąg w wielu plikach, np.
Ciągle musiałem naciskać stronę w dół.
Przed uruchomieniem skryptu można ustawić następującą opcję, aby zamiast wielu monitów był tylko ostatni monit
źródło
:set nomore
zły lizanie to wciąż koniec. Jest również w:h help hit-enter
@anthonyDzieje się tak, gdy zapisuję plik znajdujący się w katalogu, w którym nie mam uprawnień do zapisu w tym katalogu. Zrobiłem chmod 777 na katalogu (miałem już prawa zapisu do samego pliku) i komunikat „Press ENTER” już się nie pojawia.
źródło
Ale jeśli wykonujesz polecenie z wiersza poleceń vim. Wtedy jest to trochę trudne. Możesz dodać słowo kluczowe
silent
przed wydaniem polecenia. Po wykonaniu polecenia automatycznie przeniesie Cię z powrotem do okna vima. Ale nadal musisz wykonać ręcznie,redraw
ponieważ niektóre okna, takie jak NERD_Tree, wymagają ponownego narysowania.W tym przypadku spróbuj postępować zgodnie z instrukcjami z dokumentu pomocy vim:
Ten link zapewnia inne wyjście. Umieść to w swoim pliku vimrc
A potem możesz użyć
:Silent command
jak zwykłego polecenia.źródło
Z mojej strony rozwiązaniem było częstsze używanie
silent
w łańcuchu poleceń .W szczególności wcześniej
.vimrc
:Zostało to zmienione na:
Wcześniej „Press ENTER” nie zawsze pojawiał się, ale irytująco często. Dodatkowe
silent
rozwiązania to naprawiły. (Wygląda nasilent
to, że nie jest potrzebny,redraw!
ponieważ:cc
spowodował komunikat „Naciśnij klawisz ENTER”).FYI:
Motywacją do tego
M
-mapowania jest po prostu naciśnięcieM
w trybie normalnym, aby:make
wszystko jest pod kontrolągit
)make
Moje
Makefile
są zwykle tak skonstruowane, że zajmuje to tylko ułamek sekundy.Po drobnych poprawkach można to zastosować również do
C
obciążeń innych niż typowe:w
.vimrc
dodatkuPozwala to
vim
na interpretację następujących komunikatów dla:cc
(błąd wyświetlania):(
E
Rrors,W
arnings,I
nfo, oparte navim
magii)Przykład użycia tego dla skryptów Pythona . (Przepraszamy, nie ma tu kopii, to inna historia).
źródło
Jeśli błąd jest spowodowany przez E303, utworzenie katalogu tymczasowego w
.vimrc
pliku może go naprawić.Po otwarciu dowolnego pliku napisz i wprowadź:
Jeśli wystąpią błędy, pojawi się monit.
Jeśli zobaczysz komunikat E303 (błąd 303) „Nie można otworzyć pliku wymiany dla„ {nazwa pliku} ”, odzyskanie niemożliwe”, może to oznaczać, że w systemie została podjęta stara próba odzyskania pliku wymiany (najprawdopodobniej utracony lub nie istnieje) .
Aby to naprawić, przypisz katalog tymczasowy w
.vimrc
pliku.Aby znaleźć lokalizację
.vimrc
pliku, wpisz i wprowadź to:Otwórz plik
$ vi .vimrc
Dołącz to na końcu pliku:
Zapisz i zamknij za pomocą
:wq
Na koniec przeładuj profil za pomocą:
Spróbuj otworzyć dowolny plik z VI. Problem zostanie rozwiązany.
źródło
On
gvim
, jeśli masz ustawioneguioptions+=!
(Dodano!
wguioptions
), to z tego powodu. Ta opcja (!
) powodujegvim
wykonanie niektórych poleceń na terminalu zewnętrznym (które obsługują więcej funkcji, takich jak kolor i wiele innych).Możesz spróbować, używając
:set guioptions-=i
i sprawdzić, czy to działa dla Ciebie.źródło