ลำดับคำนำหน้า / การหลบหนีที่ขัดแย้งน้อยที่สุดสำหรับหน้าจอหรือ tmux คืออะไร


96

หน้าจอไปกับ+Ctrl Atmux ในที่อื่น ๆ มือเป็นการพัฒนาภายในหน้าจอการใช้งาน+Ctrl Bอย่างไรก็ตามการกดแป้นทั้งสองยังใช้ในโปรแกรมแก้ไข, shells, ฯลฯ ดังนั้นการเลือกใช้งานจะลดระดับประสบการณ์การใช้งานและการทำงานของเครื่องมือเหล่านั้นเมื่อใช้ภายใน tmux หรือหน้าจอ

คำนำหน้าข้อใดที่ขัดแย้งกับอย่างน้อยที่สุดกับการโยงคีย์ของโปรแกรมและเชลล์?


6
"รายการใดขัดแย้งกับโปรแกรมอื่นน้อยที่สุด" ไม่มีอะไรเกี่ยวข้องกับความคิดเห็น
iconoclast

หลังจากเปลี่ยน~/.tmux.confอย่าลืมรีสตาร์ทเซิร์ฟเวอร์ tmux เพื่อให้การเปลี่ยนแปลงมีผล ( superuser.com/q/188491/105108 )
ks1322

ทางเลือกในการใช้คำนำหน้า: ขณะนี้เทอร์มินัลบางแห่งมีการรวม tmux ผ่านทาง "tmux -CC" (เช่น iTerm2 สำหรับ macOS) วิธีนั้นหน้าต่าง tmux จะปรากฏเป็นแท็บในเทอร์มินัล จากนั้นคุณสามารถใช้การเชื่อมโยงคีย์สำหรับการจัดการแท็บที่ไม่ขัดแย้งกับโปรแกรมเทอร์มินัลใด ๆ เช่นโดยใช้ปุ่ม cmd (หรือที่รู้จักในชื่อ super key, windows key)
cjay

คำตอบ:


48

ฉันคิดว่า^\(aka ^|) ดีที่สุดถ้าอยู่ในตำแหน่งที่สะดวกบนเค้าโครงแป้นพิมพ์ของคุณ การใช้งานในโปรแกรมอื่น ๆ ค่อนข้างหายาก:

  • ส่งSIGQUITไปยังกระบวนการ
  • ยกเลิกหรือในขณะที่ลูปในเปลือกเมื่อ^Cถูกดัก
  • toggle-input-method ใน emacs

ฉันไม่รู้จักการใช้งานอื่น ๆ โปรดใช้ความระมัดระวังที่จะไม่ได้ตั้งใจฆ่ากระบวนการนอกtmuxหรือscreenหลังจากที่รับใช้มัน มันเกิดขึ้นกับฉันเพียงครั้งเดียวในไม่กี่ปีที่ผ่านมา

~/.tmux.conf

unbind-key C-b
set -g prefix 'C-\'
bind-key 'C-\' send-prefix

~/.screenrc

escape ^|^|

ฉันพยายามนี้ แต่ tmux บ่นเกี่ยวกับการใช้C-`. Can I escape the อักขระ `อย่างใด?
Jason

2
เพียงเพื่อให้คนอื่นรู้คุณควรเขียน'C-\'แทน `C- \ 'ใน tmux config
gns-ank

2
อย่าลืม 'tmux source-file /path/to/tmux.conf' เมื่อเสร็จสิ้นการลองการตั้งค่าใหม่
user72923

12
แต่แล้วฉันได้รับในนิสัยของคำสั่งว่าและเมื่อฉันลืมฉันในหน้าจอผมเริ่มตั้งใจส่ง SIGQUITs ...
Kache

3
"ถ้าอยู่ในตำแหน่งที่สะดวกในการจัดวางแป้นพิมพ์ของคุณ" โดยค่าเริ่มต้นไม่ใช่คุณหมายถึงว่ามีการทำแผนที่ยอดนิยมที่คุณใช้ซึ่งทำให้ C- \ สะดวกหรือไม่
Storypixel

