2012-11-19 24 views
5

Tôi mất gần hai năm lập trình cho đến khi tôi quyết định chuyển đổi Textmate cho Vim và tôi thích nó cho đến nay. Tuy nhiên, sau khi chơi với nó trong một vài ngày tôi nhấn một vấn đề đầu tiên.Thiếu nhà lãnh đạo trong Vim

Là người mới bắt đầu, tôi đã liên lạc với Janus khi nhiều người làm nhưng cuối cùng tôi quyết định tạo cấu hình của riêng mình từ đầu để tìm hiểu nội dung tốt hơn. Tôi đã sao lưu cấu hình của mình và bắt đầu viết tệp .vimrc mới của mình. Nhưng sau đó (khá sớm) tôi nhận thấy rằng chìa khóa lãnh đạo không hoạt động, nó không có gì khi tôi nhấn nó, nó cũng chỉ bíp. Tôi đã không thay đổi chìa khóa cho một nhà lãnh đạo cũng không làm bất kỳ bản đồ quan trọng vì vậy tôi đã ngạc nhiên.

Vì vậy, một lần nữa, tôi đã xóa tệp .vimrc.vim để bắt đầu với trạng thái sạch. Nó không giúp được gì. Vì vậy, tôi đã mở Vim và cố gắng cấu hình lại một nhà lãnh đạo đến một khóa khác để xem liệu nó có giúp ích gì không.

:let mapleader 
> E121: Undefined variable: mapleader 
:let mapleader = ',' 
:let mapleader 
> mapleader   , 

Có vẻ ổn nhưng không có gì thực sự xảy ra. Ngay cả khi tôi đặt nó dưới một phím khác, Mac của tôi chỉ phát ra tiếng bíp. Không có cấu hình vim trong thư mục chính của tôi, không có plugin, không có gì. Thiết lập người dẫn đầu trong '.vimrc' thay vì bàn điều khiển vim cũng không giúp được gì.

Tôi đã thấy một số cuộc thảo luận ở đây về thời gian chờ để nhấn phím nhưng nó chưa đưa tôi đến bất cứ đâu.

Tôi bị mắc kẹt ở đây và không thể sử dụng Vim cho công việc hàng ngày của mình ngay cả khi tôi muốn. Bất cứ sự giúp đỡ nào cũng được đánh giá cao.

+0

Nếu bạn không có vimrc, bạn đang sử dụng bản đồ nào để kiểm tra chức năng của bản đồ? –

+0

Tôi chỉ cần nhấn phím chính, tôi hy vọng nó sẽ hiển thị trong bảng điều khiển bên dưới giống như khi bạn gõ ':'. Kiểm tra bình luận của tôi dưới câu trả lời của Conner dưới đây. – Kreeki

Trả lời

5

Thực hiện theo các bước sau một cách cẩn thận ...

  1. Tạo một .vimrc tập tin trong thư mục trống $HOME của bạn:

    $ cd 
    $ touch .vimrc 
    

    tại Vim nên chạy trong chế độ "nocompatible" đó là những gì tất cả chúng ta muốn.

  2. Mở trống ~/.vimrc của bạn và thêm những dòng này:

    let mapleader="," 
    nnoremap <leader>a :echo("\<leader\> works! It is set to <leader>")<CR> 
    
  3. Hit ,a, bạn nên có được thông báo sau trong dòng lệnh.

    <leader> works! It is set to , 
    

<leader> có thể không hữu ích ngay từ đầu, tuy nhiên, có những thứ khác phải lo lắng.

Dù sao, từ đó, tôi muốn đề nghị bạn thêm những vài thiết lập không khăng khăng rằng sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều:

filetype plugin indent on 
syntax on 
set autoindent 
set hidden 
set incsearch 
  1. filetype plugin indent on phép Vim để nhận ra filetype của các tệp bạn mở và áp dụng tất cả các loại cài đặt cụ thể cho các loại tệp được tạo sẵn (quy tắc thụt lề, hoàn thành…).
  2. syntax on bật làm nổi bật cú pháp.
  3. set autoindent sao chép thụt dòng của dòng hiện tại khi bạn làm <CR> cuộc sống sẽ hút rất nhiều nếu điều này bị tắt.
  4. set hidden cho phép bạn mở tệp mới hoặc chuyển sang bộ đệm khác mà không lưu thay đổi vào bộ đệm hiện tại.
  5. set incsearch làm cho điều hướng dựa trên tìm kiếm (/foo, ?bar) ngay lập tức awesome bằng cách bật tìm kiếm gia tăng.

Sau đó, bạn có thể thêm cài đặt và ánh xạ khi cần.

5

Tính năng này hoạt động nhưng các ánh xạ trước thay đổi sẽ không hiểu được ký tự đầu trang đã thay đổi. Ví dụ, nếu tôi có một vimrc nói rằng

nnoremap <Leader>a :echo "test"<cr> 

Sau đó, tôi có thể bắt đầu lên vim và nhấn \a để có được test ở phía dưới bên trái. Tuy nhiên, nếu bạn nhập :let mapleader = ',' thì hãy thực hiện ,a nó không hoạt động vì bạn đã thay đổi người dẫn đầu sau khi ánh xạ. Nếu sau đó bạn nhập :nnoremap <Leader>a :echo "test"<cr> và thử lại ,a nó sẽ hoạt động. Do đó, :let mapleader = phải đến trước khi ánh xạ sử dụng <Leader>.

+0

Tôi hiểu điều đó nhưng đó là điều kỳ lạ. Tôi đặt 'nnoremap a: echo" test "' in '.vimrc' (chỉ có ở đó), vào vim, nhấn' \ a'. Nó phát ra tiếng bíp cho '\' và đặt tôi vào chế độ chèn như 'a'. Tương tự nếu tôi thêm 'let mapleader =", "' to '.vimrc' trước khi ánh xạ và kích hoạt Vim. – Kreeki

+0

Phiên bản vim nào? – Conner

+0

Cả MacVim và Vim trong thiết bị đầu cuối đều là 7.3 – Kreeki

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