Hiểu về sự kết hợp CTRL-U


19

Trong câu trả lời này, tôi đã phải đối mặt với việc CTRL-Usử dụng trong hàm gọi sau :và trước tên hàm thực tế.

:nnoremap <buffer> <cr> :<C-U>call append('.', repeat([''],v:count1))<cr>

Đây là những gì giúp nói:

CTRL-U      Scroll window Upwards in the buffer.  The number of
            lines comes from the scroll option (default: half a
            screen).  If [count] given, first set the 'scroll'
            option to [count].

Tôi đã thử nó và nó hoạt động như tôi nghĩ. Nhưng tôi không hiểu lắm về phần này scroll. Họ có ý nghĩa 'scroll' optiongì?

Và bên cạnh đó nó làm một số điều kỳ lạ trong chế độ chèn. Theo như tôi hiểu thì nó xóa mọi thứ từ con trỏ đến đầu dòng và sau đó nối dòng kết quả và dòng trên.

Câu trả lời:


27

Trợ giúp, theo mặc định, trả về bất kỳ ánh xạ nào áp dụng cho chế độ bình thường. Trong chế độ bình thường, <C-u> không cuộn lên, nhưng đó không phải là những gì chúng ta trong tâm đang. Để xem những gì <C-u>thực hiện trong chế độ dòng lệnh, hoặc cmode , (chế độ mà bạn gõ lệnh bắt đầu với một dấu hai chấm) tìm kiếm:h c_CTRL-u

                            *c_CTRL-U*
CTRL-U      Remove all characters between the cursor position and
        the beginning of the line.  Previous versions of vim
        deleted all characters on the line.  If that is the
        preferred behavior, add the following to your .vimrc: >
            :cnoremap <C-U> <C-E><C-U>

Để hiểu lý do tại sao điều này hữu ích cho ánh xạ chế độ bình thường, hãy thử xóa nó, thử gõ một cái gì đó như 5:và xem những gì sẽ xuất hiện. Bạn sẽ thấy một cái gì đó như:

:.,.+4

Đây là một phạm vi

Bây giờ hãy thử gõ 5:<C-u>và xem những gì đi lên. Bạn chỉ nên xem

:

Tương tự trong chế độ trực quan, nhấn :chèn phạm vi

:'<,'>

Đó là lý do tại sao bạn sẽ rất thường xuyên nhìn thấy ánh xạ như:

nnoremap foo :<C-u>bar

hoặc là

xnoremap foo :<C-u>bar
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.