Làm cách nào để ghi đè lệnh '='?


7

Tôi không thể thuyết phục vim áp dụng kiểu mã hóa mà tôi muốn ( cindentvà bạn bè).

Tuy nhiên, việc tích hợp clang-format.py(sử dụng định dạng .clang của dự án của tôi) thực sự khiến tôi hoàn toàn hài lòng.

Ngoại trừ việc tôi có phản xạ sử dụng =+ chuyển động -command. Điều này thực sự rất tốt để thụt lề một vùng hoặc toàn bộ tệp.

Làm cách nào tôi có thể hướng dẫn vim ghi đè chức năng mặc định? Tôi đã đọc về Equprg, nhưng tôi không chắc làm thế nào để thiết lập nó để làm cho nó hoạt động với định dạng clang.


4
Làm thế nào về việc cài đặt vim-clang-formatplugin của Rhysd , cùng với các yêu cầu của nó (đặc biệt vim-operator-user), sau đó ánh xạ =tới <Plug>(operator-clang-format)? Liên kết plugin: github.com/rhysd/vim-clang-format
VanLaser 17/2/2016

Cảm ơn bạn @VanLaser Bạn có biết làm thế nào để nó hoạt động với chuyển động: ==cho một dòng và gg=Gcho toàn bộ bộ đệm không?
Patrick B.

@VanLaser xin lỗi vì sự miễn cưỡng của tôi - Đơn giản là tôi không tin: bình luận của bạn hoạt động như mong đợi. Làm cho nó một câu trả lời xin vui lòng.
Patrick B.

Câu trả lời:


8

Nếu bạn không có gì chống lại cài đặt plugin, định dạng vim- clang của Rhysd có thể là một giải pháp hợp lệ, thay vì tùy chỉnh equalprg.

Như tài liệu nêu, với phần phụ thuộc vim-toán tử-người dùng của Kana được cài đặt, bạn có thể ánh xạ =tới <Plug>(operator-clang-format)(để hoạt động như một toán tử đầy đủ) và sử dụng nó với các chuyển động / đối tượng văn bản như ==hoặc =G.

Bạn nên tạo một ánh xạ cục bộ bộ đệm , chỉ dành cho các kiểu tệp C, C ++ và Objective-C, để mặc định =không được chạm tới:

autocmd FileType c,cpp,objc map <buffer> = <Plug>(operator-clang-format)
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.