Chế độ chọn là gì và khi nào có liên quan để sử dụng nó?


37

Tôi vô tình nhấn ghtrong chế độ bình thường và bắt đầu lựa chọn, vì vậy tôi tìm tài liệu và tìm thấy :h Select-mode.

Từ những gì tôi hiểu, chế độ chọn gần với chế độ trực quan ngoại trừ:

  • Nhập một ký tự có thể in <CR>hoặc <BS>sẽ xóa lựa chọn, bắt đầu chế độ chèn và thay thế lựa chọn bằng đầu vào.
  • hjkl và chuyển động chế độ trực quan hoặc bình thường khác sẽ không mở rộng lựa chọn trừ khi chúng có tiền tố <Shift>
  • <CTRL-O><CTRL-G>sẽ chuyển sang chế độ trực quan.
  • Tài liệu cũng nói như sau, nếu tôi hiểu chính xác có nghĩa là có thể thực hiện lựa chọn theo dòng mà sau đó được xử lý theo cách đặc trưng:

    Khi sử dụng một toán tử trong chế độ Chọn và lựa chọn là theo dòng, các dòng được chọn sẽ được vận hành theo, nhưng giống như trong lựa chọn theo cách đặc trưng. Ví dụ, khi toàn bộ một dòng bị xóa, sau đó nó có thể được dán một nửa dòng.

Tôi hơi bối rối vì tôi không hiểu tại sao chế độ này được tạo ra: tất cả những gì tôi có thể thấy là nó không thuận tiện hơn chế độ trực quan và không cung cấp nhiều tính năng hơn.

Ngoài ra, các tìm kiếm mà tôi đã thực hiện đều cho kết quả về việc thực hiện lựa chọn ở chế độ trực quan nhưng không xử lý chế độ chọn.

Vì vậy, câu hỏi của tôi là:

  • Tại sao chế độ chọn được tạo?
  • Lợi thế của nó so với chế độ trực quan là gì?
  • Trường hợp sử dụng là gì thú vị hơn khi sử dụng chế độ chọn?

MetaNote Tôi không biết thẻ nào có liên quan đến câu hỏi này, vui lòng thử lại nếu cần.


Đối với tôi, điều này nghe giống như những gì bạn mong đợi từ hầu hết các biên tập viên GUI. (Chọn một dòng không có nghĩa là nó sẽ chuyển sang một dòng mới khi dán, shift + mũi tên mở rộng nó, gõ thay thế lựa chọn, tất cả những gì tôi mong đợi từ, giả sử, notepad).
muru

@muru: Tôi đồng ý rằng nó nhắc về loại trình soạn thảo này nhưng điều đó có nghĩa là chế độ này sẽ được triển khai chỉ để làm hài lòng một số người dùng muốn sử dụng Vim làm trình soạn thảo văn bản kém? Điều đó có vẻ khá kỳ lạ với tôi thực sự.
statox

Trên thực tế, tài sản dán đó là hữu ích trong một số trường hợp. Tôi chắc rằng ai đó đã đăng câu hỏi về việc dán như thế ở đây. Và đối với ghi đè, việc lưu tổ hợp phím (bạn không phải nhấn c), do đó tùy thuộc vào những gì bạn muốn làm, chọn chế độ có thể hữu ích. Đáng tiếc tôi cứ quên nó đi.
muru

Tôi sẽ cố gắng tìm câu hỏi này sau đó. Đối với phần ghi đè, tôi không thực sự cảm thấy đó clà một tổ hợp phím được lưu vì lựa chọn không thuận tiện như trong chế độ trực quan (vì bạn không thể sử dụng ehoặc iwtrực tiếp).
statox

1
Bạn đúng: khi 'selectmode'chứa mouse'mouse'chứa cờ cho chế độ hiện tại, chọn bằng chuột sẽ bắt đầu chế độ chọn (theo tài liệu).
statox

Câu trả lời:


23

Toàn bộ điểm của chế độ chọn là cung cấp một hành vi lựa chọn tương tự như hành vi được sử dụng trong các trình soạn thảo thông thường.

Cùng một lưu ý, có mswin.vim thay đổi một loạt các tùy chọn và ánh xạ để làm cho Vim cảm thấy giống như một trình soạn thảo thông thường.

Tôi chỉ có thể giả sử những người được thêm vào để làm hài lòng một tập hợp con của người dùng Vim, có lẽ tại thời điểm Vim được chuyển sang Windows (tôi có thể cảm thấy khinh thường Windows trong tài liệu).

Dù sao, chế độ chọn là điều cần thiết cho các plugin mở rộng đoạn trích và có thể bị lạm dụng để giải trí và kiếm lợi nhuận:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.

2
Tôi nghĩ khá thú vị khi chuyển Vim trên Windows và tạo ra chế độ này để làm hài lòng người dùng: Nếu họ muốn có một trình soạn thảo "cổ điển" thì tại sao họ lại sử dụng Vim? Nhưng nó dường như là lời giải thích duy nhất nên ... Ngoài ra tôi không thực sự hiểu lợi nhuận của ánh xạ của bạn: theo như tôi hiểu họ chọn từ dưới con trỏ trong chế độ chọn, một khi bạn đã làm vậy thì tại sao lại như vậy hữu ích?
statox

1
Khi từ được chọn, hãy nhập nội dung nào đó rồi nhấn §để chọn lần xuất hiện tiếp theo, nhập nội dung khác sau đó nhấn §lại để chọn lần xuất hiện tiếp theo, v.v. Bạn có thể nhấn .để lặp lại lần chèn cuối cùng. Đó là một biến thể của "công thức dấu chấm".
romainl

Tôi vẫn không hiểu. Theo cách nào thì hành vi lựa chọn giống như các biên tập viên thông thường?
still_dreaming_1

7
@ still_dreaming_1, trong trình chỉnh sửa thông thường, nhập foovà chọn nó. Bạn không cần nhấn bất kỳ phím nào để thay thế những gì đã chọn, phải không? Đó là những gì chế độ chọn mô phỏng.
romainl

1
@romainl ký tự "double S" mà bạn đang gõ là gì? Làm thế nào để bạn gõ nhân vật đó?
Michael
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.