Saat ini saya menggunakan buron untuk mengelola hampir semua yang berhubungan dengan git, tetapi saya tidak dapat menemukan alur kerja yang baik untuk dengan cepat memvisualisasikan dan beralih di antara cabang-cabang yang tersedia.
Saya bisa lakukan :Git checkout <branch-name>, masalahnya adalah ia melakukan pelengkapan otomatis baik nama file dan cabang, dan saya lebih suka daftar cabang.
Untuk memuncak jawaban di sini adalah cara untuk mencapai ini:
Terminal Vanilla Vim
Tekan CTRL- Zdalam mode normal akan mengembalikan Anda ke shell dan menangguhkan Vim. Setelah mengeksekusi git checkout [branchname]ketik Anda fgperintah untuk kembali ke Vim yang ditangguhkan yang juga akan memaksa Vim untuk menyegarkan.
Vanilla GUI Vim
Beberapa implementasi gvim akan memiliki :shelldukungan yang akan membuka shell di dalam Vim menggunakan terminal bisu. Namun mungkin lebih mudah untuk mengetik:
:!git checkout [branchname]
Ini akan menjalankan perintah tanpa harus membuka prompt shell baru. (Opsi ini juga dapat digunakan di terminal Vim).
buron-vim
vim-fugitive adalah sebuah plugin yang memungkinkan Anda untuk menggunakan Git dari dalam Vim. Perintahnya adalah:
:Git checkout [branchname]
vim-merginal
vim-merginal adalah plugin yang menggunakan vim-fugitive dan menyediakan antarmuka yang ramah-pengguna.
Ini fugitive, tidak fugative, dan bahwa itu apa OP sudah menggunakan.
muru
1
Jawaban yang luar biasa. vim-merginaladalah apa yang saya cari.
Sergio D. Márquez
1
Saya suka ctrl-zkarena secara otomatis memuat file. Rekan kerja suka memiliki jendela tmux untuk baris perintah dan satu untuk vim tetapi ketika mereka melakukan checkout atau bergabung ketika mereka kembali ke vim mereka harus pergi ke setiap file yang terbuka dan :e!setiap waktu. ( :bufdo e) yang merupakan rasa sakit untuk diingat. Alih-alih, lebih mudah untuk melakukan ctrl-zitu ketika fgVim melakukan :eauto-ajaib.
Anda harus merangkul terminal Anda. Jika Anda menggunakan CTRL-Z, itu akan latar belakang Vim (atau proses apa pun yang sedang Anda jalankan), maka Anda dapat menjalankan perintah yang Anda inginkan, fguntuk membawa proses kembali ke latar depan:
:shelladalah cara untuk pergi atau alt menabrak ke emulator terminal favorit Anda lainnya
65-e9-7e-17
2
Saya selalu suka!git checkout [branchname]
bronzehedwick
5
Buronan Git checkout <branch>memiliki kelemahan yang tidak melengkapi nama cabang secara otomatis. Menggunakan fzf.vim saya telah membuat perintah ini:
Jawaban yang diberikan oleh @ kubek2k sangat fenomenal. Solusi itu lebih baik daripada yang bisa saya bayangkan dan terapkan dalam lebih sedikit baris kode yang bisa saya gambar. Itu membuka pintu untuk membantu saya memahami penggunaan personalisasi 'fzf' yang kuat.
Saya telah sedikit memodifikasinya untuk memberikan:
Menggunakan buron untuk mendapatkan referensi alih-alih baris perintah, (dukungan yang lebih baik untuk windows)
Daftar tag bersama dengan cabang
Berikut ini sedikit modifikasi:
function! s:gitCheckoutRef(ref)
execute('Git checkout ' . a:ref)
" call feedkeys("i")
endfunction
function! s:gitListRefs()
let l:refs = execute("Git for-each-ref --format='\\%(refname:short)'")
return split(l:refs,'\r\n*')[1:] "jump past the first line which is the git command
endfunction
command! -bang Gbranch call fzf#run({ 'source': s:gitListRefs(), 'sink': function('s:gitCheckoutRef'), 'dir':expand('%:p:h') })
fugitive
, tidakfugative
, dan bahwa itu apa OP sudah menggunakan.vim-merginal
adalah apa yang saya cari.ctrl-z
karena secara otomatis memuat file. Rekan kerja suka memiliki jendela tmux untuk baris perintah dan satu untuk vim tetapi ketika mereka melakukan checkout atau bergabung ketika mereka kembali ke vim mereka harus pergi ke setiap file yang terbuka dan:e!
setiap waktu. (:bufdo e
) yang merupakan rasa sakit untuk diingat. Alih-alih, lebih mudah untuk melakukanctrl-z
itu ketikafg
Vim melakukan:e
auto-ajaib.:checktime
berguna untuk memuat ulang semua buffer yang dibuka.Gunakan plugin vim-merginal ( ekstensi buron ). Menawarkan TUI interaktif untuk:
sumber
Anda harus merangkul terminal Anda. Jika Anda menggunakan CTRL-Z, itu akan latar belakang Vim (atau proses apa pun yang sedang Anda jalankan), maka Anda dapat menjalankan perintah yang Anda inginkan,
fg
untuk membawa proses kembali ke latar depan:sumber
:shell
adalah cara untuk pergi atau alt menabrak ke emulator terminal favorit Anda lainnya!git checkout [branchname]
Buronan
Git checkout <branch>
memiliki kelemahan yang tidak melengkapi nama cabang secara otomatis. Menggunakan fzf.vim saya telah membuat perintah ini:semoga bermanfaat
sumber
Jawaban yang diberikan oleh @ kubek2k sangat fenomenal. Solusi itu lebih baik daripada yang bisa saya bayangkan dan terapkan dalam lebih sedikit baris kode yang bisa saya gambar. Itu membuka pintu untuk membantu saya memahami penggunaan personalisasi 'fzf' yang kuat.
Saya telah sedikit memodifikasinya untuk memberikan:
Berikut ini sedikit modifikasi:
sumber