Tắt Ctrl-Z ở chế độ bình thường


9

Nếu tôi nhấn Ctrlzở chế độ bình thường, nó làm cho gVim của tôi "thu nhỏ" hoặc trong vim (không phải gVim), nó sẽ quay trở lại vỏ.

Tôi muốn tắt tính năng này nhưng

  • Tôi không thể hủy bỏ Ctrlz: unmap <c-z>trả vềno such mapping
  • Không có tùy chọn được gọi suspend, cho phép tôi sử dụng unset suspend.

Tôi đã làm :help suspendnhưng tài liệu không đề cập bất cứ điều gì về việc vô hiệu hóa "đình chỉ".

Câu trả lời:


14

Vì vậy, có một số điều mà bạn cần phải hiểu:

Đầu tiên bạn không thể sử dụng :unset suspendvà điều đó là bình thường. Tạm dừng Vim không được điều khiển bởi một tùy chọn (mà bạn có thể hủy đặt) mà bằng một lệnh : :suspend. Xem:h :suspend

Thứ hai, bạn muốn vô hiệu hóa hệ thống treo được kích hoạt bởi ctrlz. Đây là một lệnh tích hợp, do đó bạn không thể "hủy ánh xạ" tổ hợp phím này. Ánh xạ duy nhất mà bạn có thể hủy ánh xạ là ánh xạ mà bạn (hoặc plugin) đã tạo bằng lệnh :map <key> <action>.

Điều bạn có thể làm là nói với Vim "Khi tôi nhấn ctrlzkhông làm gì thay vì tạm dừng như bạn thường làm".

Đây là những gì lệnh này làm:

nnoremap <c-z> <nop>

Bạn có thể hiểu nó như thế này:

n                      Do the following mapping only in normal mode
 nore                  Don't make it recursive (This is not necessary here but strongly recommended in all your mappings)
     map               Create a mapping
         <c-z>         The keys that you want to remap
               <nop>   This is the short for "no operation" i.e. Do nothing

Bạn có thể thêm dòng vào vimrc của mình hoặc chỉ cần nhập dòng lệnh của vim :nnoremap <c-z> <nop>để ánh xạ sẽ chỉ tồn tại trong phiên hiện tại.

Xem :h <nop>.


Tôi đã sử dụng neovim trên windows với cmder, thói quen ctrl + z'ing khiến neovim tự đình chỉ nhưng vì không có kiểm soát công việc, tôi không thể quay lại neovim. Do đó mỗi khi điều này được kích hoạt tôi phải giết quá trình. Unmapping đình chỉ đã làm các thủ thuật!
Steven Huang

2

Bạn có thể ánh xạ Ctrlztới bất cứ thứ gì bạn muốn trong gVim. Trước tiên bạn không cần phải hủy bỏ nó.

Trong thực tế, mswin.vimđi kèm với gói gVim, đã ánh xạ nó để hoàn tác như thế này:
noremap <C-Z> u

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.