Bagaimana saya bisa mengubah posisi / urutan tab saya saat ini Vim
? Misalnya, jika saya ingin memposisikan ulang tab saya saat ini menjadi tab pertama?
200
Anda dapat merelokasi tab dengan :tabm
menggunakan argumen absolut relatif atau indeks nol.
mutlak:
:tabm i
relatif:
:tabm +i
:tabm -i
Ini fitur yang relatif baru. Jadi, jika tidak berhasil coba perbarui vim Anda.
:tabm
menerima argumen relatif dalam vim 7.3.Apakah maksud Anda memindahkan tab saat ini? Ini berfungsi menggunakan tabmove.
Saya memiliki dua binding kunci yang menggerakkan tab saya saat ini satu kiri atau satu kanan. Sangat berguna!
EDIT: Ini makro VIM saya. Saya bukan pembuat kode besar ViM , jadi mungkin itu bisa dilakukan dengan lebih baik, tapi begitulah cara kerjanya bagi saya:
Setelah ini, Anda dapat mengikat kunci, misalnya seperti ini di
.vimrc
:Sekarang Anda dapat memindahkan tab saat ini dengan menekan F9 atau F10.
sumber
Saya mencari yang sama dan setelah beberapa posting saya menemukan cara yang lebih sederhana daripada fungsi:
The tabpagenr () mengembalikan posisi tab yang sebenarnya, dan tabmove menggunakan indeks.
Saya memetakan kanan untuk Ctrl + L dan kiri untuk Ctrl + H:
sumber
:execute "tabmove" tabpagenr() + 1 <CR>
untuk bergerak ke kanan. Untuk MacVim 8.0.1420 (144) .Pindahkan Tab Sekarang ke Posisi ke-n
Di mana
n
angka yang menunjukkan posisi (mulai dari nol)Pindahkan Tab ke Kiri / Kanan
Saya pikir solusi yang lebih baik adalah dengan memindahkan tab ke kiri atau kanan ke posisi saat ini daripada mencari tahu nilai numerik dari posisi baru yang Anda inginkan.
Dengan keymaps di atas, Anda dapat memindahkan tab saat ini:
sumber
+tabmove
dantabmove+
? Apakah posisi itu penting?Selain saran bagus dalam jawaban lain, Anda juga dapat dengan mudah menyeret tab dengan mouse untuk memindahkannya, jika dukungan mouse Anda diaktifkan.
Ini diaktifkan secara default di MacVim dan implementasi vim GUI lainnya, apakah menggunakan tab widget GUI atau tab gaya terminal dalam mode GUI.
Ini juga berfungsi dalam mode tty murni Vim, jika Anda memiliki
set mouse=a
dan memiliki terminal yang sesuai (xterm dan sebagian besar emulatornya, seperti gnome-terminal, Terminal.app, iTerm2, dan PuTTY / KiTTY, untuk menyebutkan tampilan). Perhatikan bahwa klik mouse di luar kolom 222 juga memerlukanset ttymouse=sgr
; lihat Di Vim, mengapa mouse saya tidak berfungsi melewati kolom ke-220? untuk latar belakang itu.Saya telah menulis sebuah plugin bernama vim-tabber yang menyediakan beberapa fungsionalitas tambahan untuk bertukar tab, menggesernya, dan menambah kemampuan perintah manipulasi tab bawaan, sementara sebagian besar tetap kompatibel dengan builtin. Bahkan jika Anda memilih untuk tidak menggunakan plugin, ada beberapa informasi penggunaan tab umum di README.
sumber
Untuk beberapa alasan, jawaban fungsi berhenti bekerja untuk saya. Saya menduga ada konflik dengan vim-ctrlspace . Apapun, matematika dalam fungsi jawaban tidak perlu, karena Vim dapat memindahkan tab ke kiri dan ke kanan dengan fungsi bawaan. Kami hanya harus menangani bungkusnya , karena Vim tidak ramah pengguna.
sumber
-tabm
dan+tabm
dalam vim saya 7.4 tidak benar memindahkan tab. Juga saya:help tabm
tidak mencantumkan ini sebagai sintaks yang valid. Jadi saya mengganti yang terakhirelse execute ...endif
denganelseif a:direction == 1 execute "tabmove" s:current_tab else execute "tabmove" s:current_tab - 2 endif
menggunakan jawaban Pablotabmove
dan-
/+
tanda diexecute
garis.Inilah makro saya, menggunakan argumen relatif dari jawaban @ maybeshewill:
Ini menangani kasing.
sumber