53

สำหรับผู้ที่ต้องการใช้ backtick เป็น escape ใน tmux คุณจะต้องเพิ่ม:

unbind C-b
set -g prefix `
bind-key ` send-prefix

อันสุดท้ายมีความสำคัญมิฉะนั้นคุณจะไม่สามารถพิมพ์ backtick เพื่อจุดประสงค์อื่น :-)


Backtick ดูเหมือนความคิดที่ดีจนกว่าคุณจะวางในบาง SQL ...
ซิงโคร

3
@Synchro บน tmux 1.8 ไม่เป็นปัญหาอีกต่อไปขอบคุณตัวเลือกการวางเวลาซึ่งเปิดใช้งานตามค่าเริ่มต้น (ตั้งค่าเป็น 1ms) ดูที่นี่: sourceforge.net/p/tmux/tmux-code/ci/…
sickill

ฉันพบคำถามนี้เพื่อหาทางเลือกในการ backtick เนื่องจากมันเริ่มก่อปัญหาหลังจากที่ฉันคุ้นเคยกับการใช้ backticks แทนที่จะเป็น$()shells มันจะกลายเป็นความเจ็บปวดเมื่อคุณเริ่มเขียน Markdown มากมาย ฉันใช้มันมาหลายปีแล้ว แต่น่าเสียดายที่ฉันต้องเปลี่ยนมันตอนนี้
kirelagin

4
ใน .tmux.conf bind-key C-a set-option -g prefix C-aฉันยังมี เมื่อใดก็ตามที่ฉันจำเป็นต้องใช้ backticks ฉันกดปุ่ม`-Ctrl-aชุดC-aใดก็ได้ และฉันมีbind-key C-b set-option -g prefix `ดังนั้นฉันสามารถกดC-a-C-bเพื่อกลับไป
Boris

ถ้าคุณเขียน markdown ล่ะ? คุณจะหนีคำนำหน้าได้อย่างไร
OJFord

21

Ctrl + A เป็นที่รู้จักกันว่าทำให้เกิดปัญหากับ Emacs รวมถึง Bash ในโหมด Emacs ดูเหมือนว่านี่ไม่ใช่ปัญหาสำหรับคุณ

Ctrl + O เป็นตัวเลือกอื่นที่ฉันเคยเห็น เห็นได้ชัดว่านี่เป็นค่าเริ่มต้นใน RatPoison (นี่คือตัวจัดการหน้าต่าง X ที่ไม่ต้องใช้เมาส์) ฉันใช้ Ctrl + O เมื่อใช้หน้าจอแบบซ้อน: Ctrl + O สำหรับหน้าจอด้านนอกและ Ctrl + A สำหรับหน้าจอด้านใน ทำงานได้ดี แต่ก็กลัวเพื่อนร่วมงานของฉัน :-)

ฉันแค่คิดและถ้าคุณใช้ vi มากกว่า Emacs มีทางเลือกไม่กี่อย่าง ยกตัวอย่างเช่น Ctrl + G ไม่ได้ใช้งานมากนัก


8
สำหรับผู้ใช้ Emacs Ctrl + O น่าจะเป็นตัวเลือกที่ดีที่สุด: ใน emacs เป็นเพียง "เปิดบรรทัดใหม่ที่เคอร์เซอร์" และในทุบตี "ยกเลิกลำดับคำสั่ง"
ไหล

2
+1 หากคุณตกลงกับการดำเนิน ctrl ทางขวามือนี่เป็นข้อมูลสำรองที่ดี ฉันเป็นคนถนัดมือเอง ;-)
DaveParillo

9
ผมคิดว่า Ctrl + O แบ่งเป็นกลุ่ม
หมู่ Qiao

