==Свойства на текстовият редактор==
Свойствата на програмата са представени със конктретни примери - за владеещите английски език най - лесният начин за запознаване е изпълнението на командата vimtutor, за хората с по слаби умения четенето на този документ и едновременно експрериментиране с отворена програма и готов непортребен текстов файл е препоръчително.
=== Режими ===
Програмата разполага с различни режими - т.е. програмата реагира на написаното на клавиатурата според режима, в който се намира. За начинаещи най-трудният момент е осъзнаването на този факт, както и свикването към преминаването в различни режими.
====Нормален режим ====
В този режим (Normal mode) бива стартиран текстовия редактор. За да бъдат изпълнявани комади първо се натиска двуеточие : и след това се написва командата. Например в Нормално състояние '':q!'' би било командата за излизане от текущия файл без запазване на промените направени в него.
====Режим на въвеждане ====
В този режим (Insert mode) написаният текст на клавиатурата бива вписван и в текстовия файл. Активира се след натискането на клавиша ''i''. Излиза се след натискането на Esc клавиша.
==== Визуален режим ====
Този режим (Visual mode) е нужен, тъй като конзолата няма същата възможност за представяне на отбелязан текст както графичния интерфейс. Упортребата на този режим е равносилно на натискането на Shift клавиша и отбелязването на текста със стрелките във ГИ (Графичен интерфейс ).
В този режим може да се избира (маркира текст) от текущата позиция след преминаването в режима (чрез натискане на клавиша v) до излизането от режима (натискане на клавиша y, което е командата за копиране, или Esc за преминаване в нормално състояние). Т.е. натискане на v някъде във файла, предвижване с j надолу , натискане на y за копиране на отбелязания текст.
===Клавишни комбинации===
Клавишните комбинации представени тук са различни за малки и Главни БУКВИ -- т.е. клавишната комбинация Ctrl + G означава едновременно натискане на Контрол клавиша, Шифт клавиша и g , което е различно от Ctrl + g - натискане само на контрол и g клавишите
==== Търсене на помощ ====
Esc --- преминаване в Нормален режим
:help --- показване на вградената помощ
help HelpForItem --- показване на помощ съдържаща низа HelpForItem
help .*open\&.*window --- показване на всички редове съдържащи регулярния израз .*open\&.*window т.е. всички редове сърържащи информация за отваряне на прозорци (и двата низа open и window)
:cnext --- скача на следващото попадение на израза от предишната команда
==== Работа с файлове====
:q! -- Излиза от VIM без да запазва промените в текущия файл
:wq -- Излиза от VIM и запазва промените в текущия файл
:wq copy_of_current_file --- запазва копие от текущия файл със ново име copy_of_current_file
vim file_name -- отваря файла със име file_name,
ако този файл не съществува създава нов с това име
==== Преминаване в различните състояния====
Esc - преминаване в Нормален режим
от Нормален режим i -- преминава в Режим на въвеждане
като текста бива въведен при писане ПРЕДИ курсора
от Нормален режим a -- преминава в Режим на въвеждане
като текста бива въведен при писане СЛЕД курсора
от Нормален режим А -- преминава в Режим на въвеждане
като текста бива въведен при писане в края на текущия ред на курсора
от Нормален режим О --- отваряне на файла в Режим на въвеждане и добавяне на един ред преди текущия ред
от Нормален режим о --- отваряне на файла в Режим на въвеждане и добавяне на един ред след текущия ред
==== Предвижване в текста ====
Всички тези команди работят в Нормален режим - т.е. натисни първо Esc за преминаване в Нормален режим
j --- надолу
k --- нагоре
h --- надясно
l --- наляво
Освен тях класическите:
Home --- скок в началото на реда
End --- скок в края на реда
Ctrl + Home --- скок в началото на файла
Ctrl + End --- скок в края на файла
със стрелките на ляво надясно нагоре и надолу
Ctrl + лява стрелка --- скок с една дума наляво
Ctrl + дясна стрелка --- скок с една дума надясно
Ctrl + G --- показване на текущият файл и ред на който се намира курсора
495G --- прескачане до 495 ред на файла
Ctrl + O --- прескачане до предишната позиция където беше курсора
Ctrl + I --- прескачане до предишната позиция където беше курсора до позицият на първото прескачане
e - прескачане в началото на думите по протежение на реда , равносилно на Ctrl + лява стрелка в ГИ
====Редактиране====
Натисни Esc за преминаване в Нормален режим.
dd - изтриване на текущият ред
dw - изтриване на текущата дума (на дясно от курсора )
v преминаване във визуално състояние, j за отбелязване на редът до който текста трябва да се бъде изтрит, d за изтриване на отбелязаният текст и излизане от визуалното състояние.
==== Търсене на текст====
Натисни Esc за преминаване в Нормален режим.
:/tokenToSearch търси думата tokenToSearch НАДОЛУ в текста
n - прескача до следваща дума tokenToSearch НАДОЛУ
N - прескача до следваща дума tokenToSearch НАГОРЕ
:?tokenToSearch търси думата tokenToSearch НАГОРЕ в текста
n - прескача до следваща дума tokenToSearch НАГОРЕ
Ctrl + o - прескача до предното положение на маркера
Ctrl + i - прескача до положение преди скока с Ctrl + o на маркера
N - прескача до следваща дума tokenToSearch НАДОЛУ
При маркер на позицията на често упортребяваните за програмиране писмени знаци () [] {} и натискане на % маркерът прескача до съответният писмен знак, ако има такъв, ако няма си стои на място.
==== Търсене и замяна на текст ====
Натисни първо Esc за преминаване в Нормално състояние. Тази част е лесна за умеещите [[регулярен израз | регулярни изрази]]
:s/foo/bar/g намери всеки низ 'foo' и го замени с 'bar' без да питаш дали да го замениш в текущият ред на курсора
:%s/foo/bar/g намери всеки низ 'foo' и го замени с 'bar' без да питаш дали да го замениш в целия файл
:%s/foo/bar/gci намери всеки низ 'foo' и го замени с 'bar' без да питаш дали да го замениш без да вземаш под внимание ГОЛЕМИ или малки или дуМИ с СмесеНИ по големина букви в целия файл
====Изпълняване на външни команди ====
Натисни Esc за преминаване в Нормален режим.
:! commandToExecute - изпълнява командата commandToExecute в съответствие със шелът в който се намира
т.е. във Windows могат да бъдат изпълнявани типични за [[cmd.exe]] команди, a за [[Linux]] за типа [[shell]] от който VIM е извикан, за останалите [[Операционна система |операционни системи]] командите на техният [[shell]]
==== Поддържане множество буфери ====
Тъй като файловете не се запазват изрично от програмата, данните преди запазването на файла се съхраняват в обект наречен буфер. Текстовият редактор може да има множествор отворени буфери едновременно.
Натисни Esc за преминаване в Нормален режим.
:buffers --- показва наличната информация за отворените буфери
Ctrl + W , W --- смяна от един отворен буфер в друг
CTRL-W q --- затваряне на отворен прозорец
:hide --- скрива текущия прозорец но го държи отворен в буферния регистър
==== Задаване на собтвсвени настойки ====
Собвствените настойки се задават най-общо с командата set [име на настройка]=[стойност]
Някои често упортребявани примери са:
Натисни Esc за преминаване в Нормален режим.
set winheight=999 --- задаване на височината на текущия прозорец да бъде 999 знака
==== Употреба като файлов мениджър ====
Програмата може да бъде използвана като мениджър за управление на файлове, чрез изпълнение на командата :edit /name/of/the/folder/to/edit. В това състояние следните клавишни комбинации изпълняват следните действия:
- --- отива едно ниво по нагоре във файловата система
D --- изтрива файл
R --- преименуване на файл