Когато редактирам файлове през ssh, предпочитам да използвам VIM пред редактори като nano. Въпреки че със сигурност е по-лесно да намерите бутона за запазване в nano, повечето други действия в nano са просто тромави. И въпреки че никога не съм разбирал наистина манията по навигацията в началния ред, тъй като мозъкът ми обикновено е ограничаващият фактор, а не колко бързо мога да пиша или навигирам през редактор, предпочитам как VIM просто върши работата.
Едно нещо, от което бих се възползвал, когато се науча да използвам този редактор, е просто измамнически лист с най-често срещаните действия, които бихте искали да правите в редактор като VIM. Така че направих един.
Разбиране на VIM
Когато отваряте файл с VIM, стартирате в нещо като команден режим. Можете да навигирате във файла, но не можете да редактирате. За да влезете в режим на редактиране, натиснете i
или Insert
. Ако натиснете вмъкване повече от веднъж, превключвате между режим на вмъкване (добавяне на текст под курсора) и режим на замяна (замяна на текст под курсора). За да се върнете в команден режим, натиснете Esc
.
Ако сте блокирани, обикновено можете да се измъкнете от това, което току-що сте направили, като намачкате Esc
и понякога напишете :q
Enter
. Когато се върнете в команден режим и вече няма странен подкана в долната част, можете да се върнете в режим на редактиране чрез i
или Insert
.
Когато сте в команден режим, натискането на клавиши като :
, /
и ?
ще премести курсора надолу. Това са началото на командите. Ако не искате да изпълните команда, просто разбийте Esc
, за да се върнете към това, което правехте.
Пищов
Всички тези команди се изпълняват в команден режим (вижте по-горе). Създайте си навик да натискате Esc
, преди да направите някое от тези.
Критични команди
Esc
Esc
Esc
: Върнете се в команден режимi
илиInsert
: Влезте в режим на редактиране:w
Enter
: Запазете текущия файл:w new_file_name.ext
Enter
: Запазване в (нов) файл new_file_name.ext:q
Enter
: Излезте от VIM:q!
Enter
: Принудително излизане от VIM (отхвърляне на промените):wq
Enter
: Запазете промените и излезте от VIM
Това е всичко, от което наистина се нуждаете, за да тръгнете. Можете просто да навигирате с помощта на клавишите със стрелки и клавишите като начало, край, страница нагоре и страница надолу правят точно това, което очаквате да направят.
Изрязване / Копиране / Поставяне
VIM има свой собствен „клипборд“. Ако поставите нещо, което не е копирано чрез една от командите на VIM, просто влезте в режим на вмъкване и (ако използвате ssh например) натиснете десния бутон на мишката, за да поставите собствения си клипборд.
Insert
Right mouse button
: Поставяне от собствен клипборд (в ssh)y
y
: Копиране на текущия редd
d
: Изтриване на текущия ред (работи като действието за изрязване, тъй като можете да поставите този ред другаде)p
: Поставете това, което сте копирали или изрязалиv
: Влезте във визуален режим. Във визуален режим избирате текст между знака, където сте въвели визуален режим, и мястото, където курсорът ви е сега. Ако натиснетеy
копирате цялата тази област и ако натиснетеd
изтривате/изрязвате цялата тази област. За да излезете, без да правите нищо, използвайтеEsc
.
Когато се комбинират, можете да направите много неща. Например
y
y
p
: Дублира текущия ред, като копира текущия ред и го поставя веднагаd
d
p
: Преместете текущия ред под следващия редv
, малко навигация,d
за изрязване на секция, след това навигиране до новата позиция иp
за поставяне обратно на тази позиция.
Назад-напред
u
: Отмяна на последното действие (и можете да продължите да го натискате, за да отмените още)ctrl
+r
: Повторете каквото сте направили, просто отменете
Навигация
Във VIM можете да търсите от началото на файла до края на файла с /
и от края на файла до началото на файла с ?
. Това засяга само реда на резултатите от търсенето, които получавате.
/
your search term
enter
: Намира първото срещане наyour search term
във файла?
your search term
enter
: Намира последното срещане наyour search term
във файлаn
: При търсене намира следващия резултат. За/
това е по-късно във файла, докато за?
това е по-рано във файла. Ако не могат да бъдат намерени повече резултати, ще се върне към първия резултат.shift
+n
: При търсене отива към предишния резултат.:
some line number
enter
: Отива до посочения номер на ред. (напр.:18
отива на ред 18)