Szukaj…


Składnia

  • : ustaw relativenumber
  • :Ustaw numer
  • : set nonumber /: set nonu
  • : pwd

Uwagi

To automatyczne przeładowanie nastąpi tylko wtedy, gdy edytujesz vimrc w pełnej wersji vim, która obsługuje autocmd .

Szybkie makra „wyrzucane”

Dodaj to do swojego vimrc:

nnoremap Q @q

Aby rozpocząć rejestrowanie makra „wyrzucanego”, użyj qq . Aby zakończyć nagrywanie, naciśnij q (w trybie normalnym dla obu).

Aby wykonać zarejestrowane makro, użyj Q

Jest to przydatne w przypadku makr, które należy powtarzać wiele razy z rzędu, ale później nie będzie można ich ponownie użyć.

Korzystanie z funkcji uzupełniania ścieżki w Vimie

Jest to bardzo częste, zapamiętujesz ścieżkę do pliku lub folderu, otwierasz Vima i próbujesz napisać to, co właśnie zapamiętałeś, ale nie masz 100% pewności, że jest poprawne, więc zamknij edytor i zacznij od nowa.

Jeśli chcesz skorzystać z funkcji uzupełniania ścieżki i masz plik /home/ubuntu/my_folder/my_file i edytujesz inny plik odwołujący się do ścieżki poprzedniego:

Wejdź w tryb wstawiania: wstaw lub zrób to tak, jak chcesz. Następnie napisz /h . Gdy kursor znajduje się pod h , naciśnij Ctrl x, a następnie Ctrl f, aby edytor dokończył go do /home/ ponieważ wzorzec /h jest unikalny

Załóżmy teraz, że masz dwa foldery w katalogu /home/ubuntu/ nazwie my_folder_1 my_folder_2

i chcesz ścieżkę /home/ubuntu/my_folder_2

jak zwykle:

Wejdź w tryb wstawiania

wpisz /h i naciśnij Ctrl x, a następnie Ctrl f . Teraz masz /home/ Next dodaj u po / home / i naciśnij Ctrl x, a następnie Ctrl f . Teraz masz /home/ubuntu/ ponieważ ta ścieżka jest unikalna. Teraz napisz my po /home/ubuntu/ i naciśnij Ctrl x, a następnie Ctrl f . Edytor dokończy twoje słowo, aż my_folder_ zobaczysz drzewo katalogów, więc użyj klawiszy strzałek, aby wybrać to, które chcesz.

Włącz względne numery linii

Aby usunąć niektóre wiersze tekstu, gdy nie znasz dokładnej liczby wierszy do usunięcia, próbuj 10dd , 5dd , 3dd dopóki nie usuniesz wszystkich wierszy.

Względne numery wierszy rozwiązują ten problem, załóżmy, że mamy plik zawierający:

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

Wejdź w tryb NORMALNY: Esc

Teraz wykonaj :set relativenumber . Po zakończeniu plik zostanie wyświetlony jako:

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

gdzie 0 jest numerem linii dla bieżącej linii, a także pokazuje rzeczywistą liczbę linii przed liczbą względną, więc teraz nie musisz szacować liczby linii z bieżącej linii, aby wyciąć lub usunąć lub gorzej policzyć je jeden po jednym.

Możesz teraz wykonać zwykłe polecenie, takie jak 6dd i masz pewność co do liczby linii.

Możesz także użyć krótkiej formy tego samego polecenia :set rnu aby włączyć liczby względne i :set nornu aby wyłączyć to samo.

Jeśli również :set number lub masz :set number już włączony, otrzymasz numer linii, w której znajduje się kursor.

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

Wyświetlanie numerów linii

Aby wyświetlić numery linii z widoku domyślnego, wprowadź

:set number

Aby ukryć numery linii

:set nonumber

Istnieje także skrót do powyższego. nu jest takie samo jak number .

:set nonu

Aby ukryć numery linii, możemy również użyć

:set nu!

Mapowania dotyczące wychodzenia z trybu wstawiania

