2012-02-01 28 views
5

Tôi đã ánh xạ Ctrl - j để di chuyển đến bộ đệm bên dưới. Tuy nhiên nó đã được ánh xạ khó khăn cho một cái gì đó khác vì vậy tôi đã phải viết hàng đầu tiên dưới đây để làm cho nó dễ dàng tại tất cả.Lập bản đồ <C-j> cho một cái gì đó trong Vim

Kịch bản bên dưới hoạt động hoàn hảo, trừ khi tôi viết tệp .sh. Tôi đã cài đặt plugin hỗ trợ bash- bash.

let g:C_Ctrl_j = 'off' 
map <C-j> <C-w>j 

CHỈNH SỬA: Tôi vừa phát hiện ra rằng sự cố được hỗ trợ. Bash-support bản đồ Ctrl - j để nhảy chèn (hoặc cái gì đó tương tự) di chuyển con trỏ tại một điểm được xác định trước và chuyển sang chế độ chèn. Tôi đoán thay đổi đó trong bash-hỗ trợ kịch bản sẽ làm công việc mặc dù tôi không thích rối tung với những tập tin.

EDIT2: hãy để g: C_Ctrl_j = 'off' thực sự chuyển tính năng chèn plugin bổ trợ csupport.

Trả lời

6

Theo the document of bash-support.vim:

Ý nghĩa ban đầu của tổ hợp phím Ctrl-j là 'di chuyển [n] dòng xuống' (xem | CTRL-j |). Nếu bạn quen với việc sử dụng mặc định và không thích các mục tiêu nhảy này, bạn có thể tắt chúng. Đặt dòng sau vào tập tin '.vimrc':

let g: BASH_Ctrl_j = 'tắt'

Vì vậy mà bạn cần phải đặt let g:BASH_Ctrl_j = 'off' vào vimrc của bạn.

Ngoài ra, hãy sử dụng nnoremap <C-j> <C-w>j thay vì map <C-j> <C-w>j trong vimrc của bạn. Sau này xác định ánh xạ chính trong chế độ Bình thường, Trực quan và Nhà điều hành đang chờ xử lý. Các ánh xạ chính cũng được mở rộng đệ quy. Nó có thể gây ra rắc rối khi bạn xác định nhiều ánh xạ chính hơn.

5

Ctrl - j (0x0A) là ký tự đặc biệt, Line Feed.

Có một cơ hội tốt để nhấn phím này không phải là không đến tại Vim là Ctrl - j (0x0A).

Trong Vim trong một cửa sổ Terminal.app trên máy Mac của tôi, gõ Ctrl - vCtrl - j màn ^@, (0x00 hoặc NULL). Trong khi Ctrl - vCtrl - gCtrl - vCtrl - k hiển thị ^G^K, tương ứng.

tôi muốn đề nghị sử dụng bản đồ khác (hoặc chỉ đào tạo chính mình để sử dụng Ctrl - wj).

+1

để g: C_Ctrl_j = 'off' Không loại bỏ ánh xạ cứng của Ctrl-j thành Nguồn cấp dữ liệu Dòng. –

+1

Thật sao? Tài liệu đó ở đâu? Tôi đã thử trên hai máy tính và nó không có sự khác biệt. – Johnsyweb

+2

http://lug.fh-swf.de/vim/vim-doc/csupport.html#csupport-Ctrl-j Đây là một phần của tài liệu csupport giải thích vai trò của Ctrl-j trong plugin csupport. Tôi đã đọc về bản remapping này ở đâu đó vài tháng trước và tôi không biết nó ở đâu. –

1

Hãy thử các ánh xạ không đệ quy,

nnoremap <C-j> <C-w>j 

phải làm điều đó.

1

Tôi có cùng một vấn đề, nhưng vì một lý do khác. VIM-LaTeX sử dụng plugin imaps.vim, cũng là remaps some keys, bao gồm Ctrl - j. Có gì làm việc cho tôi là để thiết lập một autocmd trong .vimrc tôi:

augroup vimrc 
    au! 
    au VimEnter * unmap <C-j> 
    au VimEnter * noremap <C-j> <C-w>j 
augroup END 

Các VimEnter kích hoạt làm cho chắc chắn rằng remap sẽ thực hiện sau khi vim khởi động, và các plug-in được nạp (nếu tôi hiểu nó một cách chính xác), để nó ghi đè lên bản đồ của trình cắm thêm imaps.vim. Unmap là không cần thiết, nhưng nó không thể bị tổn thương.

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