2012-11-19 13 views
5

Zajęło mi prawie dwa lata programowania, dopóki nie zdecydowałem się zmienić Textmate dla Vima i kocham go do tej pory. Jednak po zabawie z nim przez kilka dni trafiłem na pierwszy numer.Brakujący lider w Vim

Jako początkujący sięgałem do Janusa tak wielu ludzi, ale ostatecznie zdecydowałem się stworzyć własną konfigurację od podstaw, aby lepiej poznać te rzeczy. Poparłem konfiguracje i zacząłem pisać nowy plik .vimrc. Ale później (dość wcześnie) zauważyłem, że klucz od lidera nie działa, nie robi nic, kiedy go wciskam, no to po prostu pika. Nie zmieniłem klucza dla lidera, ani nie wykonałem żadnego kluczowego mapowania, więc byłem nieco zaskoczony.

Po raz kolejny usunąłem mój plik .vimrc i katalog .vim, aby rozpocząć od czystego stanu. To nie pomogło. Otworzyłem więc Vima i próbowałem przekonfigurować lidera na inny klucz, aby sprawdzić, czy to pomaga.

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

Wygląda dobrze, ale nic się naprawdę nie stało. Nawet kiedy umieściłem go pod innym kluczem, mój Mac po prostu wydaje sygnały dźwiękowe i to wszystko. Nie ma konfiguracji vima w moim katalogu domowym, bez wtyczek, nic. Ustawienie lidera w ".vimrc" zamiast w konsoli vim też nie pomaga.

Widziałem tu kilka dyskusji na temat limitów czasu na kluczowe naciśnięcia, ale nigdzie mnie to nie dostało.

Trochę utknąłem tutaj i nie mogłem użyć Vima do mojej codziennej pracy, nawet gdybym chciał. Każda pomoc będzie bardzo ceniona.

+0

Jeśli nie masz vimrc, jakie mapy używasz do testowania funkcjonalności Mapleader? –

+0

Właśnie naciskałem klawisz lidera, oczekuję, że wyświetli się w konsoli poniżej, tak jak to robi po wpisaniu ':'. Sprawdź mój komentarz pod odpowiedzią Connera poniżej. – Kreeki

Odpowiedz

5

Wykonaj następujące kroki ostrożnie ...

  1. Tworzenie pustego .vimrc plik w katalogu $HOME:

    $ cd 
    $ touch .vimrc 
    

    Vim powinien teraz działać w trybie "nocompatible", która jest co wszyscy chcą.

  2. Otwórz pusty ~/.vimrc i dodać te linie:

    let mapleader="," 
    nnoremap <leader>a :echo("\<leader\> works! It is set to <leader>")<CR> 
    
  3. Hit ,a powinieneś otrzymać następujący komunikat w wierszu poleceń.

    <leader> works! It is set to , 
    

<leader> nie mogą być użyteczne od samego początku, chociaż istnieją inne rzeczy martwić.

Zresztą stamtąd, którą proponujemy, aby dodać te kilka non-opinionated ustawienia, które uczynią Twoje życie znacznie prostsze:

filetype plugin indent on 
syntax on 
set autoindent 
set hidden 
set incsearch 
  1. filetype plugin indent on Vim pozwala rozpoznać typ pliku z następujących otwierane pliki i stosowanie wszelkiego rodzaju wbudowanych ustawień specyficznych dla rodzaju pliku (reguły wcięć, uzupełnianie ...).
  2. syntax on włącza podświetlanie składni na.
  3. set autoindent kopiuje wcięcie bieżącego wiersza, gdy robisz <CR> życie jest do bani, jeśli jest wyłączone.
  4. set hidden pozwala otworzyć nowy plik lub przejść do innego bufora bez zapisywania zmian w bieżącym.
  5. set incsearch powoduje, że wyszukiwanie oparte na wyszukiwaniu (/foo, ?bar) natychmiast niesamowite, obracając wyszukiwania incremental.

Po tym wszystkim musisz dodać ustawienia i odwzorowania, gdy ich potrzebujesz.

5

Działa, ale odwzorowania poprzedzające zmianę nie zrozumieją zmienionej postaci lidera. Na przykład, jeśli mam .vimrc że mówi

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

Wtedy mogę uruchomić vim i uderzył \a dostać test w lewym dolnym rogu. Jeśli jednak wpiszesz :let mapleader = ',', a następnie ,a, to nie działa, ponieważ zmieniłeś lider po mapowaniu. Jeśli następnie wpiszesz :nnoremap <Leader>a :echo "test"<cr> i ponownie spróbujesz ,a, to zadziała. Tak więc, :let mapleader = musi pochodzić przed mapowaniem, które używa <Leader>.

+0

Rozumiem, ale to jest ta dziwna rzecz. Wstawiam 'nnoremap a: echo" test "' w '.vimrc' (tylko coś tam), przejdź do vima, naciśnij' \ a'. Wydaje dźwięk dla '\' i wprowadza mnie do trybu wstawiania, tak jak to robi 'a'. To samo, jeśli dodaję 'let mapleader =", "' do '.vimrc' przed mapowaniem i odpalam Vima. – Kreeki

+0

Jaka jest wersja vima? – Conner

+0

Zarówno MacVim, jak i Vim na terminalu to 7.3 – Kreeki