Apakah ada cara untuk menonaktifkan prompt "Tekan ENTER atau ketik perintah untuk melanjutkan" yang muncul setelah menjalankan perintah eksternal?
EDIT: Menemukan solusi: Tambahkan tambahan <CR>
ke pintasan di .lvimrc saya.
map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>
Ada ide yang lebih baik?
set dir=$TEMP
vimrc Anda. Ini memberitahu vim untuk menggunakan folder temp yang benar untuk file temponya. Ini pada gilirannya memperbaiki kesalahan dan menghapus perintah "tekan enter".Jawaban:
Saya tidak yakin bagaimana melakukannya secara global untuk satu perintah:
Pastikan untuk memasukkan spasi setelahnya
silent
sumber
:redraw!
pilihan memecahkan itu. Ganda<cr>
mungkin serupa. dan tidak terlalu rumitMenemukan satu solusi: Tambahkan ekstra
<CR>
ke perintah peta.sumber
sumber
:help hit-enter
memberikan beberapa informasi latar belakang yang cukup berguna pada prompt "Tekan ENTER ...". Mau menjelaskan?set hl
(:highlight
) saya salah gunakan sebagai jalan pintas untukhlsearch
siapa jalan pintas sebenarnyahls
. Satus
hal yang penting :)set nomore
Setel
cmdheight
ke 2, di vimrc (:e $MYVIMRC
) saya:Info selengkapnya di sini .
sumber
Beginilah cara saya menangani masalah yang menjalankan program eksternal melalui silent mengacaukan layar dalam mode teks vim (menurut pengalaman saya, gvim tidak mengalami masalah ini):
Gunakan ini sebagai ganti perintah diam biasa:
sumber
Ini mungkin kesalahan sintaks dalam file vimrc
sumber
set number
dan kemudianset syntax
tepat di bawah di file .vimrc saya. Setelah saya menghapusset syntax
Vim tidak lagi meminta saya.:message
untuk mencari tahu apa yang salah.set syntax
. Menggantinya denganset syntax=on
dan itu memperbaiki masalah.Jawaban oleh anthony membawa saya ke tempat yang tepat dan saya dapat mengkonfigurasi gvim untuk tidak berhenti di banyak pesan.
Saya menambahkan set
shortmess=aoOtI
ke file gvimrc saya.Ini dijelaskan di halaman bantuan yang dipersembahkan oleh
:help shortmess
.Huruf-huruf tersebut berarti kelas pesan yang tidak ingin Anda lihat, atau ingin vim terpotong untuk menghindari tekan enter .
Saya mengelola ini sebelumnya dengan mengatur jendela awal yang lebar dengan
columns=130
di gvimrc sehingga beberapa pesan akan meluapinya dan memerlukan kebutuhan yang mengganggu, melelahkan, untuk menekan enter.sumber
Ini adalah bagaimana saya menjalankan perintah eksternal dalam skenario yang rumit tanpa "Tekan ENTER". Tidak seperti
:silent
, saya masih bisa melihat keluaran perintah.Garis komando
Skrip / fungsi
Pemetaan dengan
<expr>
Pemetaan dengan
<expr>
itu memanggil suatu fungsisumber
<command>
<command>
dimaksudkan untuk diganti dengan perintah eksternal yang sebenarnya, misalnyamap <expr> <F5> ":exe ':!gdb'\n:redraw\<CR>"
Kamu bisa memakai:
Sebagai contoh:
sumber
Menempatkan gambar ulang sebelum layar bersih juga berfungsi. Inilah yang saya miliki:
Tetapi ini tidak akan memicu prompt:
sumber
redraw
solved saja. Solusi lain tidak cocok, karena saya ingin menerima input pengguna di antara pesan asli dan hilangnya prompt.Saya memiliki masalah serupa, tetapi ketika saya menjalankan argdo untuk mengganti string yang sama di beberapa file misalnya,
Saya terus-menerus harus menekan halaman ke bawah.
Anda dapat menyetel opsi berikut sebelum menjalankan skrip sehingga hanya ada prompt terakhir, bukan banyak prompt
sumber
:set nomore
:, jilatan buruk itu masih di akhir. Ini juga di:h help hit-enter
@anthonySaya kasus saya (perintah otomatis)
set shortmess+=F
berhasil.sumber
Ini terjadi pada saya jika saya menyimpan file yang ada di direktori di mana saya tidak memiliki izin menulis ke direktori. Saya melakukan chmod 777 pada direktori (saya sudah memiliki izin menulis pada file itu sendiri) dan pesan "Tekan ENTER" tidak lagi muncul.
sumber
Tetapi jika Anda menjalankan perintah dari baris perintah vim. Maka itu agak rumit. Anda dapat menambahkan kata kunci
silent
sebelum perintah Anda sebenarnya. Ini akan membawa Anda kembali ke jendela vim secara otomatis setelah perintah dijalankan. Tetapi Anda masih perlu mengeksekusi secara manualredraw
karena beberapa jendela seperti NERD_Tree perlu digambar ulang.Untuk kasus ini, coba ikuti petunjuk dari vim help doc:
Tautan ini memberikan jalan keluar lain. Masukkan ini ke file vimrc Anda
Dan kemudian Anda dapat menggunakan
:Silent command
seperti perintah biasa.sumber
Di sisi saya, solusinya adalah menggunakan
silent
lebih sering dalam rantai perintah .Khususnya sebelumnya,
.vimrc
memiliki:Ini diubah menjadi:
Sebelumnya, "Press ENTER" tidak selalu muncul, tetapi sering kali mengganggu. Penambahan
silent
memperbaiki ini. (Sepertinyasilent
tidak diperlukanredraw!
karena:cc
pesan "Tekan ENTER".)FYI:
Motivasi dari
M
-mapping ini adalah dengan menekanM
dalam Mode-Normal untuk:make
semuanya di bawahgit
-kontrol)make
Makefile
S saya biasanya dibangun sedemikian rupa, sehingga ini hanya membutuhkan sepersekian detik.Dengan sedikit penyesuaian, ini juga dapat diterapkan ke
C
beban kerja non- tipe:Di
.vimrc
tambahIni memungkinkan
vim
untuk menafsirkan pesan seperti berikut untuk:cc
(kesalahan tampilan):(
E
kesalahan, arnings,W
nfoI
, berdasarkanvim
sihir)Contoh bagaimana menggunakan ini untuk skrip Python . (Maaf, tidak ada salinan di sini, ini cerita yang berbeda.)
sumber
Jika kesalahan Anda disebabkan oleh E303, membuat direktori sementara di
.vimrc
file tersebut dapat memperbaikinya.Setelah membuka file apa pun, tulis dan masukkan:
Jika ada kesalahan maka akan diminta.
Jika Anda melihat E303 (Error303) "Tidak dapat membuka file swap untuk" {filename} ", pemulihan tidak mungkin", ini mungkin menunjukkan bahwa ada upaya lama untuk memulihkan file swap (kemungkinan besar hilang atau tidak ada) di sistem .
Untuk memperbaikinya, tetapkan direktori sementara di
.vimrc
file.Untuk menemukan lokasi
.vimrc
file, ketik dan masukkan ini:Buka file
$ vi .vimrc
Tambahkan ini ke akhir file:
Simpan dan tutup dengan
:wq
Terakhir, muat ulang profil dengan:
Coba buka file apa pun dengan VI. Masalahnya harus diperbaiki.
sumber
Aktif
gvim
, jika Anda telah menyetelguioptions+=!
(Ditambahkan!
dalamguioptions
), ini karena itu. Opsi ini (!
) membuatgvim
menjalankan beberapa perintah pada terminal eksternal (yang mendukung lebih banyak fitur, seperti warna dan banyak lainnya).Anda dapat mencobanya menggunakan
:set guioptions-=i
dan melihat apakah ini berhasil untuk Anda.sumber