Vim không cung cấp đối tượng văn bản từ CamelCase theo mặc định, vì vậy, chúng tôi sẽ tự mình tạo . Mới tốt là chúng ta không cần phải phát minh lại bánh xe từ một plugin đã tồn tại và chúng ta có thể sử dụng nó như là một cơ sở: camelCaseMotion
kịch bản này định nghĩa chuyển động ,w
, ,b
và ,e
(tương tự như w
, b
, e
), không di chuyển từ-khôn ngoan (tiến/lùi), nhưng Lạc đà khôn ngoan; tức là giới hạn từ và chữ in hoa. Vấn đề là nó không xác định một đối tượng văn bản tương tự như iw
để chọn toàn bộ một từ. Vì vậy, hãy tạo :
Để hoàn tất, đối tượng văn bản cần hai định nghĩa: một cho chế độ hình ảnh và một chế độ khác cho chế độ chờ xử lý. Dưới đây là định nghĩa của chúng tôi (để thêm vào các .vimrc
):
vmap ,i <Esc>l,bv,e
omap ,i :normal v,i<CR>
Như bạn có thể thấy chúng tôi làm cho việc sử dụng của ,b
và ,e
chuyển động được xác định bởi các plugin.
Định nghĩa đầu tiên cho phép nhập ,i
khi chúng tôi đang ở chế độ trực quan và nó sẽ chọn "từ camelCase bên trong" hiện tại. (Chuyển động l
là một cách giải quyết để luôn có được chữ con trỏ trên. Nếu chúng tôi nhận được trước đó một khi con trỏ là chữ cái đầu tiên của một từ)
Định nghĩa thứ hai sử dụng đầu tiên một đến để khai thác như d
hoặc c
làm việc với ,i
Sau khi chúng tôi đã cài đặt plugin và thêm vào các định nghĩa để chúng tôi .vimrc
chúng ta có thể làm những gì bạn muốn.Ví dụ nếu tôi lấy ví dụ này:
DefaultHandlerWord
Nếu con trỏ của tôi là trên bức thư n
của Handler
tôi có thể sử dụng:
,e
đi đến lá thư cuối cùng của Handler
,b
đi đến chữ cái đầu tiên của Handler
,w
để chuyển đến chữ cái đầu tiên của Word
d,i
xóa Handler
và nhận được chỉ DefaultWord
c,i
xóa Hanlder
và có được một cơ hội để thay thế nó bằng một từ khác
thể trùng lặp của [Làm thế nào tôi có thể cấu hình vim để lệnh phong trào sẽ bao gồm dấu gạch dưới và CamelCase , nhưng hoàn thành sẽ bỏ qua chúng?] (http://stackoverflow.com/questions/1279462/how-can-i-configure-vim-so-that-movement-commands-will-include-underscores-and-c) (như đã đề cập trong câu trả lời của Luc, mà tôi nghĩ rằng nên là một bình luận) – yshavit