Saya sedang mengerjakan skrip python kecil, yang perlu sering dieksekusi untuk debug dan mengembangkan lebih lanjut.
Bisakah saya membagi layar vim dan menjalankan skrip saya pada satu bagian dengan penekanan tombol?
sumber
Saya sedang mengerjakan skrip python kecil, yang perlu sering dieksekusi untuk debug dan mengembangkan lebih lanjut.
Bisakah saya membagi layar vim dan menjalankan skrip saya pada satu bagian dengan penekanan tombol?
Tambahkan baris ini ke .vimrc Anda:
command R !./%
Dan kemudian Anda bisa mengetik ": R" saat di Vim untuk menjalankan skrip ( vim-run-current-file )
Vim tidak, dan tidak akan pernah mendukung shell yang tertanam seperti emacs atau kate (jika Anda maksudkan itu), lihat pertanyaan stackoverflow ini .
David Spillet benar, Anda dapat menjalankan vim Anda di dalam layar gnu:
$ screen vim foo.txt
Tapi itu hanya akan memberi Anda sesuatu yang mirip windowmanager di terminal - SANGAT berguna ketika digunakan lebih dari ssh atau pada kotak tanpa X, tetapi secara lokal Anda juga bisa membuka xterm lain dan beralih di antara mereka. *
Bagaimanapun, jika Anda dapat hidup dengan fakta bahwa Anda tidak akan melihat file yang sedang Anda edit sambil melihat output yang dihasilkannya, tip Jack M baik, tetapi bisa lebih pendek:
:map ;e :w<cr>:!python %<cr>
Untuk tujuan yang sama, saya memiliki ini di ~/.vimrc
:
au BufEnter *
\if match( getline(1) , '^\#!') == 0 |
\ execute("let b:interpreter = getline(1)[2:]") |
\endif
fun! CallInterpreter()
if exists("b:interpreter")
exec ("!".b:interpreter." %")
endif
endfun
map <F5> :call CallInterpreter()<CR>
Ini menjalankan file apa pun yang memiliki shebang ( #!
) di baris pertama. Menggunakan interpreter untuk menjalankan file, sehingga tidak perlu memiliki izin untuk mengeksekusi.
* (layar memiliki beberapa fitur lain yang sangat rapi seperti salin dan tempel dari output, memantau jendela tersembunyi untuk aktivitas / tidak ada aktivitas, dapat menggunakan sesi dari terminal yang berbeda pada saat yang sama, dapat logout meninggalkan semua program menjalankan - ini adalah alat yang ampuh).
:map ;e :w<cr>:!python %<cr>
ingin mengulangi hal-hal ke buffer vim saya untuk "mengkonfirmasi" (?) bahwa perintah dijalankan. Bagaimana saya mendapatkannya hanya menjalankan perintah diam-diam?:map <silent> ...
tampaknya tidak berfungsi.Cara paling tidak bertele-tele (yang mengharuskan skrip Anda dapat dieksekusi) mungkin:
sumber
:!./%
sehingga skrip akan ditemukan di direktori saat ini.!
memberitahu vim untuk mengeksekusi apa pun yang mengikuti sebagai perintah bash, sehingga Anda dapat melakukannya!echo "Hello"
. Itu%
diperluas menjadi nama file saat ini.Mungkin tidak terbagi layar, tapi ini bekerja dengan baik untuk saya:
Ini memetakan
;e
untuk menulis file saat ini, dan menjalankannya menggunakan python (diasumsikan bahwa python ada di AndaPATH
).sumber
The Bexec vim Plugin tidak persis apa yang Anda inginkan. Pintasan keyboard disertakan.
sumber
Ada pertanyaan StackOverflow yang serupa .
sumber
Apakah yang saya gunakan dengan tolong (F5 menjalankan skrip saat ini).
Untuk mengubah vim menjadi IDE python yang kuat saya sarankan tutorial ini:
sumber
Masukkan potongan kecil ini di .vimrc Anda untuk mengeksekusi file saat ini dengan satu keystroke (seperti
F5
) dan menampilkan hasilnya dalam buffer split-pane baru.:!
tidak apa-apa tetapi Anda perlu beralih ke terminal Anda untuk melihat hasilnya.Meskipun Anda dapat melakukannya dengan
ctrl-z
dan membawa vim kembali denganfg
itu masih berarti Anda perlu banyak mengubah konteks.Cara potongan ini bekerja adalah dengan terlebih dahulu menebak yang dapat dieksekusi berdasarkan
filetype
dan kemudian menjalankannya dengan file saat ini sebagai argumennya.Selanjutnya metode utilitas berguna mengambil output dan membuangnya ke buffer baru.
Itu tidak sempurna, tetapi sangat cepat untuk alur kerja umum.
Berikut cuplikan yang disalin di bawah:
sumber
Saya tidak tahu tentang vim secara langsung, tetapi Anda dapat membagi layar dengan cara ini secara umum dengan
screen
utilitas. ctrl+ a, S(perhatikan, huruf besar S) akan membagi tampilan dan Anda dapat beralih antara keduanya dengan ctrl+ a, tab(jika jendela kosong, gunakan ctrl+ a, nuntuk pindah ke jendela lain yang terbuka atau ctrl+ a, cuntuk membuat yang baru) .Anda dapat membagi tampilan menjadi lebih dari dua juga, dan mengubah ukuran split dengan ctrl-a,: resize. Saya sering menggunakan layar dengan cara ini, dan meskipun itu bukan solusi satu-kunci yang Anda minta itu bisa sangat nyaman.
sumber