14
ฉันเห็นด้วยกับ @MuQiao Ctrl-o ใช้ในกลุ่มเพื่อข้ามไปยังตำแหน่งเคอร์เซอร์ที่เก่ากว่า (เทียบเท่าปุ่มย้อนกลับในหลาย ๆ IDE) คุณลักษณะที่ฉันใช้บ่อยมากขณะเรียกดูโค้ดในกลุ่ม Ctrl-b มีความหมายเหมือนกันกับ PageUp ใน Vim ฉันไม่ได้ใช้ Ctrl-b เลยบน Vim ดังนั้นสำหรับผู้ใช้ที่เป็นกลุ่มอย่างฉัน Ctrl-b ยังคงเป็นตัวเลือกที่ดีกว่า Ctrl-o ฉันใช้ Cj เป็นรหัสนำหน้าเนื่องจาก Cj มีความหมายเหมือนกันกับ j หรือ <Down> ใน Vim และไม่มีใครใช้ Cj เพื่อเลื่อนหนึ่งบรรทัดลงใน Vim ฉันมีสิ่งนี้ใน ~ / .tmux.conf ของฉัน:set -g prefix2 C-j; bind-key C-j send-prefix -2
Susam Pal

C-jขัดแย้งกับ CtrlP เลื่อนขึ้นและลงรายการบัฟเฟอร์ใช้C-kและC-jตามลำดับ
blockloop

14

ฉันมีแมปทั่วโลกCAPS-LOCK ESCจากนั้นฉันใช้M-Space(เช่น. CAPS-LOCK+ Space) สำหรับคำนำหน้า


ฉันพยายามที่จะทำเช่นนี้ แต่ถ้าฉันถือCAPS-LOCK(คิดเกี่ยวกับคำสั่งต่อไปของฉันหรืออะไรบางอย่าง) tmux - หรือ iTerm ไม่แน่ใจว่าสิ่งที่เป็นสาเหตุนี้ - ได้ESCรับคำสั่งซ้ำแล้วซ้ำอีกทำให้M-Spaceไม่ทำงาน มีวิธีการปิดการใช้งานปัญหาสำคัญที่เกิดซ้ำ ตัวอย่างเช่นมันทำงานเมื่อฉันกดอย่างรวดเร็วCAPS-LOCK + Spaceแต่ไม่ใช่ถ้าฉันกดค้างไว้CAPS-LOCKสักวินาทีแล้วกดSpaceก็ไม่ลงทะเบียนM-Spaceคอร์ด ...
Bruno Ely

12

ฉันใช้ระบบที่ซับซ้อนสำหรับหน้าจอ ค่าเริ่มต้นของฉันถูกตั้งค่าเป็น \ 140 \ 140 ซึ่งก็คือ backtick Ctrl-A ทำให้ทั้ง Emacs และ command line editting สำหรับฉันภายใน Zsh และฉันไม่ชอบ Ctrl-O (การใช้งาน 2 มือสำหรับการทำงานบนหน้าจอส่วนใหญ่)

ฉันย้อนกลับไปที่หน้าจอ 1 เพื่อให้เซสชันใหม่ถูกสร้างขึ้นจากซ้ายไปขวาบนแป้นพิมพ์เริ่มต้นที่ 1 สิ่งนี้ทำให้ฉันสามารถสำรองหน้าจอ 0 สำหรับสิ่งที่ฉันพิจารณาว่าเป็นหน้าต่างถาวรหรือหน้าต่างอ้างอิง มันเป็นรูปแบบลายเส้นที่ส่งได้อย่างรวดเร็วมากไปที่ (backtick) 1, (backtick) 2, (backtick) 3 เพื่อสลับระหว่าง windows

ปัญหาของการใช้ backtick ในระบบยูนิกซ์คือเมื่อพยายามตัดและวางเชลล์ / รหัสสคริปต์ Perl ด้วยเหตุนี้ฉันจึงผูกปุ่ม F11 / F12 เพื่อสลับระหว่างอักขระการหลบหนีของฉัน

