ออกจากโหมด Terminal ใน Neovim


60

ฉันไม่สามารถคิดออกว่าจะกลับไปที่Normalโหมดหลังจากที่เข้ามาTerminalในInsertโหมด ...

การหลบหนีดูเหมือนจะไม่ทำงาน

ความคิดใด ๆ

คำตอบ:


58

<C-\><C-n>คุณควรจะกด

ดู:help terminal-emulatorคำแนะนำการทำแผนที่


2
หน้าช่วยเหลือไม่ทำงานสำหรับฉัน :help terminal-emulator-inputฉันต้องใช้
jasonszhao

3
ตอนนี้เป็นเพียง: h terminal-emulator

41

คำตอบโดย @romainl นั้นถูกต้อง แต่ฉันต้องการเพิ่มข้อมูลอีกเล็กน้อยสำหรับทุกคนที่อาจจะสะดุดจาก google เช่นเดียวกับฉัน

โดยตรงจากเอกสารที่เราได้รับบันทึกนี้:

โหมดเทอร์มินัลมีเนมสเปซของตนเองสำหรับการจับคู่ซึ่งเข้าถึงได้ด้วยคำนำหน้า "t" เป็นไปได้ที่จะใช้การจับคู่เทอร์มินัลเพื่อกำหนดค่าการโต้ตอบกับเทอร์มินัล ตัวอย่างเช่นต่อไปนี้เป็นวิธีการแมปเพื่อออกจากโหมดเทอร์มินัล:

:tnoremap <Esc> <C-\><C-n>

ด้วยความรู้นั้นคุณจะต้องสร้างการแมปเทอร์มินัลเพื่อให้สอดคล้องกับเวิร์กโฟลว์ปัจจุบันของคุณ (การเคลื่อนไหวแท็บ / หน้าต่าง ฯลฯ )


สวัสดีฉันตั้งค่าการจับคู่ที่แน่นอน แต่ฉันกด <Esc> และไม่มีอะไรเกิดขึ้น มีความคิดอะไรไหม
Kevin Burke

หากคุณเพิ่มจากโหมด Ex ผลลัพธ์จะเหมือนกันหรือไม่ อาจจะมีการอัปเดตไฟล์ config ผิด ..
แดนแบรดบูรี่

1
ขอบคุณ สิ่งนี้ช่วยให้ฉันเพิ่มการแมปที่ฉันต้องการtnoremap kj <C-\><C-n>
Nick Merrill

2

ออกและปิด

tnoremap <Esc> <C-\><C-n>:q!<CR>

ใน Vim 8 สิ่งนี้ใช้ได้เช่นกัน:

tnoremap <ESC> <C-w>:q!<CR>

1
คุณไม่จำเป็นต้องNอยู่ใน<c-w>Nคุณก็สามารถกดหลัง: <c-w>และถ้าคุณต้องการปิด Vim ด้วยบัฟเฟอร์และหน้าต่างแบบเปิดทั้งหมด:qa!อาจเป็นตัวเลือกที่ดีกว่า แต่ใครจะสูญเสียการเปลี่ยนแปลงทั้งหมดในกรณีที่
Christian Brabandt

1

หากคุณกำลังใช้ 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

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