ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ผู้ให้บริการโฮสต์แห่งหนึ่งและสังเกตเห็น ALT + ซ้ายและ ALT + ย้ายไปทางขวาระหว่างคำในเชลล์พรอมต์ในหน้าจอ GNU
การโยงคีย์ชนิดใดที่ฉันต้องกำหนดค่าและตำแหน่งที่จะรับพฤติกรรมนี้กับ OS X zsh ในพื้นที่ของฉันที่ทำงานใน iTerm2
ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ผู้ให้บริการโฮสต์แห่งหนึ่งและสังเกตเห็น ALT + ซ้ายและ ALT + ย้ายไปทางขวาระหว่างคำในเชลล์พรอมต์ในหน้าจอ GNU
การโยงคีย์ชนิดใดที่ฉันต้องกำหนดค่าและตำแหน่งที่จะรับพฤติกรรมนี้กับ OS X zsh ในพื้นที่ของฉันที่ทำงานใน iTerm2
คำตอบ:
ผมพบว่าวิธีการแก้ปัญหาที่นี่: https://coderwall.com/p/h6yfda จะคัดลอกส่วนที่สำคัญที่สุดของมันในกรณีที่ลิงค์ตก
คุณกำลังมองหาคำหลักและbackward-word forward-wordดังนั้นหากคุณอยู่บนเชลล์ที่การโยงคีย์ไม่ทำงานลองbindkey -L | grep backward-wordเพื่อตรวจสอบว่ามีการกำหนดค่าไว้หรือไม่ มีข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในการเป็นzshzle (1)
คุณสามารถตั้งค่าการผูกกุญแจด้วยตนเองโดยการพิมพ์ดังนี้:
bindkey ' Ctrl+ v Alt+ Right' คำต่อไป
bindkey ' Ctrl+ v Alt+ Left' ย้อนหลังคำ
ฉันเคยมีปัญหากับการโยงคีย์ด้วยเช่นกันและปัญหาก็เกือบทุกครั้งที่ปุ่มตัวเลือก / Alt ส่งสิ่งที่แตกต่างจาก Meta / Escape ที่คาดไว้
emacs-forward-word emacs-backward-wordความแตกต่างคือคุณกระโดดไปข้างหน้าไปยังจุดสิ้นสุดของคำและย้อนกลับไปที่จุดเริ่มต้นของคำแทนการกระโดดเสมอที่จุดเริ่มต้นของคำ
ฉันไม่สามารถพูดกับ iTerm ได้ แต่สิ่งเหล่านี้เป็นกุญแจสำคัญที่ฉันใช้เพื่อแก้ไขปัญหานี้ใน GNOME Terminal บน Fedora 19 โดยใช้ ZSH 5.0.7 ด้วย Oh-my-zsh:
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
โดยที่\e== escape-key-sequence (ตามที่ระบุไว้ในส่วน 4.1.1 )
และ[== O(ตัวพิมพ์ใหญ่ O; ตามที่ระบุไว้ในส่วน4.2.1 ) ในบางกรณี สำหรับเช่นภายใต้tmuxการทดแทนนี้เป็นสิ่งจำเป็นสำหรับฉัน แต่ไม่tmuxจำเป็นต้องมีที่จะไม่มีการทดแทนและ[==[
คุณสามารถรับรหัสคีย์สำหรับลำดับได้โดยใช้catและกดลำดับที่ต้องการ ตัวอย่างเช่นผลลัพธ์ของการกด<Alt+Right>ควรตีความเช่น:
$ cat
^[[1;3C
^[== \e== escape-key-sequence
[== [ไม่มีtmuxOR
[== O(ตัวพิมพ์ใหญ่ o) ด้วยtmux
1;3 == ฉันไม่แน่ใจเกี่ยวกับอันนี้ แต่มันควรหมายถึงเหตุผล <Alt>
C == ปุ่มลูกศรขวา
จากนั้นลำดับนี้จะถูกกำหนดbindkeyใน~/.zshrcไฟล์สำหรับการคงอยู่เป็นอาร์กิวเมนต์แรกและถูกผูกไว้ซึ่งหมายความว่าการกดแป้นในอาร์กิวเมนต์ที่หนึ่งจะดำเนินการคำสั่งแก้ไขเฉพาะ (หรือวิดเจ็ตในเงื่อนไข zsh) ให้กับเครื่องมือซึ่งในครั้งแรก forward-wordสายของตัวอย่างข้างต้นคือ
สิ่งที่~/.zshrcควรมาใหม่หลังจากคำสั่งสองคำสั่งต่อท้ายด้วย:
$ source ~/.zshrc
ตอนนี้สิ่งหนึ่งที่สร้างความรำคาญให้กับระบบของฉันคือชุดค่าผสมนี้ทำให้เครื่องจำลองเทอร์มินัลส่งเสียงบี๊บทุกครั้งที่มีการออกคำสั่ง
'Edit'->'Profile Preferences'->'Terminal Bell' ช่องทำเครื่องหมาย
สิ่งที่ดีที่สุดสำหรับฉันเกี่ยวกับการทำให้การนำทางบรรทัดคำสั่งของ iTerm2 ใช้งานง่ายขึ้นสำหรับฉัน (ฉันเป็นเด็กที่ไม่ได้เติบโตในบรรทัดคำสั่ง แต่ฉันใช้เวลามากในการแก้ไขข้อความและ IDE) ถึง:
Natural Text Editingตัวเลือกในเมนูแบบเลื่อนลง Presetsค่าเริ่มต้นนี้เป็นกุญแจของตัวแก้ไขไปสู่การจัดเรียงมาตรฐานที่มากขึ้นโดยที่ฉันไม่ต้องแก้ไขตัวเลือกทุกตัว
ฉันขอแนะนำให้คุณใช้zkbdกำหนดค่าการโยงคีย์ ฉันใช้มันและAlt+ Left/ Alt+ Rightทำงานได้ดีบน iTerm2 ดูzshcontrib(1)รายละเอียดเกี่ยวกับ zkbd
FOO=BARเป็นหนึ่งคำสำหรับ zsh และ 2 คำที่จะทุบตี ในทำนองเดียวกันถ้าคุณตั้งค่าเคอร์เซอร์ไปยังจุดสิ้นสุดของการfoo --barทำ Alt + Backspace ในทุบตีคุณจะมีfoo --และใน zshfooคุณจะมี Zsh เพิ่มคุณสมบัติมากมายในการทุบตี แต่ก็มีค่าเริ่มต้นบ้าจำนวนมากเพื่อแทนที่