เป็นไปได้ไหมที่จะกำหนดค่า iTerm 2 ให้ย้อนกลับและส่งต่อหนึ่งคำผ่านข้อความที่อยู่ในบรรทัดคำสั่งโดยใช้แป้นพิมพ์ลัด?
เป็นไปได้ไหมที่จะกำหนดค่า iTerm 2 ให้ย้อนกลับและส่งต่อหนึ่งคำผ่านข้อความที่อยู่ในบรรทัดคำสั่งโดยใช้แป้นพิมพ์ลัด?
คำตอบ:
Ctrl-[ b
กระโดดกลับคำ คุณยังสามารถใช้Esc
แทนหรือCtrl-[
และf
เพื่อไปข้างหน้า
นั่นคือCtrl
+ [
เปิดตัวแล้วหรือb
f
หรือEsc
และหรือb
f
ข้อมูลเพิ่มเติมสามารถดูได้ที่การสนทนาอื่น ๆ นี้ใน AskDifferent
ฆ่าแมลงวันด้วยปืนใหญ่:
จากนั้นคุณสามารถย้ายคำถอยหลังใช้Option ⌥+ ←และส่งต่อคำโดยใช้Option ⌥+ →ย้ายไปยังจุดเริ่มต้นของสายโดยใช้fn+ ←และจุดสิ้นสุดของบรรทัดกับ+fn →นอกจากนี้คุณสามารถลบคำถอยหลังใช้Option ⌥+ ⌫ลบทั้งบรรทัดใช้+Command ⌘⌫
หากค่าที่ตั้งไว้ไม่ปรากฏให้ติดตั้ง iTerm2 ใหม่ หากคุณติดตั้งโดยใช้ Homebrew + Cask:
brew cask reinstall iterm2
ฉันชอบการตั้งค่าต่อไปนี้
เลื่อนไปข้างหน้าหนึ่งคำ
option+right
send escape sequence
f
ย้อนกลับไปหนึ่งคำ
option+left
send escape sequence
b
ลบถึงจุดเริ่มต้นของคำ ( เครดิต )
option+delete
send hex code
0x1B 0x08
ลบไปยังจุดสิ้นสุดของคำ
fn+option+delete
send escape sequence
d
(ฉันจำไม่ได้แน่นอน แต่ฉันคิดว่าฉันคัดลอกคำตอบนี้จากคำตอบของ jherran ด้านล่างและเพิ่มเข้าไปอีกฉันควรเพิ่มข้อมูลเพิ่มเติมในความคิดเห็นหรือการแก้ไขที่แนะนำในคำตอบนั้นฉันไม่ทราบวิธีการปรับปรุง สถานการณ์ แต่ตอนนี้มันเป็นที่รู้จัก)
วิธีนี้ใช้ได้ผลกับ bash เป็นอย่างน้อย สำหรับ zsh มีวิธีอื่นในการนำทาง
คล้ายกับคำตอบอื่น ๆ แต่สำหรับ Zsh ฉันใช้เวลาสักครู่เพื่อค้นหาสิ่งนี้:
หากคุณใช้ Zsh เช่น Oh My Zsh ใน iTerm ให้ไปที่: การตั้งค่า> โปรไฟล์ > เมนูย่อยของ Keys
คลิก + เครื่องหมาย
เพิ่มคอมโบลัดของคุณเลือก "ส่งลำดับหนี"
อินพุตสำหรับซ้ายและขวาด้านล่าง
ซ้าย:
[1;5D
ขวา:
[1;5C
คุณสามารถตั้งค่าเทอร์มินัลในโหมด vi ด้วยset -o vi
เพื่อให้สามารถใช้คำสั่งการเคลื่อนไหว vi ปกติ (เพิ่มบรรทัดใน.bash_profile
เพื่อจัดเก็บการตั้งค่าอย่างถาวร)
ดังนั้นราวกับว่าใน vi คุณสามารถกดEsc
แล้วb
เลื่อนหนึ่งคำไปข้างหลังย้อนกลับ ( w
ไปข้างหน้า) ไปที่จุดเริ่มต้นของบรรทัดด้วย0
หรือค้นหาอักขระย้อนกลับด้วยF
+ the char
กดi
เพื่อกลับไปที่โหมดปกติและใส่
ผู้ที่คุ้นเคยกับ vi สามารถทำได้มากกว่านี้ แผ่นโกงสามารถพบได้ที่นี่
Esc
จากนั้นI
เพียงแค่ไปหนึ่งครั้งเพื่อเริ่มต้นของบรรทัดเล็กน้อยสะดวกน้อยกว่าCtrl-a
- ใช้กรณีนี้เกิดขึ้นบ่อยครั้งเมื่อคุณต้องการเพียงแค่การปรับเปลี่ยนชื่อคำสั่ง ดังนั้นผมจึงใช้โหมด vi มีการเปลี่ยนแปลงบางอย่างในปุ่มลัด iTerm2 เพื่อทำแผนที่และที่คล้ายกันที่จะหลบหนีลำดับCtrl-A
Esc+0
ด้วยวิธีนี้กรณีเหล่านี้จะเร็วขึ้นเมื่อสิ้นสุดในโหมดแก้ไข
เปิดการตั้งค่า
กำหนดค่าคีย์ตัวเลือกทางซ้ายขวา (และ / หรือ) เพื่อส่ง Esc +
หากคุณยุ่งกับค่าที่ตั้งไว้ของคุณคุณอาจต้องโหลดค่าเริ่มต้นที่ตั้งไว้ล่วงหน้า (ระวังสิ่งนี้อาจเช็ด keybinds ที่กำหนดเองของคุณ!)
หากคุณเห็นอักขระแปลก ๆ หลังจากทำเช่นนี้คุณอาจต้องกำหนดค่า ~ / .inputrc หรือ / etc / inputrc ของคุณ
เพิ่มสิ่งนี้ใน ~ / .inputrc ของคุณ:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
อินพุตตัวอย่างแบบเต็ม:
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
ด้วย iTerm2 3.1.4 ฉันสามารถตั้งค่าต่อไปนี้โดยไม่ต้องเพิ่มการจับคู่คีย์แต่ละรายการ
ด้วยเทอร์มินัลเซสชันใหม่ตอนนี้คุณสามารถใช้:
Option ⌥+ fเพื่อไปข้างหน้า
Option ⌥+ bเพื่อไปข้างหน้า
Option ⌥+ Delete ⌫เพื่อลบ Word