ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ผู้ให้บริการโฮสต์แห่งหนึ่งและสังเกตเห็น 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
[
== [
ไม่มีtmux
OR
[
== 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 เพิ่มคุณสมบัติมากมายในการทุบตี แต่ก็มีค่าเริ่มต้นบ้าจำนวนมากเพื่อแทนที่