Jalankan konten buffer sebagai vimscript


10

Saya memiliki nofilebuffer yang berisi vimscript, dan saya ingin menjalankannya. Namun, :so % tidak akan berfungsi karena memerlukan file yang disimpan, bukan buffer. Apakah ada perintah vim untuk melakukan ini secara default? Jika tidak, apakah mungkin untuk membuat fungsi yang melakukan hal yang sama?

Jawaban:


13

Ya, Anda dapat menarik seluruh buffer dengan ggyGatau :%ydan menjalankannya :@".

Pendeknya:

:%y|@"<CR>

Digunakan dalam pemetaan:

nnoremap <key> :%y|@"<CR>

Digunakan dalam perintah fleksibel yang bekerja pada seluruh buffer secara default atau rentang opsional:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'

Anda memiliki titik dua yang hilang pada perintah pertama.
Vitor

Juga, ini akan merusak "register. Saya membayangkan Anda bisa menggunakan register lain jika Anda mau, atau Anda bisa menyimpan "register dan mengembalikannya setelah itu.
EvergreenTree
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.