# Vim

### от Уикипедия, свободната енциклопедия

Екранен кадър

Vim (произнасяно „Вим“)е един от най-мощните и стари текстови редактори, достъпен безплатно за почти всяка операционна система (включително и Windows). Vim прозлиза от текстовия редактор vi, които излиза през 1978 със Втората Дистрибуция на Бъркли (2BSD). VIM е включен в всяка дистрибуция на Linux и е често единственият мощен текстов редактор, който е достъпен при липса на Графичен Интерфейс (ГИ). Логиката на програмата е по различна от логиката на модерните текстови редактори и следва повече логиката на Linux bash shell.

## [редактиране] Инсталиране

Vim е част от всяка една модерна Linux и BSD дистрибуция. За Уиндоус програмата може да бъде изтеглена безплатно от тук.

## [редактиране] Свойства на текстовият редактор

Свойствата на програмата са представени със конктретни примери - за владеещите английски език най - лесният начин за запознаване е изпълнението на командата vimtutor, за хората с по слаби умения четенето на този документ и едновременно експрериментиране с отворена програма и готов непортребен текстов файл е препоръчително.

### [редактиране] Режими

Програмата разполага с различни режими - т.е. програмата реагира на написаното на клавиатурата според режима, в който се намира. За начинаещи най-трудният момент е осъзнаването на този факт, както и свикването към преминаването в различни режими.

#### [редактиране] Нормален режим

В този режим (Normal mode) бива стартиран текстовия редактор. За да бъдат изпълнявани комади първо се натиска двуеточие : и след това се написва командата. Например в Нормално състояние :q! би било командата за излизане от текущия файл без запазване на промените направени в него.

#### [редактиране] Режим на въвеждане

В този режим (Insert mode) написаният текст на клавиатурата бива вписван и в текстовия файл. Активира се след натискането на клавиша i. Излиза се след натискането на Esc клавиша. Съществуват и други клавишни комбинации за преминаване от нормален (команден режим) в режим на въвеждане - например A преминава в режим на въвеждане, като едновременно премества курсора в края на текущия ред.

#### [редактиране] Визуален режим

Този режим (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,
                     ако този файл не съществува създава нов с това име
    :split file_name --- отваря нов файл в същият прозорец
    vim -o file_name1 file_name2 --- отваря file_name1 file_name2 едновременно
    vim *.txt        --- отваря всички текстови файлове в текущата директория
    gf --- отворя файла , на чиито файлов път се намира в момента курсора
    :bn              --- отваря следващия файлов буфер
    :bp              --- отваря предишния файлов буфер
    :ls              --- представя текущите отворени файлови буфери

#### [редактиране] Преминаване в различните състояния

    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 --- преименуване на файл

Взето от „http://bg.wikipedia.org../../../v/i/m/Vim.html“.

Категории: Приложен софтуер | Свободен софтуер

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- Afrikaans
- Bosanski
- Català
- Česky
- Deutsch
- English
- Español
- Esperanto
- Français
- Interlingua
- Italiano
- עברית
- Lietuvių
- Magyar
- Nederlands
- 日本語
- Polski
- Português
- Română
- Русский
- Suomi
- Svenska
- ไทย
- Türkçe
- 中文