bindkey -d -k F1        escape ^O^O # bound to F11
bindkey -d -k F2        escape \140\140 # bound to F12

นี่จะสลับการหลบหนีไปที่ Ctrl-O เมื่อฉันกำลังทำการตัดและวาง ฉันพบว่าการกดเครื่องหมายขีดสองครั้งนั้นทำได้ง่ายและเป็นการแลกเปลี่ยนที่ดีสำหรับการใช้งานหน้าจอส่วนใหญ่

ทบทวนคำตอบนี้ด้วยโซลูชันที่ใหม่กว่าซึ่งอนุญาตให้สลับโหมดโดยกดปุ่ม F12 และใช้คำอธิบายภาพเพื่อระบุโหมด

## command characters
escape \140\140                 # default is `

## sets caption and escape toggle
bindkey -d -k F2 process a     # bound to F12

## initial caption
caption always '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{-b .c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '

## registers to toggle bindkeys
register a "\140:eval 'bindkey -d -k F2 process b' 'process c' 'escape \\017\\017'^M"
register b "\017:eval 'bindkey -d -k F2 process a' 'process d' 'escape \\140\\140'^M"

## registers to change captions
register c "\140:caption string '%{= kW}%?%F%{+b mW}%:%{= kK}%? %= %?%F%{.c}ALT%{-}%? | %-w%{KW}%n* %t%? @%u%?%{-}%+w '^M"
register d "\017:caption string '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{.c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '^M"

โซลูชั่นที่สร้างสรรค์ ฉันประทับใจ.
staticsan

