Tôi đang gặp một vấn đề kỳ lạ với ánh xạ chế độ bình thường Esc.
Nếu bạn tạo tệp escmapvimrc
có nội dung:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
Và sau đó bắt đầu vim bằng vimrc này:
vim --noplugin -u escmapvimrc
Sau đó, vim sẽ bắt đầu ở chế độ chờ toán tử với c
lệnh chờ nhập thêm, hiển thị tệp trống và hiển thị dòng lệnh :noh
.
Nếu bạn loại bỏ nnoremap
dòng, vấn đề sẽ biến mất.
Nếu bạn gỡ lỗi và thực hiện mọi thứ bạn nhận được kết quả sau:
Entering Debug mode. Type "cont" to continue.
/[...]/escmapvimrc
line 1: set nocompatible
>s
/[...]/escmapvimrc
line 2: set showcmd " Doesn't affect the problem: just makes it easier to see
>s
/[...]/escmapvimrc
line 3: nnoremap <Esc> :noh<CR><esc>
>s
/[...]/escmapvimrc
line 4: End of sourced file
>s
Press ENTER or type command to continue
Sau khi bạn nhấn enter, màn hình khởi động Vim được hiển thị và bên dưới:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
Màn hình khởi động Vim sau đó biến mất và bạn đang ở chế độ chờ nhà điều hành, như được mô tả ở trên.
Chuyện gì đang xảy ra vậy?
EDIT: Hành vi được mô tả trong Vim 7.3. Trong Vim 7.4.52, nmap
nguyên nhân khiến Vim khởi động ở chế độ Thay thế khi khởi động Vim mà không có tệp. ( Tuy nhiên, nếu Vim 7.4.52 được bắt đầu với một tệp, tuy nhiên, nó cũng khởi động bằng lệnh c đang được tiến hành.) Dù sao đi nữa, vấn đề sẽ biến mất khi nmap bị xóa.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj
để xóa phần đánh dấu tìm kiếm cũng khá nhanh.
:noh
cho tôi. Làm tương tự với gvim không cho thấy hành vi này.