سؤال في vim ، كيف يمكنني التبديل بسرعة بين علامات التبويب؟


في gnome-terminal ، يمكنني فقط الضغط البديل + (1، 2، 3وما إلى ذلك) للتبديل إلى علامات تبويب محددة. يمكنني أيضا استخدامها السيطرة + (صفحة الى الأعلى / صفحة الى الأسفل) للتنقل عبر علامات التبويب (أقل سهولة ، ولكن يمكن إعادة ضبطها).

إذا كنت تريد استخدام علامات تبويب vim بدلاً من علامات تبويب gnome-terminal ، فاكتب :tabn و :tabp مرهق للغاية. يمكنني تعيينهم إلى اختصارات لوحة المفاتيح ، ولكن ذلك لا يزال أقل ملاءمة بكثير من القفز مباشرة إلى علامة التبويب 4 مع البديل + 4.

هل هناك طريقة أسرع للتبديل بين علامات التبويب في vim؟


94
2018-04-11 01:06


الأصل




الأجوبة:


علامة التبويب التالية: زتي

علامة التبويب السابقة: زتي

علامة التبويب مرقمة: NNNزتي


161
2018-04-11 02:19



أعلم أنني أستطيع الكتابة nnn  g  tلكن اريد ان افعلها بسرعة، أي Alt + nnn أو Ctrl + nnn. لكن Alt + n يأخذ بالفعل من قبل جنوم المحطة ، وملزمة ل Ctrl + n لا يبدو أن يكون لها أي تأثير. - Matthew
ماذا عن مفاتيح الوظائف لرسم الخرائط nnn  g  t؟ على سبيل المثال، :map <F2> 2gt. هناك مشكلة ذلك <F1> غالبًا ما يتم تعيينها من قِبل جنوم إلى منشأتها المساعدة. أو يمكنك اختيار بعض المفاتيح التي لا تستخدمها غالبًا في الوضع العادي ، على سبيل المثال ، الفاصلة ، وقم بتعيينها كالتالي: :map , gt. ثم 1, سوف يأخذك إلى علامة التبويب 1 ، 2, لعلامة التبويب 2 ، وهكذا. - garyjohn
لقد وجدت أنه من الملائم جدًا استخدام "<" و ">" - Igor Stoppa
انتقل لأسفل للحصول على إجابة أفضل .. - The Vivandiere


لماذا لا تستخدم القائد الخاص بك (يتم تعيين قيادي ل الفراغ):

" Go to tab by number
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt
noremap <leader>0 :tablast<cr>

يمكنك استخدام الإعدادات أدناه للتبديل بين علامة التبويب النشطة الحالية وآخر مشاركة (هنا يتم تعيينها إلى السيطرة+L، على سبيل المثال ، <c-l>):

" Go to last active tab

au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>

33
2017-11-12 20:59



انت تحتاج au TabLeave * let g:lasttab = tabpagenr() إلى عن على c-l للعمل: stackoverflow.com/questions/2119754/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
سأضيف <leader>h/l إلى عن على gT و gt - Brenden


هذه هي الطريقة الأسهل التي وجدتها ، للتبديل بين علامات التبويب بشكل أسرع وبسيط.
أضف الأسطر التالية إلى ملفك .vimrc واستمتع بها ، المزيد من الحيل حول علامات تبويب vim هنا.

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

الآن يمكنك استخدامها السيطرة   للذهاب إلى اليسار و السيطرة   للذهاب الصحيح.

أو مجرد استخدام:
1gt للذهاب إلى علامة التبويب واحد ،
2GT للذهاب إلى علامة التبويب الثانية ،
3GT للذهاب إلى علامة التبويب ثلاثة ، الخ ... الآن لديك الفكرة.


13
2018-03-03 14:21



أعتقد أن هذا هو أفضل إجابة هنا. مريحة للغاية لديك. أنا فقط تعطيل تلك keybindings النظام في OS X لجعلها مستقلة عن النظام. - Léo Léopold Hertz 준영
استخدام مفاتيح الأسهم سوف تبطئك. لدي لهم تعطيل - Ask and Learn
نعم ... أفضل إجابة! - The Vivandiere
للأسف أعطاني "Ctrl" مشاكل في vmplayer ، لذلك تغيرت إلى مفاتيح "Backspace" و "Enter". - Boris Däppen
مستخدمو نظام التشغيل Mac: قد تحتاج إلى تعطيل اختصارات لوحة مفاتيح مسافات التحكم الافتراضية في المهمة: stackoverflow.com/questions/15719135/... - toszter


عندما أكون على جهاز Mac ولا أستخدم MacVim (لكن vim عادي داخل جهاز طرفي) ، واجهت بعض الصعوبة في عدم إرسال مجموعات المفاتيح إلى المحطة.

الطريقة الأكثر توافقا (وبالنسبة لي الأكثر راحة) لتبديل علامات التبويب بسرعة تأتي من موقع فيم ويكيا.

ضع في الخاص بك .vimrc ملف:

nnoremap H gT
nnoremap L gt

الآن Shift-h (رأس المال H) و Shift-l (رأس المال L) سوف ينتقل بسرعة بين علامات التبويب ، ويتبع ذلك الاصطلاح h و l تتوافق مع اليسار واليمين في vim على لوحة مفاتيح qwerty عادية.


10
2017-07-03 10:59





(لسوء الحظ) يستخدم vim أيضا السيطرةصفحة الى الأسفل/صفحة الى الأعلى للتنقل عبر علامات التبويب. ستحتاج إلى استخدام map الى الخريطة tabn/tabp لشيء قابل للاستخدام.


1
2018-04-11 01:25





إذا كنت تستخدم gvim أو ما شابه (أي شيء خارج الوحدة الطرفية) ، فيمكنك محاكاة gnome-terminal السلوك الذي تصفه بـ:

" Map alt-x keys to jump to a tab
for i in range(1, 8)
  execute "nmap \<M-" . i . "> " . i . "gt"
endfor
nmap <M-9> :tablast<CR>

وبالتالي alt-1 يقفز إلى علامة التبويب الأولى ، وما إلى ذلك. ولكن alt-9 ينتقل إلى علامة التبويب الأخيرة (كما هو الحال في Chrome).

قد ترغب في التفاف هذا في if has("gui_running") (على الرغم من أن هذا لا يبدو أن العمل مع Neovim) ، أو وضع هذا في .gvimrc.


0
2017-10-02 15:32





فيما يلي بعض التعيينات السهلة الخاصة بك .vimrc:

nnoremap <C-h> :tabprev
nnoremap <C-l> :tabnext

الايجابيات:

  • لا تنتقل من صف المنزل (أنا مبادلة السيطرة والقفل أقفال)
  • يعيد استخدام مفاتيح "اليسار" و "اليمين"
  • يشعر مماثلة لتبديل علامات المتصفح

0
2018-01-12 23:17