bind-key -n F11 set -g คำนำหน้า `bind-key -n F12 set -g คำนำหน้า Co Updates สำหรับ tmux ในกรณีที่คนอื่นต้องการปรับตัวนี้
milkypostman

1
มีวิธีการตั้งค่าการหมดเวลาน้อยที่สุดสำหรับคำนำหน้าผสม + other_key คำสั่งผสมใน tmux ดังนั้นเมื่อวางรหัสมันไม่ได้เรียกคำสั่งใด ๆ แต่เมื่อพิมพ์ backtick + แป้นจากแป้นพิมพ์มันเป็นเพราะหยุดระหว่าง backtick และปุ่มอื่น ๆ อีกต่อไป ?
sickill

11

ผมใช้Ctrl-Qในtmuxและมันทำงานได้ดีเพื่อให้ห่างไกล ฉันต้องพูดถึงว่ามันขัดแย้งกับการควบคุมการไหลของเปลือก โดยค่าเริ่มต้นจะใช้ในการเปิดใช้งานการส่งออกหลังจากหยุดมันด้วยCtrl-Q Ctrl-Sได้รับประหลาดใจโดยเปลือกติดอยู่ไม่กี่ครั้งหลังจากที่ตั้งใจตีฉันได้เรียนรู้ที่จะไม่กดCtrl-SCtrl-S

(หนึ่งสามารถปิดการควบคุมการไหลพร้อมกับstty -ixonหรือผูกกุญแจที่แตกต่างกันเพื่อstty startและstty stop.)

# tmux.conf
unbind C-b
set -g prefix C-q

ฉันใช้การผูกนี้และฉันคิดว่ามันสะดวกมาก ขอบคุณ!
aymericbeaumet

รายการโปรดของฉันเช่นกันเนื่องจากฉันมักจะปิดการใช้งานสิ่งที่เทอร์มินัลการควบคุมเทอร์มินัล
Jack O'Connor

2
ที่ใช้ในการ emacs quote-insertedสำหรับ ใช้ตัวอย่าง (ใน emacs): ถ้าผมต้องการที่จะค้นหาอักขระแท็บถัดไป -<Ctrl-s>+<Ctrl-q>+<TAB>
nhed

6

ผมชอบที่จะสำรอง^Spaceสำหรับการดำเนินงานที่พิเศษมาก / ทั่วไปเพราะฉันคิดว่ามันจะเป็นคำนำหน้าง่ายที่สุดในการพิมพ์ แต่ตอนนี้ฉันพยายามมันแมปเป็นprefixในtmux

มันปล่อยให้นิ้วของคุณอิสระที่จะข้ามไปที่คำสั่งที่คุณต้องการพิมพ์ทันที ให้มันลอง.


3
ไม่นานฉันกลับมาที่ ^ j ^ Space นั้นคล้ายกับคำสั่งที่ฉันใช้เรียกแอประดับ OSX (Spotlight, QuickSilver, DTerm)
ระเบียง

ฉันใช้ Cj ด้วย นี่คือสิ่งที่ฉันใช้ใน ~ / .tmux.conf:set -g prefix2 C-j; bind-key C-j send-prefix -2
Susam Pal

1
ฉันยังใช้ C-Space มันไม่ได้ใช้งานได้เกือบทุกที่
mahdix

1
C-space สมบูรณ์แบบสำหรับฉันเพราะฉันใช้ Chromebook: D
Eric Nguyen

6

ctrl-sข้อเสนอแนะที่ล่าช้า: ctrl-sมีข้อดีหลายประการ:

  1. ในแถวบ้าน
  2. ยังคงใกล้เคียงกับctrl-a(ในความเป็นจริงสำหรับ typers ส่วนใหญ่ก็จะใช้เหมือนกันสองนิ้วที่พวกเขาใช้สำหรับctrl-a) ดังนั้นสวิทช์หน่วยความจำของกล้ามเนื้อจากctrl-aการctrl-sเป็นที่น่ารำคาญ - สำหรับฉันมันก็กลายเป็นธรรมชาติที่สองภายในเวลาประมาณหนึ่งชั่วโมงแรกของการพยายาม
  3. เพิ่มขึ้นctrl-aสำหรับการดำเนินการสไตล์ emacs "กลับไปที่จุดเริ่มต้นของบรรทัด" หรือ "หมายเลขเพิ่ม" แบบ vim-style หรือเฮ้สำหรับการเรียกใช้หน้าจอภายในบานหน้าต่าง tmux โดยไม่ต้องกังวลเกี่ยวกับการหลีกเลี่ยงอักขระนำหน้าเพื่อควบคุมอินสแตนซ์ของหน้าจอที่ฝังอยู่ (ฉันมักจะทำสิ่งนี้โดยใช้ tmux แบบโลคัลพร้อมบานหน้าต่างที่มีเซสชัน ssh ไปยังเซิร์ฟเวอร์รีโมตซึ่งฉันรันหน้าจอ)
  4. ไม่แทนที่หรือเพิ่มข้อกำหนดการหลบหนีให้กับฟังก์ชั่นการใช้งานทั่วไปอื่น ๆ ไม่มีสิ่งใดที่คนส่วนใหญ่ใช้ในปัจจุบันคือ ctrl-s

แน่นอนเหตุผลที่ไม่มีอะไรใน ctrl-s คือในเทอร์มินัลมันถูกใช้สำหรับการควบคุมการไหลย้อนหลังไปถึงวันก่อนที่เครื่องมือเพจจิ้งเหมือนmoreและlessเป็นเรื่องธรรมดา ฉันแน่ใจว่าโปรแกรมเทอร์มินัล GUI บางแห่งยังคงมีฟังก์ชั่นการควบคุมการไหลที่เปิดใช้งานโดยค่าเริ่มต้น แต่ฉันไม่ได้ชนเข้ากับโปรแกรมใดโปรแกรมหนึ่ง โปรแกรมเทอร์มินัล gui ที่ฉันได้ลองทั้งหมดดูเหมือนจะไม่สนใจมันอย่างสมบูรณ์โดยค่าเริ่มต้นซึ่งทำให้การผสมคีย์ที่สะดวกสบายสำหรับการใช้งานที่มีประสิทธิผลมากขึ้น

ดังนั้นหากคุณไม่ได้ใช้หน้าจอ / tmux จากภายใน (ตัวอย่าง) ขั้ว Linux ดิบ แต่แทนที่จะมาจาก terminal ที่ใช้ GUI ฉันแนะนำให้ctrl-sลอง; มันทำให้การซิปใน tmux และหน้าจอสะดวกมากขึ้นสำหรับฉัน


4
Ctrl-s คือการค้นหาแบบส่งต่อสำหรับเมื่อฉันไปไกลด้วย Ctrl-r :)
Jack O'Connor

Ctrl-S เป็นเรื่องปกติสำหรับการหยุดเอาต์พุตคอนโซล (หรือที่รู้จักว่า "หยุด") บิตนี้ฉันเมื่อฉันพยายามแมปใหม่
เดฟ

5

คีย์ที่ไม่มีข้อขัดแย้งอาจC-zเป็นเพราะโดยปกติจะใช้เพื่อส่งโปรแกรมไปยังพื้นหลังเพื่อทำสิ่งอื่นต่อไปบนเชลล์ที่เริ่มต้น ฉันไม่ทำเช่นนี้เมื่อฉันมี tmux


ปัญหาเดียวที่ฉันมีกับการใช้ Cz คือคนอื่นส่วนใหญ่ใช้ Cb ดังนั้นหน่วยความจำกล้ามเนื้อของฉันก็ดับเมื่อการจับคู่การเขียนโปรแกรมบนเครื่องของคนอื่นฉันจบลงด้วยการทำงานfgมากหลังจากพิมพ์ Cz ผิดพลาด
Steve Jorgensen

ความคิดที่ดีเกี่ยวกับ Cz คือสมมติว่าคุณไม่ต้องการใช้ Ca มันใกล้กับปุ่ม Ctrl ด้านซ้ายซึ่งเป็นปุ่มควบคุมเดียวบนแป้นพิมพ์คอมพิวเตอร์โน้ตบุ๊กส่วนใหญ่ในทุกวันนี้ นอกจากนี้ยังอยู่ใกล้กับ Caps Lock หากคุณมีแผนที่ที่จะกดปุ่ม Ctrl ฉันแมป Caps Lock to Esc ของฉันตั้งแต่ฉันมักจะใช้ Kinesis Freestyle Solo keyboard ที่มีปุ่ม Esc ในสถานที่ที่น่าอึดอัดใจ
Steve Jorgensen

4

ฉันได้ยินว่า `(backtick) ถูกใช้แล้วคุณต้องพิมพ์สองครั้งเพื่อ backtick จริง อาจดีกว่าสำหรับผู้ใช้ vi ที่คุ้นเคยกับการกระทำ (เว้นแต่คุณจะทำสิ่งที่ Caps Lock)


