2008-11-14 34 views
27

Tôi đang cố gắng sử dụng < C-a> (CTRL + A) shorcut dưới vim để tăng biến dưới con trỏ. Điều này hoạt động tốt theo vim chạy trên Linux. Tuy nhiên khi tôi cố gắng làm điều này trong gvim dưới cửa sổ nó "chọn tất cả" (tức là nổi bật hoặc trực quan chọn tất cả các văn bản trong cửa sổ hiện hành). Làm cách nào để thay đổi hành vi này hoặc cách khác để tôi có thể khôi phục chức năng biến gia tăng (ví dụ: có thể với ánh xạ khóa khác)?Tại sao < C-a> (CTRL + A) không hoạt động dưới gvim trên cửa sổ?

+0

xem http://stackoverflow.com/questions/66919/how-to-increment-in-vim-under-windows-where-ctrl-a-does-not-work.I nghĩ câu trả lời của Paul sẽ ổn –

Trả lời

27

Điều này là do mswin.vim có nguồn gốc từ _vimrc mặc định được tạo khi bạn cài đặt vim. Chỉ cần ghi đè _vimrc bằng .vimrc bạn đang sử dụng dưới * nix hoặc xóa mswin.vim.

+8

mswin.vim được coi là ác. Tôi ước Bram sẽ ngừng bao gồm nó. – Zathrus

+1

Điều này có thể được làm việc xung quanh với mrswin.vim: http://www.vim.org/scripts/script.php?script_id=514 –

+3

@Zathrus - Làm thế nào có thể một vài dòng văn bản là "ác", hãy giải thích. – Rook

4

Vim trên Windows có ánh xạ khóa chuyên dụng theo mặc định để tạo lối tắt nhiều hơn "cửa sổ-y". Chúng được chỉ định trong tệp $ VIMRUNTIME \ mswin.vim, được tải qua vimrc của bạn trừ khi bạn tắt nó. Bạn có thể chỉnh sửa tệp mswin.vim (thay vào đó bạn có thể chỉnh sửa bản sao, thay đổi vimrc của bạn để sử dụng bản sao đã chỉnh sửa của bạn).

Tôi không hoàn toàn chắc chắn đó là một ánh xạ Vim mặc định, kể từ khi tham khảo duy nhất tôi có thể tìm thấy trên tổ hợp phím Ctrl + A trong tập tin trợ giúp là thế này, mà dường như không làm những gì bạn đang đề cập đến:

*c_CTRL-A* 
CTRL-A  All names that match the pattern in front of the cursor are 
       inserted. 

để bạn có thể muốn kiểm tra hộp Linux của mình để xem có bất kỳ plugin hoặc bất kỳ điều gì thay đổi ánh xạ khóa hay không. (Tất nhiên, có thể là tôi không thể tìm thấy phần thích hợp của sự giúp đỡ Vim.)

+0

': h CTRL-A' hoạt động tốt -> http://vimdoc.sourceforge.net/htmldoc/change.html#CTRL-A –

+0

Ah, cảm ơn. Không nghĩ về lựa chọn đó. > _ < –

1

trong phiên bản hiện tại của mswin.vim được cung cấp với gvim, tệp sẽ kiểm tra giá trị toàn cầu có tên skip_loading_mswin ; Nếu được đặt, phần còn lại của tệp bị bỏ qua; do đó, đủ để thêm

let skip_loading_mswin=1 

đến $HOME/_vimrc và ràng buộc vim bình thường sẽ được khôi phục vào lần bạn bắt đầu lần sau.

3

Nếu bạn chỉ không thích CtrlMột hành vi nhưng cũng tốt với các cửa sổ hành vi khác trong VIM (như CtrlZ cho undo), chỉ cần vô hiệu hóa dòng cụ thể:

  1. Chỉnh sửa tệp đã nói (c:\Program Files\Vim\vim73\mswin.vim cho tôi)
  2. Tìm đoạn bắt đầu bằng CTRL-A is Select all
  3. Đăng ký tất cả (6) các dòng của đoạn đó với các dấu ngoặc mở (")
  4. Mở lại các cửa sổ GVIM của bạn.

Bạn vẫn có thể "chọn tất cả" bằng cách nhập ggVG (con trỏ vị trí tại dòng đầu tiên, chọn toàn bộ dòng, chọn cho đến dòng cuối cùng của tài liệu).

Tăng dần hạnh phúc!

5

Tôi biết tôi là muộn để đảng, nhưng tôi nghĩ rằng tôi muốn chia sẻ như sau:

nnoremap <kPlus> <C-a> 
nnoremap <kMinus> <C-x> 

này remaps tăng đến + phím trên bàn phím số và sụt lần đến - khóa. Đó là giải pháp tôi đã sử dụng trong tập tin _vimrc của riêng mình trên Windows. Nó giữ khả năng tương thích với Windows và dễ nhớ hơn số gốc Ctrl + A/Ctrl + X.

Các vấn đề liên quan