Tôi có thể sử dụng SPACE làm mapleader trong VIM không?


82

Từ http://items.sjbach.com/319/configuring-vim-right, tôi hiểu rằng bạn được cho là có thể sử dụng Spacelàm mapleader trong vim. Tôi đã thử nhưng dường như không hoạt động. Bất cứ ai đã làm cho nó hoạt động?

Đã thử:

let mapleader = <space>

7
Tuyệt vời! Chỉ cần đọc cùng một bài đăng trên blog và tìm thấy điều này sau khi thử <SPACE> ... Tôi thấy rằng trong MacVim, điều này không loại bỏ ánh xạ "chuyển một ký tự về phía trước" khỏi phím cách, vì vậy đối với những người khác tìm thấy điều này từ Google - thêm "nnoremap <SPACE> <Nop>" trước "let mapleader ..." điều này đã hiệu quả với tôi.
michiakig 14/10/10

Câu trả lời:


97

Hãy thử những cách sau để thay thế:

let mapleader=" "

Và hãy nhớ viết dòng sau trước đó, để đảm bảo phím cách không có bất kỳ ánh xạ nào trước đó:

nnoremap <SPACE> <Nop>

19
Như ý kiến ​​của spacemanaki trong câu hỏi ở trên nnoremap <SPACE> <Nop>là cần thiết để làm việc này.
Sasha

1
@Sasha: thật không? Bạn có thể giải thích tại sao không, và nếu nó thực sự là như vậy, thì có lẽ bạn nên chỉnh sửa câu hỏi.
greg0ire

4
Nếu không có ánh xạ của sasha, việc nhấn <Space> sẽ không hoạt động như các phím khác như mapleader. <Khoảng trắng> ở chế độ bình thường được ánh xạ tới <phải>. Chỉ cần nhấn <dấu cách> một vài lần liên tiếp và bạn sẽ thấy hành vi không mong muốn, có thể được khắc phục bằng cách nnoremap <Space> <nop>.
freeo

3
Để thêm vào câu trả lời này, hãy lưu ý rằng giá trị của mapleaderchỉ ảnh hưởng đến các ánh xạ xảy ra sau khi mapleaderđược đặt. Thấy chưa :help leader.
evnu

Tôi đã phải lưu và đóng tệp rc. Tôi đã sử dụng :source %nhưng bản đồ lại không gian không hoạt động.
Jonathan Morales Vélez

67

Mapleader là một biến chuỗi Vim. Để sử dụng không gian làm thủ lĩnh, bạn phải thoát khỏi ký tự đặc biệt.

let mapleader = "\<Space>"

Để biết thêm thông tin, hãy xem,

http://vimdoc.sourceforge.net/htmldoc/eval.html#expr-quote

BIÊN TẬP:

Điều này không còn phù hợp với tôi trong phiên bản Vim của tôi. Ngay cả với đề xuất trong các nhận xét về việc giải nén phím cách ở chế độ bình thường bằng cách chạy nnoremap <SPACE> <Nop>.

Tôi kết thúc với giải pháp được đưa ra trong câu trả lời bên dưới.

map <Space> <Leader>

1
Ngoài ra, hãy chắc chắn rằng bạn sử dụng dấu ngoặc kép "\<Space>"và không '\<Space>'.
crlane

1
Tôi thích câu trả lời này hơn.
Sang Đặng

let mapleader = "\<Space>"làm việc cho tôi trong nvim, nhưng không phải trong vim. map <Space> <Leader>cũng không hoạt động trong vim đối với tôi.
Günter Zöchbauer

noremap <Space> <Nop> map <Space> <Leader>làm việc trong vim
Günter Zöchbauer

Tôi phải loại bỏ không gian xung quanh =để làm việc trên Neovim.
Nikhil CSB

18

Các giải pháp trên là tuyệt vời, tuy nhiên, không có gì hiển thị ở góc dưới cùng bên phải lệnh. Nếu bạn không sử dụng \phím nào, hãy thử sử dụng map <SPACE> <leader>\sẽ hiển thị ở góc lệnh. Điều đó và bạn không cần phải giải phóng không gian trước, như được đề xuất trong phần khen ngợi ở trên.


3
Điều này phá vỡ Người bình luận NERD. Và ít nhất trong Vim 8 và không gian Neovim hiển thị như <20>thể showcmdđang bật, vì vậy tôi đoán với Vim đủ mới, câu trả lời này đã lỗi thời.
user31389

Tôi chỉ muốn nói thêm ở đây rằng đây cũng là giải pháp tốt nhất nếu bạn đã phát triển bộ nhớ cơ bắp cho thủ lĩnh mặc định, nhưng muốn bắt đầu sử dụng không gian thay thế để có hiệu quả tốt hơn. "\ r" vẫn được gắn vào bộ nhớ cơ của tôi để mở Nerd Tree và sử dụng cscope, vì vậy thật tuyệt là nó vẫn hoạt động ngay cả khi ánh xạ không gian tới leader (mặc dù vậy, tôi không cảm thấy cần phải sử dụng Nerd Commenter).
DrEsperanto
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.