คุณจะกำหนด backtick สำหรับ tmux ได้อย่างไร?
Alexandre Nizoux

สิ่งที่ชอบ: unbind Cb; set -g คำนำหน้า '' คำนำหน้า'; bind 'send; ดูคำตอบของ Darren Hall ด้านบน
bluehavana

ฉันใช้ backtick ประมาณหนึ่งปีและฉันจะไม่ย้อนกลับไปที่คำนำหน้าสองคีย์ / คำสั่งผสม ให้มันลอง.
sickill

4

ฉันแนะนำC-jซึ่งไม่รบกวนมากกับ vi หรือ emacs โดยพื้นฐานแล้วฉันเห็นด้วยกับความเห็นโดย Susam Pal ซึ่งดูเหมือนว่าสมควรที่จะปรากฏเป็นคำตอบเนื่องจากคนอื่น ๆ ทั้งหมดดูเหมือนจะมีความขัดแย้งที่สำคัญจากมุมมองของฉัน

ฉันใช้ Cj เป็นคีย์คำนำหน้าของฉันเนื่องจาก Cj มีความหมายเหมือนกันกับ j หรือใน Vim และไม่มีใครใช้ Cj เพื่อเลื่อนลงหนึ่งบรรทัดใน Vim ฉันมีสิ่งนี้ใน ~ / .tmux.conf ของฉัน:

