view file name - CTRL-G
"Php.ini" 1255 lines --1% -
Detailed Information - gCTRL-G
Col 1 of 71; Line 18 of 1255; Word 79 of 6980; Byte 563 of 44684
gi is very useful
You write in the 143rd line of the php.ini file, exit insert mode, look at another file / buffer, press gi and continue to edit the 143rd line of php.ini.
CTRL-E, TRL-Y in the command mode, shift the screen by 1 line well below / above
in insert mode inserts characters from the bottom \ top line
RTL-A - inserts the last entered sentence (in insert mode!)
: read! date - inserts the current date
: read! cat file - paste the contents of the file
: grep -iR "TODO" * + copen - will all the TODO in the project
: read! cat / dev / random - will give out the password of the administrator \ current user (ONLY FOR true unix users !?) most importantly, do not forget CTRL + C to press
CRTL-T, CRTL-D insert paragraphs in edit mode
: nmap [I: let nr = input ("Which one:„) exe “normal”. nr. "[\ t"
So, my mouth has already closed, and faith in reality seems to have returned, although spiritual values and faith in other editors seem not to resume ...
I will continue…
Search in vim is natural
repetition is the mother of learning
/ - Looking for trail entry ? - searches for pre n occurrence - repeat last search
N - repeat the last search in the opposite direction
so:
I would like to touch on the topic of regular expressions (bl *, pi **** =)
Unfortunately, regular language is a topic for a whole book.
here I want to show examples that I use more often than others:
d / ^ # - delete everything from the current line to the first commentAsking for confirmation
10d / ^ # - appropriately until the 10th
y / ^ class /; function will allocate everything from the current position to the first occurrence of function in the class class.
:% s / foo / bar - replaces foo with bar in the entire file (equivalent: 1, $ s / foo / bar /)
:., / <\ / body> / s,
, gc - rules the tag
from current line to tagwithout spaces, this is a nice effect
(c - cautios, caution)
The author was so drunk ... that he left the reader to comment on the trail. expression:
: -23, 'ts / wow / WOW /
?
& - repeat last replacement in current line
: && - repeat the last replacement in the current line with the same flags
g & - repeat the replacement for the entire file
shift + left left left hand notepad'ovts move
aw, iw, as, ap, a {- the soul of a vim sings
go to the viral mode:
iw, iW - highlight a word
aw, aW - highlight the word, whitespace is not taken into account
as, is - select a sequence of words (as, is - there is a difference, see - iw, aw)
ap, ip - highlight paragraph
a {, i { - select the entire block {..} or the text inside it
a (, i ( - select the entire block (..) or the text inside it
a <, i < - select the whole block (..) or the text inside it
a ', i' - select a single-row drain or text inside it
a ", i" - select a two-line point or text inside it
(vim knows that \ "is not necessary to take into account)
at, it - select the whole tag or the text inside it (hello XML & HTML)
examples:
das - delete the sequence, including whitespace after it.
ci ( - replace text inside (...)
yat - copy the entire tag inside which the cursor is located
gU ' - sql requests we write in upper case! (changes the case in the single-row string to the upper one)
vip - select the entire paragraph without whitespace
smart insert
: set autoindent - Formats a paragraph when inserting a new line.
] p,] P - insert before \ after and format the indents
not always convenient (
: nnoremap P P '[v'] =
: nnoremap P P '[v'] =
before] - I do not reach, therefore I use
work with registers
It was partially described in the previous article - habrahabr.ru/blog/vim/45414.html
I would like to add:
"0 - the last copied text that was not entered in the register
"1 - the last deleted text that was not entered in the register
(" - and was longer than one line)
...
"2 -" 9 deleted text for the 2.9 team
". - last inserted text
"% - the name of the current file
"_ - black box registrar (its use does not affect other registers)
: reg - displays the value of all current registers
macro recording
q start recording a macro; sequential q stops recording
@ executes a macro
@@ executes the last macro executed
I think here you can give a small example
used to write in code
global $ db;
Now the style has changed a bit and I began to write
$ db = Database :: get ();
This code is quite a lot, although it is quite small
What are the necessary actions for me to replace?
1. find global $ db;
2. replace global $ db;
3.in $ db = Database :: get ();
now through vim;
1st point -: grep -iR "global $ db;" *
2.3 I will try to do as a macro:
so, after the 1st point, command mode, press qa, d2W, i
enter $ db = Database :: get ();
q.
recorded macro
: copen
looking for trace entry global $ db;
now just hit @a
go to the next entry
ps forgive me to note that this is something like hello world for macros, those are just the simplest example.
Thourht time in the past
probably another of the possibilities of vim'a which amazes me =)
g- / g + - slide between older / new text
: earler Ns, m, h - return the contents of the file, which was s, m, h "time" later
: later - on the contrary, respectively, return the contents of the file, which was s, m, h “time” after
: ealer 60m - damn, well, I sold the wine today =)
Thank you all for your attention ...
ps have any questions? write, collective intelligence will help you!
Source: https://habr.com/ru/post/28155/