Mam plik kodu Ruby otwarty w vi, istnieją linie skomentowane za pomocą #
:
class Search < ActiveRecord::Migration
def self.up
# create_table :searches do |t|
# t.integer :user_id
# t.string :name
# t.string :all_of
# t.string :any_of
# t.string :none_of
# t.string :exact_phrase
#
# t.timestamps
# end
end
def self.down
# drop_table :searches
end
end
Powiedz, że chcę odkomentować wszystkie wiersze w pierwszej def ... end
sekcji. Jak skutecznie to zrobić w Vimie?
Zasadniczo szukam łatwego i płynnego sposobu komentowania i komentowania linii. Tutaj mam do czynienia z kodem Ruby, ale może to być JavaScript ( //
) lub Haml ( -#
).
Odpowiedzi:
Używam skryptu komentującego NERD . Pozwala łatwo komentować, odkomentować lub przełączać komentarze w kodzie.
Jak wspomniano w komentarzach :
źródło
=begin
i=end
komentować wiele wierszy zamiast znaczników skrótu.Do tych zadań używam większości bloków czasowych .
Umieść kursor na pierwszym
#
znaku, naciśnij CtrlV(lub CtrlQgVim) i idź w dół, aż do ostatniego komentarza, i naciśnij x, aby usunąć wszystkie#
znaki w pionie.Komentowanie bloku tekstu jest prawie takie samo:
VISUAL BLOCK
trybu.INSERT
tryb, a następnie naciśnij #. Spowoduje to dodanie skrótu do pierwszego wiersza.#
znak we wszystkich innych wybranych wierszach.W przypadku uproszczonej wersji vima dostarczanej domyślnie z debian / ubuntu, wpisz
: s/^/#
zamiast tego trzeci krok (wszelkie pozostałe podświetlenia pierwszego znaku każdej linii można usunąć za pomocą:nohl
).Oto dwa małe nagrania ekranowe w celach wizualnych.
Komentarz:
Odkomentowanie:
źródło
n
(gdzie n to liczba wierszy - 1), j,n
(gdzie n liczba liczba długości sekwencji znaków komentarza - 1), l, x.Aby skomentować bloki w vimie:
%
Aby anulować komentarz do bloków w vimie:
Jeśli chcesz wybrać wiele znaków, użyj jednego lub połącz te metody:
źródło
Czasami jestem zamknięty w zdalnym polu, w którym moje wtyczki i .vimrc nie mogą mi pomóc, a czasem NerdCommenter źle to robi (np. JavaScript osadzony w HTML).
W takich przypadkach alternatywną technologią jest wbudowane
norm
polecenie, które po prostu uruchamia dowolne polecenia vim w każdej linii w określonym zakresie. Na przykład:Komentowanie z
#
:To wstawia „#” na początku każdej linii. Zauważ, że kiedy piszesz: zakres zostanie wypełniony, więc naprawdę będzie wyglądał
:'<,'>norm i#
Odkomentowanie
#
:Usuwa to pierwszy znak każdej linii. Gdybym użył komentarza 2-znakowego, takiego jak //, po prostu zrobiłbym,
:norm xx
aby usunąć oba znaki.Jeśli komentarze są wcięte jak w pytaniu PO, możesz zakotwiczyć swoje usunięcie w następujący sposób:
co oznacza „przejdź do pierwszego spacji, a następnie usuń jeden znak”. Zauważ, że w przeciwieństwie do zaznaczania bloków, ta technika działa nawet jeśli komentarze mają nierówne wcięcia!
Uwaga : Ponieważ
norm
dosłownie wykonuje się zwykłe polecenia vima, nie jesteś ograniczony do komentarzy, możesz również dokonać złożonej edycji każdej linii. Jeśli potrzebujesz znaku zmiany znaczenia jako części sekwencji poleceń, wpisz ctrl-v, a następnie naciśnij klawisz Escape (lub nawet łatwiej, po prostu zapisz szybkie makro, a następnie użyj normy, aby wykonać to makro w każdej linii).Uwaga 2 : Możesz oczywiście dodać mapowanie, jeśli
norm
często używasz . Np. Wstawienie następującego wiersza w ~ / .vimrc pozwala na pisaniectrl-n
zamiast:norm
po dokonaniu wyboru wizualnegoUwaga 3 : Vim Bare-Bones czasami nie ma
norm
skompilowanej komendy, więc pamiętaj, aby użyć rozbudowanej wersji, tj. Zazwyczaj / usr / bin / vim, a nie / bin / vi(Podziękowania dla @Manbroski i @rakslice za ulepszenia zawarte w tej odpowiedzi)
źródło
:norm ^x
. Ta metoda ma tę zaletę, że pracuje z zaznaczeniami regionu (np.vi{
Wybiera wewnątrz nawiasów klamrowych). Takie selektory obiektów tekstowych nie działająVisual Block
./bin/vi
jest vim 7.2, ale jest to inna wersja/usr/bin/vim
i ma takie funkcje wyłączone.vip
aby zaznaczyć cały akapit.Mam w swoim
.vimrc
:Teraz możesz wpisać,
,cc
aby skomentować linię i,cu
usunąć komentarz z linii (działa zarówno w trybie normalnym, jak i wizualnym).(Ukradłem go z jakiejś strony internetowej wiele lat temu, więc nie mogę już całkowicie wyjaśnić, jak to działa :). Jest komentarz, w którym jest wyjaśniony.)
źródło
Określ, które wiersze mają zostać skomentowane w vimie:
Ujawnij numery linii:
następnie
albo to:
źródło
:%s/^/#/g
skomentuje wszystkie linie? Zastanawiałem się, jaki jest znak procentu%
va{
lub zvar
ruby.Oto jak to robię:
Przejdź do pierwszego znaku w pierwszym wierszu, który chcesz skomentować.
Naciśnij Ctrl+ qw GVIM lub Ctrl+ vw VIM, a następnie zejdź w dół, aby wybrać pierwszy znak w liniach, aby skomentować.
Następnie naciśnij ci dodaj znak komentarza.
Odkomentowanie działa w ten sam sposób, wystarczy wpisać spację zamiast znaku komentarza.
źródło
c
usuwa również pierwszy znak. Odpowiedź CMS ma rację, tzn. Naciśnięcie,I
następnie wpisanie znaku (znaków) komentarza, a następnieEsc
(tak jest w Windows vim)ESC
dwa razy po naciśnięciuc
i to powinno załatwićWymyśliłem prosty dodatek do mojego pliku .vimrc, który działa całkiem dobrze i można go łatwo rozszerzyć. Po prostu dodajesz nowy typ pliku do mapy comment_map i jej lidera komentarzy.
Dodałem mapowanie do trybów normalnego i wizualnego, ale możesz mapować dowolnie. Wolę mieć tylko funkcję „przełączania”. Jeden nosi wiele mapowań itp.
Uwaga:
Nie używam żadnych wywołań zwrotnych ani przechwytywania typów plików / ładowania, ponieważ uważam, że spowalniają one uruchamianie Vima bardziej niż
.vimrc
funkcja statyczna / mapa, ale to tylko moje preferencje. Starałem się również zachować prostotę i wydajność. Jeśli korzystasz z komend automatycznych, musisz je umieścić w grupie komend automatycznych, w przeciwnym razie wywołania zwrotne zostaną dodane do typu pliku wiele razy dla każdego załadowanego pliku i spowodują znaczne pogorszenie wydajności.źródło
<leader><Space>
deklaracja na dole?\zs
i\ze
regex trick, kod stał się trochę mniejszy. widać to tutajPrzełącz komentarze
Jeśli wszystko, czego potrzebujesz, to przełączać komentarze , wolę iść z commentary.vim by tpope .
Instalacja
Patogen:
wtyczka vim:
Vundle:
Dalsze dostosowanie
Dodaj to do pliku .vimrc:
noremap <leader>/ :Commentary<cr>
Możesz teraz przełączać komentarze, naciskając
Leader
+/
, podobnie jak Sublime i Atom.źródło
Użyj Control-V, aby wybrać prostokąty tekstu: przejdź do pierwszego
#
znaku, wpisz Ctrl+ V, przesuń raz w prawo, a następnie w dół, aż do końca komentarzy. Teraz wpiszx
: usuwasz wszystkie#
znaki, po których następuje jedna spacja.źródło
Oto sekcja mojego
.vimrc
:W trybie normalnym i wizualnym pozwala mi to naciskać, ,icaby wstawiać komentarze i ,rcusuwać komentarze.
źródło
.vimrc
.map
obejmuje tryby normalny i wizualny, więc nie potrzebujeszvmap
liniiafter/ftplugin/ruby.vim
.<leader>ic
i<leader>rc
Używam vim 7.4 i to działa dla mnie.
Zakładając, że komentujemy / odkomentujemy 3 linie.
Skomentować:
Jeśli linia ma kartę / miejsce na początku:
ctrl + V
czymjjj
następnieshift + I (cappital i)
następnie//
wtedyesc esc
, gdy linia ma kartę / miejsce na początku, nadal można wykonać powyżej lub zamiana na
c
:ctrl + V
wtedyjjj
następniec
następnie//
następnieesc esc
odkomentować:
jeśli linie nie mają na początku tabulacji / spacji:
ctrl + V
wtedy,jjj
toll (lower cap L)
wtedyc
gdy linie mają kartę / miejsce na początku, to jedna przestrzeń nad i
esc
ctrl + V
wtedyjjj
potemll (lower cap L)
potemc
potemspace
potemesc
źródło
Lubię korzystać z wtyczki Tcomment: http://www.vim.org/scripts/script.php?script_id=1173
Zmapowałem gc i gcc, aby skomentować wiersz lub podświetlony blok kodu. Wykrywa typ pliku i działa naprawdę dobrze.
źródło
Mając 30 odpowiedzi przede mną, postaram się podać jeszcze łatwiejsze rozwiązanie: wstawić
#
na początku wiersza. Następnie przejdź w dół linii i naciśnij kropkę (.
). Aby powtórzyć, czyj
,.
,j
,.
, itd ... odkomentowac, usunąć#
(można uderzyćx
nad#
), a nie na odwrót użyciuk
,.
itp ...źródło
I#<Esc>j
do bufora - powiedzmyc
- a następnie zrobić10@c
, lub dowolną liczbę linii, która ci odpowiada.Jak usunąć komentarz z następujących trzech wierszy w vi:
Umieść kursor nad lewym górnym
#
symbolem i naciśnij CtrlV. To przełącza cię w tryb wizualnego blokowania. Naciśnij strzałkę w dół lub Jtrzy razy, aby wybrać wszystkie trzy linie. Następnie naciśnij D. Wszystkie komentarze znikają. Aby cofnąć, naciśnij U.Jak skomentować następujące trzy wiersze w vi:
Umieść kursor nad lewym górnym znakiem, naciśnij CtrlV. To przełącza cię w tryb wizualnego blokowania. Naciśnij ↓lub Jtrzy razy, aby wybrać wszystkie trzy linie. Następnie naciśnij:
I//Esc
To stolica I, // i Escape.
Po naciśnięciu ESCwszystkie wybrane wiersze otrzymają określony symbol komentarza.
źródło
Tak, na to pytanie są już 33 (najczęściej powtarzalne) odpowiedzi.
Oto inne podejście do komentowania linii w Vimie: ruchy . Podstawowym pomysłem jest komentowanie lub odkomentowanie wierszy za pomocą tej samej metody, co przeciąganie akapitu przez wpisywanie
yip
lub usuwanie 2 wierszy przez wpisywaniedj
.Takie podejście pozwoli Ci robić takie rzeczy jak:
ccj
skomentować następne 2 wiersze icuk
odkomentować je;cci{
komentować blok icui{
odkomentować;ccip
skomentować cały akapit icuip
odkomentować.ccG
komentować wszystko aż do ostatniego wiersza icugg
odkomentować wszystko aż do pierwszego wiersza.Wszystko czego potrzebujesz to 2 funkcje działające na ruchy i 2 odwzorowania dla każdej funkcji. Po pierwsze, mapowania:
(Zobacz instrukcję obsługi
g@
operatora ioperatorfunc
zmiennej).A teraz funkcje:
Zmodyfikuj powyższe wyrażenia regularne, aby odpowiadały Twojemu gustowi co do tego, gdzie
#
powinny być:źródło
Jeśli znasz już numery linii, to
n,ms/# //
zadziała.źródło
Zaznaczam pierwszą i ostatnią linię (ma i mb), a następnie robię: „a,” bs / ^ # //
źródło
Korzystam z EnhancedCommentify . Komentuje wszystko, czego potrzebowałem (języki programowania, skrypty, pliki konfiguracyjne). Używam go z powiązaniami w trybie wizualnym. Po prostu wybierz tekst, który chcesz skomentować i naciśnij co / cc / cd.
źródło
Połączyłem odpowiedź Phila i jqno i zamieściłem komentarze ze spacjami:
źródło
Istnieje ta wtyczka zmieniająca życie o
tpope
nazwievim-commentary
https://github.com/tpope/vim-commentary
Ta wtyczka zapewnia :
Zastosowanie :
:<,'>
:<,'>Commentary
i naciśnij Enter.źródło
vim-commentary
(podobnie jak wszystkie wtyczki tpope) ma tę zaletę, że jest idiomatyczny vim.gc
= „idź komentować”,gcap
= „idź komentować akapit” itp.Ta odpowiedź jest najbardziej przydatna, jeśli nie możesz zainstalować wtyczek, ale nadal chcesz, aby znaki komentarzy były zgodne z istniejącymi poziomami wcięcia.
Ta odpowiedź jest tutaj, aby 1) pokazują prawidłowy kod aby wkleić do
.vimrc
dostaćvim 7.4+
zrobić blok komentując / odkomentowanie utrzymując poziom wcięcia z 1 skrót w trybie wizualnym i 2), aby ją wyjaśnić. Oto kod:Jak to działa:
let b:commentChar='//'
: To tworzy zmienną w vimie.b
tutaj odnosi się do zakresu, w tym przypadku jest zawarte w buforze, co oznacza, że obecnie otwarty plik. Znaki komentarza są ciągami znaków i muszą być zawinięte w cytaty, cytaty nie są częścią tego, co zostanie zastąpione podczas przełączania komentarzy.autocmd BufNewFile,BufReadPost *...
: Komendy automatyczne uruchamiają różne rzeczy, w tym przypadku są one uruchamiane, gdy nowy plik lub plik odczytu kończy się określonym rozszerzeniem. Po uruchomieniu wykonaj następujące polecenie, które pozwala nam zmienićcommentChar
zależnie od rodzaju pliku. Są na to inne sposoby, ale są bardziej mylące dla nowicjuszy (takich jak ja).function! Docomment()
: Funkcje są deklarowane, zaczynając odfunction
i kończąc naendfunction
. Funkcje muszą zaczynać się od dużej. to!
gwarantuje, że funkcja ta zastępuje wszystkie poprzednie funkcje zdefiniowane jakDocomment()
z tą wersjąDocomment()
. Bez tego!
miałem błędy, ale mogło to wynikać z tego, że definiowałem nowe funkcje za pomocą wiersza poleceń vim.execute '''<,''>s/^\s*/&'.escape(b:commentChar, '\/').' /e'
: Wykonaj wywołuje polecenie. W tym przypadku wykonujemysubstitute
, który może przyjąć zakres (domyślnie jest to bieżąca linia), na przykład%
dla całego bufora lub'<,'>
podświetlonej sekcji.^\s*
jest wyrażeniem regularnym pasującym do początku linii, po której następuje dowolna ilość białych znaków, które są następnie dodawane do (z powodu&
)..
Tutaj służy do łańcuchów znaków, gdyżescape()
nie może być owinięty w cudzysłowach.escape()
pozwala na ucieczkę znaku,commentChar
który pasuje do argumentów (w tym przypadku\
i/
), poprzedzając je znakiem\
. Następnie ponownie łączymy się z końcem naszegosubstitute
łańcucha, który mae
flaga. Ta flaga pozwala nam po cichu zawieść, co oznacza, że jeśli nie znajdziemy dopasowania w danej linii, nie będziemy o tym krzyczeć. Jako całość, ten wiersz pozwala nam wstawić znak komentarza, po którym następuje spacja tuż przed pierwszym tekstem, co oznacza, że utrzymujemy poziom wcięcia.execute '''<,''>s/\v(^\s*)'.escape(b:commentChar, '\/').'\v\s*/\1/e'
: Jest to podobne do naszego ostatniego wielkiego długiego polecenia. Unikatowe dla tego, co mamy\v
, zapewnia nam, że nie musimy uciekać()
, i1
które odnosi się do grupy, którą stworzyliśmy z naszą()
. Zasadniczo dopasowujemy linię zaczynającą się od dowolnej ilości białych znaków, a następnie nasz znak komentarza, po którym następuje dowolna ilość białych znaków, i zachowujemy tylko pierwszy zestaw białych znaków. Ponownie,e
po cichu zawiedźmy, jeśli nie mamy znaku komentarza w tym wierszu.let l:line=getpos("'<")[1]
: ustawia zmienną podobnie jak w przypadku naszego znaku komentarza, alel
odnosi się do zasięgu lokalnego (lokalnego dla tej funkcji).getpos()
otrzymuje pozycję, w tym przypadku, początku naszego wyróżnienia i[1]
oznacza, że dbamy tylko o numer linii, a nie o inne rzeczy, takie jak numer kolumny.if match(getline(l:line), '^\s*'.b:commentChar)>-1
: wiesz jakif
działa.match()
sprawdza, czy pierwsza rzecz zawiera drugą rzecz, więc chwytamy linię, od której zaczęliśmy wyróżnianie, i sprawdzamy, czy zaczyna się od białych znaków, po których następuje znak komentarza.match()
zwraca indeks, w którym jest to prawda, i-1
jeśli nie znaleziono żadnych dopasowań. Ponieważif
ocenia wszystkie wartości niezerowe, aby były prawdziwe, musimy porównać nasze dane wyjściowe, aby zobaczyć, czy są większe niż -1. Porównanievim
zwraca 0, jeśli jest fałszem, i 1, jeśli jest prawdą, i to właśnieif
chce zobaczyć, aby poprawnie ocenić.vnoremap <silent> <C-r> :<C-u>call Comment()<cr><cr>
:vnoremap
oznacza odwzoruj następujące polecenie w trybie wizualnym, ale nie mapuj go rekurencyjnie (co oznacza, że nie zmieniaj żadnych innych poleceń, które mogłyby być użyte w inny sposób). Zasadniczo, jeśli jesteś początkującym vimem, zawsze używaj,noremap
aby upewnić się, że nie psujesz rzeczy.<silent>
oznacza „Nie chcę twoich słów, tylko twoje działania” i mówi, aby nie drukował niczego w wierszu poleceń.<C-r>
to jest to, co mapujemy, czyli ctrl + r w tym przypadku (zwróć uwagę, że nadal możesz używać Cr normalnie do „ponawiania” w trybie normalnym z tym mapowaniem).C-u
jest trochę mylące, ale zasadniczo zapewnia, że nie stracisz kontroli nad wizualnym podświetlaniem (zgodnie z tą odpowiedzią powoduje, że twoje polecenie zaczyna od'<,'>
tego, czego chcemy).call
tutaj, po prostu każe vimowi wykonać funkcję, którą nazwaliśmy, i<cr>
odnosi się do naciśnięciaenter
przycisku. Musimy go nacisnąć raz, aby faktycznie wywołać tę funkcję (w przeciwnym razie właśnie wpisaliśmycall function()
wiersz poleceń i musimy go nacisnąć ponownie, aby nasze substytuty przeszły przez całą drogę (nie do końca pewni dlaczego, ale cokolwiek).W każdym razie mam nadzieję, że to pomaga. Zajmie to wszystko podświetlone
v
,V
lubC-v
sprawdzić, czy pierwsza linia jest komentowane, jeśli tak, spróbuj odkomentowaniu wszystkie zaznaczone linie, a jeśli nie, należy dodać dodatkową warstwę znaków Komentarz do każdej linii. To jest moje pożądane zachowanie; Nie chciałem tylko, aby przełączało się, czy każda linia w bloku była komentowana, czy nie, więc działa to idealnie dla mnie po zadaniu wielu pytań na ten temat.źródło
Korzystam z wtyczki vima-komentarza Tima Pope'a .
źródło
Możesz użyć komentarza vim przez tpope ( https://github.com/tpope/vim-commentary ), możesz użyć go w następujący sposób:
Wejdź do trybu wizualnego, naciskając
Następnie naciśnij
Teraz wystarczy wybrać klawisze:
Spowoduje to skomentowanie wszystkich zaznaczeń, aby odkomentować ponowne przeczytanie kluczy:
źródło
Oto podstawową, wkładka opiera się na
C-v
, a następnieI
metodą opisaną powyżej.To polecenie (
:Comment
) dodaje wybrany ciąg na początku dowolnych wybranych wierszy.Dodaj ten wiersz do swojego,
.vimrc
aby utworzyć polecenie, które akceptuje pojedynczy argument i umieszcza argument na początku każdego wiersza w bieżącym zaznaczeniu.Np. Jeśli zaznaczono następujący tekst:
i uruchomisz to:
:Comment //
wynikiem będzie:źródło
Zaczynając od pomysłów zawartych w odpowiedziach, uruchomiłem własną funkcję komentowania. Włącza i wyłącza komentarze. Może obsługiwać takie rzeczy, jak
//print('blue'); //this thing is blue
i przełącza pierwszy komentarz. Ponadto dodaje komentarze i pojedynczą spację tam, gdzie znajduje się pierwsza inna biała spacja, a nie na samym początku linii. Dodatkowo nie kopiuje niepotrzebnie białych znaków, ale używa zoomów (: h \ zs dla pomocy), aby uniknąć tej dodatkowej pracy podczas komentowania i wcięcia. Mam nadzieję, że pomaga to minimalistom. Sugestie są mile widziane.źródło
Używam comments.vim z Jasmeet Singh Anand (znaleziony na vim.org),
Działa z C, C ++, Java, PHP [2345], proc, CSS, HTML, htm, XML, XHTML, vim, vimrc, SQL, sh, ksh, csh, Perl, tex, fortran, ml, caml, ocaml, pliki vhdl, haskel i normal
Komentuje i usuwa komentarze z wierszy w różnych plikach źródłowych zarówno w trybie normalnym, jak i wizualnym
Stosowanie:
źródło
Najszybszą i najbardziej intuicyjną metodą ze wszystkich jest ponowne mapowanie w
)
celu komentowania linii w dół, a następnie w(
celu odkomentowania. Spróbuj, a nie wrócisz.W Ruby lub Bash , z wcięciami 2 spacji:
W C / C ++ lub PHP , z wcięciami 4 spacji:
Wadami są to, że przegrywasz
(
i)
przesuwasz zdanie (aledas
możesz je tam wypełnić), a od czasu do czasu powrócisz do wybierania i zastępowania lub CtrlVdo obsługi długich odcinków. Ale to dość rzadkie.A w stylu C najlepiej radzić sobie z długimi komentarzami:
... Który łączy się dobrze z
V[move]gq
ponownym zawijaniem słów.źródło
Ten prosty fragment pochodzi z mojego .vimrc:
To jest dla // - Komentarze, ale możesz łatwo dostosować go do innych postaci. Możesz użyć autocmd, aby ustawić lidera zgodnie z sugestią jqno.
Jest to bardzo prosty i wydajny sposób naturalnie pracujący z zasięgami i trybem wizualnym.
źródło
Lubię
/* ... */
(komentarze C ansi), więc oto moja sztuczka dla ciebie. Oczywiście możesz go dostosować do użycia w różnych przypadkach.Komentuj za pomocą / * ... * /
Wybierz tekst (przejdź do początku, uruchom blok wizualny, przeskocz za pomocą
}
):Wpisz polecenie, które ma zostać zastosowane w zaznaczeniu
Polecenie będzie wyglądać następująco:
:'<,'>norm i /* ^[$a */
Aby uzyskać szczegółowe informacje, patrz (i *).
Odkomentuj / * ... * /
Wybierz tekst (jak poprzednio lub w inny sposób):
Wpisz polecenie, które ma zostać zastosowane w zaznaczeniu
Polecenie będzie wyglądać następująco:
:'<,'>norm :s-\s*/\*\s*-^M$bbld$
Zobacz szczegóły (ii *).
Wynik
Efektem są komentarze wiersz po wierszu:
Staje się (i odwrotnie):
Lepiej jest zapisać go jako część
map
lub@reg
w swoim.vimrc
, ponieważ jest dużo do pisania. Jeśli wolisz pojedynczy/*
i*/
cały blok, użyj:Komentuj za pomocą jednego / * * / całego bloku
Zapisz go w rejestrze, nagrywając np.
qc
Na początku akapitu, aby skomentować:i nie zapomnij
q
ponownie, aby zakończyć rejestrację.Zobacz szczegóły (iii *).
Odkomentuj pojedynczy / * * / z bloku
Zapisz go w rejestrze, mówią
@u
. Umieść kursor w dowolnym miejscu bloku i:Zapisz rejestr, kończąc
q
polecenie.Szczegóły znajdują się w (iv *).
Wynik
Efekt to pojedynczy komentarz dla wielu linii:
Staje się (i odwrotnie):
Objaśnienia
(i *) Działa przy użyciu,
norm
który stosuje to samo polecenie wielokrotnie w każdej wybranej linii. Polecenie po prostu wstaw a/*
, znajduje koniec tej linii i kończy się wstawiając a*/
(ii *) Służy również
norm
do powtarzania wyszukiwania / zamiany w każdej linii. Wyszukajspaces /* spaces
i zamień na nic. Następnie znajduje koniec linii, cofnij dwa słowa, popraw literę, usuń do końca.(iii *) Wybiera akapit poprzez
v}
, usuń go, wstaw komentarz otwieraj i zamykaj, przejdź do jego środka i wklej usunięty blok.(iv *) Gdziekolwiek pośrodku, znajduje wstecz a
/*
, usuwa je; znajduje do przodu a*/
, usuwa go.źródło