set -g prefix2 C-j; bind-key C-j send-prefix -2


1
จากคำแนะนำของคุณฉันใช้ Cj มาระยะหนึ่งแล้วและข้อขัดแย้งเดียวที่ฉันพบคือปลั๊กอิน CtrlP vim Cj และ Ck ใช้เพื่อเลื่อนตัวเลือกขึ้นและลงตามลำดับ
blockloop

3

สำหรับรูปแบบแป้นพิมพ์ Dvorak โปรแกรมเมอร์มันเป็นระเบียบสวยที่จะใช้คีย์ลบ (รีบ) เป็นคำนำหน้าเช่น+ctrl คีย์ลบอยู่ในตำแหน่งคีย์อัญประกาศเดี่ยวในเค้าโครง qwerty นอกจากนี้ฉันได้ปุ่มฟังก์ชั่ล็อคกุญแจเป็นปุ่ม ctrl ต่อไปนี้เป็นความลับ tmux เพื่อตั้งเป็นคำนำหน้า:-

unbind C-b
set -g prefix C-_
bind C-_ send-prefix
bind - last-window

คุณอาจสงสัยว่าเหตุใดจึงใช้การขีดเส้นใต้แทนการลบ? อ้างถึงTmux: ฉันจะผูกกับ C— (การควบคุมลบ) ได้อย่างไร?
สำหรับ qwerty คุณอาจใช้ฉันจะผูกคีย์คำนำหน้า tmux กับ C- 'ได้อย่างไร? โซลูชันเพื่อรักษาทางลัดเดียวกัน

ฉันจะบอกว่านี่เป็นคำนำหน้าสมบูรณ์แบบถ้าคุณใช้ Vim / Neovim เนื่องจากส่วนนำหน้าเช่นctrl+ aหรือctrl+ bทำฟังก์ชั่น shadow (เหลื่อม) ของ Vim ด้วยวิธีใดวิธีหนึ่ง


2

โดยส่วนตัวแล้วbมันไกลเกินไปCtrlสำหรับฉันแล้ว เมื่อฉันใช้ tmux ฉันจะเปลี่ยนการเชื่อมจาก Cb เป็น Ca เสมอ ความขัดแย้งหลักกับ Ca คือเลือกทั้งหมด แต่ฉันไม่พบสิ่งนี้เป็นปัญหากับโปรแกรมที่ฉันใช้ tmux ด้วย


แน่นอนฉันใช้ค่าเริ่มต้น (ในหน้าจอไม่เคยลอง tmux) และยังไม่พบว่าจำเป็นต้องเปลี่ยน
ต้มตุ๋น Quixote

2

ในฐานะผู้ใช้ GNU emacs, zsh และ MS Windows ฉันใช้ Control-T (เช่นใน. screenrc :)

หลบหนี "^ T ^ T"

ใช่การควบคุม -T มีบางอย่างที่ผูกพันกับมันเช่นเมนูแบบเลื่อนลงในความถนัดของ Ubuntu หรือตัวละครที่แปลงเป็น Emacs

ฉันไม่สนใจ Co เพราะมันต้องการสองมือสำหรับฉัน


2

ฉันคิดว่าทางออกที่ดีที่สุดคือ ^ C Emacs ใช้ ^ C เป็นคีย์คำนำหน้าและฉันพบว่าเมื่อฉันต้องการพิมพ์ ^ C ในเชลล์ฉันมักจะพิมพ์สองเสมอ :-)

unbind-key C-b
set -g prefix C-c
bind-key C-c send-prefix


1

