ในกลุ่มฉันจะสลับระหว่างแท็บอย่างรวดเร็วได้อย่างไร


126

ใน gnome-terminal, ฉันเพียงแค่สามารถกดAlt+ ( 1, 2, 3ฯลฯ ) เพื่อสลับไปยังแท็บที่เฉพาะเจาะจง ฉันยังสามารถใช้Ctrl+ ( PgUp/ PgDn) เพื่อหมุนเวียนไปตามแท็บต่างๆ (สะดวกสบายน้อยลง แต่สามารถแมปใหม่ได้)

หากฉันต้องการใช้แท็บกลุ่มแทนแท็บ gnome-terminal การพิมพ์:tabnและ:tabpค่อนข้างยุ่งยาก ฉันสามารถจับคู่แป้นพิมพ์ลัดกับแป้นพิมพ์ได้ แต่ก็ยังสะดวกกว่าการกระโดดไปที่แท็บ 4 ด้วยAlt+ 4โดยตรง

มีวิธีที่เร็วกว่าในการสลับระหว่างแท็บในกลุ่มหรือไม่?

คำตอบ:


209

แท็บถัดไป: gt

แท็บก่อนหน้า: gT

แท็บที่มีหมายเลข: nnngt


1
ฉันรู้ว่าฉันสามารถพิมพ์nnn g tแต่ฉันต้องการที่จะทำมันได้อย่างรวดเร็วเช่นหรือAlt + nnn Ctrl + nnnแต่Alt + nถูกจับโดย gnome-terminal แล้วและการผูกมัดกับCtrl + nดูเหมือนจะไม่มีผลใด ๆ
แมทธิว

6
สิ่งที่เกี่ยวกับการทำแผนที่ฟังก์ชั่นปุ่มเพื่อnnn g t? เช่น:map <F2> 2gt. มีปัญหาที่<F1>GNOME แมปกับศูนย์ช่วยเหลืออยู่บ่อยครั้ง :map , gtหรือคุณอาจจะเลือกที่สำคัญบางอย่างที่คุณไม่ได้ใช้บ่อยในโหมดปกติพูดจุลภาคและแผนที่มันเช่นนี้ จากนั้น1,จะพาคุณไปที่แท็บ 1 2,แท็บ 2 และอื่น ๆ
garyjohn

2
ฉันพบว่าสะดวกในการใช้ '<' และ '>'
Igor Stoppa

เลื่อนลงเพื่อรับคำตอบที่ดีกว่า ..
The Vivandiere

41

ทำไมไม่ใช้ประโยชน์จากผู้นำของคุณ (หัวหน้าของฉันถูกแมปไปSpace):

" 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>

