ฉันไม่สามารถคิดออกว่าจะกลับไปที่Normal
โหมดหลังจากที่เข้ามาTerminal
ในInsert
โหมด ...
การหลบหนีดูเหมือนจะไม่ทำงาน
ความคิดใด ๆ
ฉันไม่สามารถคิดออกว่าจะกลับไปที่Normal
โหมดหลังจากที่เข้ามาTerminal
ในInsert
โหมด ...
การหลบหนีดูเหมือนจะไม่ทำงาน
ความคิดใด ๆ
คำตอบ:
<C-\><C-n>
คุณควรจะกด
ดู:help terminal-emulator
คำแนะนำการทำแผนที่
คำตอบโดย @romainl นั้นถูกต้อง แต่ฉันต้องการเพิ่มข้อมูลอีกเล็กน้อยสำหรับทุกคนที่อาจจะสะดุดจาก google เช่นเดียวกับฉัน
โดยตรงจากเอกสารที่เราได้รับบันทึกนี้:
โหมดเทอร์มินัลมีเนมสเปซของตนเองสำหรับการจับคู่ซึ่งเข้าถึงได้ด้วยคำนำหน้า "t" เป็นไปได้ที่จะใช้การจับคู่เทอร์มินัลเพื่อกำหนดค่าการโต้ตอบกับเทอร์มินัล ตัวอย่างเช่นต่อไปนี้เป็นวิธีการแมปเพื่อออกจากโหมดเทอร์มินัล:
:tnoremap <Esc> <C-\><C-n>
ด้วยความรู้นั้นคุณจะต้องสร้างการแมปเทอร์มินัลเพื่อให้สอดคล้องกับเวิร์กโฟลว์ปัจจุบันของคุณ (การเคลื่อนไหวแท็บ / หน้าต่าง ฯลฯ )
tnoremap kj <C-\><C-n>
tnoremap <Esc> <C-\><C-n>:q!<CR>
ใน Vim 8 สิ่งนี้ใช้ได้เช่นกัน:
tnoremap <ESC> <C-w>:q!<CR>
N
อยู่ใน<c-w>N
คุณก็สามารถกดหลัง:
<c-w>
และถ้าคุณต้องการปิด Vim ด้วยบัฟเฟอร์และหน้าต่างแบบเปิดทั้งหมด:qa!
อาจเป็นตัวเลือกที่ดีกว่า แต่ใครจะสูญเสียการเปลี่ยนแปลงทั้งหมดในกรณีที่
หากคุณกำลังใช้ Tmux คุณอาจติดตั้งการผูก "vim-like" เพื่อย้ายไปรอบ ๆ ในหน้าต่างหน้าต่างซึ่งสิ่งอื่นใดคว้า "C- \" ก่อนที่ Vim จะมีโอกาสใช้งาน หากเป็นเช่นนั้นให้ลบเหล่านี้ออกจาก.tmux.conf
และรีสตาร์ท tmux:
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
bind-key -T copy-mode-vi C-\ select-pane -l
:help terminal-emulator-input
ฉันต้องใช้