คุณสามารถใช้ backtick tmux เวอร์ชันเก่าบางรุ่นไม่รองรับ backtick ดังนั้นคุณสามารถทำสิ่งต่อไปนี้เพื่อแก้ไขปัญหา (ซึ่งจะเพิ่ม C-`, C- @ และ C-space เป็นเมตาของคุณในเวลาเดียวกัน):

# meta prefix - @ - backtick
unbind C-b
set -g prefix C-@
bind C-@ send-prefix
bind C-@ last-window

ปกติแล้วฉันทำการตั้งค่า CapsLock ของฉันใหม่เป็น Ctrl ดังนั้นมันจึงเหมาะสมกว่ากับ backtick


ฉันใช้สิ่งนี้เช่นกัน C-Space พิมพ์ค่อนข้างง่าย
kzh

ด้านหลังค่อนข้างดี อย่างไรก็ตามมันไม่ได้เป็นมิตรเทอร์มินัล แน่นอนว่าคุณไม่ผิดพลาดกับ xterm บน linux แต่เทอร์มินัลอย่างเช่น putty และ iTerm2 (macos) มีปัญหาในการลอกเลียนแบบอย่างถูกต้อง โชคดีที่ iTerm2 คุณสามารถแก้ไขได้ในการกำหนดค่า ฉันไม่ได้ใช้ windows / putty มากดังนั้น ctrl-space น่าจะเป็นวิธีแก้ปัญหาที่เป็นไปได้ :)
อเล็กซ์

1

คำตอบส่วนใหญ่ที่นี่ใช้ Ctrl เป็นส่วนหนึ่งของคีย์ผสม
เมื่อฉันใช้ Ctrl นิ้วก้อยของฉันเริ่มเจ็บเพราะฉันต้องกระจายมันไปที่ Ctrl เสมอ
ฉันใช้Alt-jสิ่งที่ฉันพิมพ์ด้วยนิ้วหัวแม่มือซ้ายและนิ้วชี้ขวาของฉันและมันสะดวกมาก ฉันยังไม่พบการชนกันของโปรแกรมอื่นเลย

unbind C-b
set-option -g prefix M-j

1

สำหรับหน้าจอ GNU การทำแผนที่ backtick เพื่อหลบหนีสิ่งต่อไปนี้ใน ~ / .screenrc ใช้ได้สำหรับฉัน

escape ``

0

ฉันชอบข้อเสนอแนะของการผูก ctrl- \ เป็นคำนำหน้าแต่เพื่อให้ได้งานนี้ใน Linux Mint 12 ฉันต้องหลบหนีสถานที่ที่มีผลผูกพันที่ด้านล่าง ไม่งั้นมันจะไม่ใช้ ดู. tmux.conf ของฉันที่นี่: การใช้ tmux กับ emacs และ vim


โปรดอย่าอ้างอิงคำตอบว่า "เหนือ" และ "ด้านล่าง" เนื่องจากคำสั่งซื้ออาจมีการเปลี่ยนแปลง ลิงก์คำตอบแทน ขอบคุณสำหรับคำตอบของคุณ :)
ไหล

0

ฉันคิดว่าผู้ใช้ Mac จะพบว่า§สะดวกกว่า backtick

บนแป้นพิมพ์ที่ไม่ใช่ Macปุ่ม Backtick จะอยู่ในตำแหน่งที่ใกล้เคียงกับปุ่มเดียวกับ§บนแป้นพิมพ์ Mac ดังนั้นเพื่อให้ได้รับความสะดวกสบายเช่นเดียวกับผู้ที่แนะนำให้ใช้ backtick ให้ใช้เครื่องหมายวรรคบนคีย์บอร์ด Mac

การใช้ backtick บนคีย์บอร์ด Mac นั้นค่อนข้างยุ่งยากเพราะมันอยู่ใกล้กับกะ (ซ้าย), การควบคุม (⌃) และ (-⌥) alt-keys เมื่อวันที่ MacBooks แม้ใกล้ซ้ายfn-key



โอเคคุณมาถึงจุดนี้แล้วฉันหมายถึงรูปแบบแป้นพิมพ์ Apple Mac US แต่ไม่ว่าจะเป็นแบบขยายหรือแป้นพิมพ์แบบ macbook
nanitous
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.