คุณสามารถใช้การตั้งค่าด้านล่างเพื่อสลับไปมาระหว่างปัจจุบันและแท็บสุดท้ายที่ใช้งาน (นี่มันถูกแมปไปCtrl+ 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>

2
คุณจำเป็นau TabLeave * let g:lasttab = tabpagenr()สำหรับc-lการทำงาน: stackoverflow.com/questions/2119754/...
Ciro Santilli新疆改造中心法轮功六四事件

1
ฉันต้องการเพิ่ม<leader>h/lสำหรับgTและgt
Brenden

25

นี่เป็นวิธีที่ง่ายที่สุดที่ฉันพบเพื่อสลับระหว่างแท็บต่าง ๆ ได้เร็วขึ้นและง่ายขึ้น
เพิ่มบรรทัดถัด .vimrc ของคุณและสนุกกับมัน, เทคนิคเพิ่มเติมเกี่ยวกับแท็บเป็นกลุ่มที่นี่

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

ตอนนี้คุณสามารถใช้Ctrl เพื่อไปทางซ้ายและCtrl ไปทางขวา

หรือเพียงแค่ใช้:
1gtเพื่อไปที่แท็บหนึ่ง
2gtไปที่แท็บสอง
3gtไปที่แท็บสาม ฯลฯ ... ตอนนี้คุณมีความคิด


ฉันคิดว่านี่เป็นคำตอบที่ดีที่สุดที่นี่ สะดวกมากที่จะได้ ฉันเพิ่งปิดใช้งานการโยงคีย์ระบบเหล่านั้นใน OS X เพื่อทำให้ระบบเป็นอิสระ
LéoLéopold Hertz 준영

1
ใช้ปุ่มลูกศรจะทำให้คุณช้าลง ฉันปิดใช้งานแล้ว
ถามและเรียนรู้

ใช่ ... คำตอบที่ดีที่สุด!
Vivandiere

น่าเศร้า "Ctrl" ทำให้ฉันมีปัญหาใน vmplayer ดังนั้นฉันจึงเปลี่ยนเป็นปุ่ม "Backspace" และ "Enter"
Boris Däppen

ผู้ใช้ Mac: คุณอาจต้องปิดการใช้งานแป้นพิมพ์ลัดของ
Space

15

ในขณะที่ฉันใช้ Mac และไม่ใช้ MacVim (แต่เป็นกลุ่มธรรมดาภายในเทอร์มินัล) ฉันมีปัญหากับชุดคีย์ที่ไม่ได้ส่งผ่านไปยังเทอร์มินัล

ส่วนใหญ่ที่เข้ากันได้ (และสำหรับฉันความสะดวกสบายมากที่สุด) วิธีการสลับแท็บได้อย่างรวดเร็วมาจากเว็บไซต์ที่เป็นกลุ่ม Wikia

วางใน.vimrcไฟล์ของคุณ:

nnoremap H gT
nnoremap L gt

ตอนนี้Shift-h(capital H) และShift-l(capital L) จะสลับคุณอย่างรวดเร็วระหว่างแท็บและติดตามการประชุมที่hและlสอดคล้องกับด้านซ้ายและขวาเป็นกลุ่มบนคีย์บอร์ด qwerty ปกติ


ฉันชอบโซลูชันนี้ใช้งานง่ายและเหมือนเสียงเรียกเข้า ไม่ต้องใช้ปุ่มลูกศร
Ivan Ivković

ฉันเห็นด้วย. ทางออกที่ดีมาก
เศร้า

นี่เป็นทางออกที่ใช้งานง่าย ขอขอบคุณ!
LeOn - Han Li

2

(น่าเสียดาย) เสียงเรียกเข้าก็ใช้CtrlPgDn/ PgUpเพื่อสลับไปตามแท็บต่างๆ คุณจะต้องใช้mapแผนที่tabn/ tabpสิ่งที่ใช้งานได้


2

หากคุณใช้ 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หรือใส่นี้ใน


2

เพิ่มเหล่านี้ใน. vimrc เพื่อเปิดใช้งานปุ่มลัดการนำทางของแท็บ:

<ctrl-l> สลับระหว่าง 2 แท็บล่าสุด;

<ctrl-j/k> ไปที่แท็บสุดท้าย / ถัดไป;

<ctrl-t> เปิดแท็บใหม่

" tab navigation: Alt or Ctrl+Shift may not work in terminal: " http://vim.wikia.com/wiki/Alternative_tab_navigation " Tab navigation like Firefox: only 'open new tab' works in terminal nnoremap <C-t> :tabnew<CR> inoremap <C-t> <Esc>:tabnew<CR> " move to the previous/next tabpage. nnoremap <C-j> gT nnoremap <C-k> gt " 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>


เป็นไปได้ไหมที่จะแมป <Ctrl> - <Tab> ไปยังฟังก์ชั่นแท็บสลับสุดท้าย ฉันพยายามnnoremap <silent> <C-Tab> :exe "tabn ".g:lasttab<cr>แล้วvnoremap <silent> <C-Tab> :exe "tabn ".g:lasttab<cr>โดยไม่มีโชค
zzeroo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.