Wielu użytkowników Vima uważa Esc za trudny do osiągnięcia i w końcu znajduje inne mapowanie, które jest łatwo dostępne z rzędu domu. Pamiętaj, że Ctrl - [ może być odpowiednikiem Esc na angielskiej klawiaturze i jest znacznie łatwiejszy do osiągnięcia.

j k

inoremap jk <ESC> 

Ten jest naprawdę łatwy do uruchomienia; po prostu rozbij dwa pierwsze palce w głównym rzędzie w tym samym czasie. Trudno również uruchomić przypadkowo, ponieważ „jk” nigdy nie pojawia się w żadnym angielskim słowie, a jeśli jesteś w trybie normalnym, nic nie robi. Jeśli nie wpiszesz zbytnio „blackjacka”, zastanów się również nad dodaniem inoremap kj <ESC> , abyś nie musiał martwić się czasem dwóch klawiszy.

Duże litery

Linux

W systemie Linux możesz użyć xmodmap aby Caps Lock działał tak samo jak Esc . Umieść to w pliku:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

Następnie uruchom xmodmap file . Spowoduje to ponowne mapowanie Caps Lock na Esc .

Windows

W systemie Windows można użyć SharpKey lub AutoHotkey .

System operacyjny Mac

Jeśli masz system macOS 10.12.1 lub nowszy, możesz ponownie przypisać Caps Lock do Escape za pomocą Preferencji systemowych. Wybierz Klawiatura, przejdź do karty Klawiatura i kliknij Klawisze modyfikujące.

Preferencje klawiatury

Jak poznać katalog i / lub ścieżkę edytowanego pliku

Aby poznać ścieżkę do katalogu, w którym znajduje się plik, możesz użyć:

Esc, aby przejść do trybu poleceń

:pwd

Spowoduje to wydrukowanie ścieżki do katalogu na dole edytora, w ten sposób

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

Teraz, jeśli chcesz poznać nazwę edytowanego pliku w stosunku do katalogu roboczego vim, możesz użyć:

Esc, aby przejść do trybu poleceń CTRL G.

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

Wreszcie, aby uzyskać bezwzględną ścieżkę do edytowanego pliku, użyj

Esc, aby przejść do trybu poleceń,

1, a następnie CTRL G.

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

Szukaj w bloku funkcyjnym

Aby wyszukać tekst foo w bloku {} otaczającym kursor, użyj następującego polecenia ( <ESC> - klawisz Escape, <CR> - klawisz Enter):

vi{<ESC>/\%Vfoo<CR>

Teraz można przejść między meczami w bloku naciskając n i p . Jeśli masz hlsearch opcję hlsearch , podświetli to wszystkie dopasowania. \%V jest specjalną częścią wzorca wyszukiwania, która mówi vimowi, aby szukał tylko w wizualnie wybranym obszarze. Możesz także wykonać takie mapowanie:

:vnoremap g/ <ESC>/\%V

Następnie powyższe polecenie zostaje skrócone do następującego:

vi{g/foo<CR>

Kolejną przydatną sztuczką jest wydrukowanie wszystkich linii zawierających wzór:

vi{
:'<,'>g/foo/#

Zakres '<,'> jest wstawiany automatycznie.

Zobacz :help range i :help :g .

Skopiuj, przenieś lub usuń znalezioną linię

Wielu użytkowników znajduje się w sytuacji, w której chcą po prostu szybko skopiować, przenieść lub usunąć linię i powrócić do miejsca, w którym byli.

Zwykle, jeśli chcesz przenieść linię, która zawiera słowo lot poniżej bieżącego wiersza, wpisz coś takiego:

/lot<Esc>dd<C-o>p

Aby zwiększyć wydajność, możesz użyć tego skrótu w następujących przypadkach:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

Więc takie wyszukiwanie:

/lot$m

przesunąłby linię, która zawiera lot poniżej linii, na której znajdował się kursor podczas rozpoczynania wyszukiwania.

Napisz plik, jeśli zapomnisz `sudo` przed uruchomieniem vima

To polecenie zapisze otwarty plik z prawami sudo

:w !sudo tee % >/dev/null

Możesz także zmapować w!! zapisać plik jako root

:cnoremap w!! w !sudo tee % >/dev/null

Automatycznie przeładuj vimrc po zapisaniu

Aby automatycznie ponownie załadować vimrc po zapisaniu, dodaj do vimrc :

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

a następnie po raz ostatni wpisz:

:so $MYVIMRC

Następnym razem, gdy zapiszesz vimrc , zostanie on automatycznie ponownie załadowany.

nested jest przydatne, jeśli korzystasz z vim-Airlines. Proces ładowania linii lotniczej uruchamia niektóre polecenia automatyczne, ale ponieważ jesteś w trakcie wykonywania polecenia automatycznego, są one pomijane. nested umożliwia uruchamianie zagnieżdżonych poleceń automatycznych i umożliwia prawidłowe ładowanie linii lotniczej.

Uzupełnienie linii poleceń

ustaw wildmenu aby włączyć sugestie zakończenia dla wiersza poleceń.
Wykonaj następujące czynności

set wildmenu
set wildmode=list:longest,full

Teraz, jeśli powiesz :color karta :color ,

Dostaniesz

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow